第10章80C1的C語言程序設(shè)計_第1頁
第10章80C1的C語言程序設(shè)計_第2頁
第10章80C1的C語言程序設(shè)計_第3頁
第10章80C1的C語言程序設(shè)計_第4頁
第10章80C1的C語言程序設(shè)計_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、2/10/20221第第1010章章 80c5180c51的的c c語言程序設(shè)計語言程序設(shè)計單片機單片機c語言概述語言概述10.1c51的的數(shù)據(jù)類型數(shù)據(jù)類型與運算與運算10.2c51流程流程控制語句控制語句10.3c51的的指針類型指針類型10.4c51的的函數(shù)函數(shù)10.5c51編程編程實例實例10.62/10/2022210.1 單片機單片機c語言概述語言概述 10.1.1 c5110.1.1 c51程序開發(fā)過程程序開發(fā)過程 編譯器能自動完成變量的存儲單元的分配編譯器能自動完成變量的存儲單元的分配 對常用功能模塊和算法編制相應(yīng)的函數(shù),方便移植對常用功能模塊和算法編制相應(yīng)的函數(shù),方便移植 采用

2、采用c51c51的優(yōu)點的優(yōu)點 c c語言具有良好的可讀性、可移植性和基本的硬件操作能力語言具有良好的可讀性、可移植性和基本的硬件操作能力 。 c51 c51程序開發(fā)過程程序開發(fā)過程 編寫源程序編寫源程序 建立工程,加入源程序建立工程,加入源程序 編譯生產(chǎn)目標程序編譯生產(chǎn)目標程序 仿真調(diào)試、寫存儲器仿真調(diào)試、寫存儲器2/10/202232/10/2022410.1.2 c5110.1.2 c51程序結(jié)構(gòu)程序結(jié)構(gòu)#include #include #include #include void void delaymsdelayms(unsigned)(unsigned);void main(voi

3、d)void main(void) unsigned char i unsigned char i; p1=0 x01p1=0 x01; dodo for (i=0for (i=0;i=7i=7;i+)i+) delaymsdelayms(5000)(5000); p1=p11p1=p11; if(p1=0 x0)p1=0 x01if(p1=0 x0)p1=0 x01; while(1) while(1); void void delaymsdelayms(unsigned x)(unsigned x) unsigned char j unsigned char j; while(x-)whi

4、le(x-) for(j=0 for(j=0;j123j123;j+)j+); 2/10/2022510.2.1 c5110.2.1 c51的數(shù)據(jù)類型的數(shù)據(jù)類型10.2 c51的數(shù)據(jù)類型與運算的數(shù)據(jù)類型與運算 數(shù)據(jù)類型決定其數(shù)據(jù)類型決定其取值范圍取值范圍、占用、占用存儲器的大小存儲器的大小及可參與及可參與哪種運算。哪種運算。 數(shù)據(jù)類型數(shù)據(jù)類型長度長度(位位)取值范圍取值范圍字符型字符型signed char8-128127unsigned char80255整整 型型signed int16-3276832767unsigned int16065535長整型長整型signed long32-2

5、147488364821474883647unsigned long3204294967295浮點型浮點型float321.75494e-383.402823e+38位位 型型bit10,1sbit10,1訪問訪問sfrsfr80255sfr16160655352/10/20226盡可能采用無符號格式盡可能采用無符號格式bitbit用于定義位變量的名字,編譯器會對其分用于定義位變量的名字,編譯器會對其分配地址(配地址(ramram的的20h20h2fh 2fh 區(qū)域區(qū)域)sbitsbit用于定義位變量的名字和地址,地址是確用于定義位變量的名字和地址,地址是確定的且不用編譯器分配(定的且不用編譯

6、器分配(sfrsfr及及ramram的的20h20h2fh 2fh 區(qū)區(qū)域域)c51c51編譯器在編譯時會自動進行類型轉(zhuǎn)換編譯器在編譯時會自動進行類型轉(zhuǎn)換 幾點說明:幾點說明:2/10/2022710.2.2 c5110.2.2 c51數(shù)據(jù)的存儲類型數(shù)據(jù)的存儲類型c51c51的存儲的存儲器器類型類型存儲器類型存儲器類型長度(位)長度(位)對應(yīng)單片機存儲器對應(yīng)單片機存儲器bdata1片內(nèi)片內(nèi)ram位尋址區(qū),共位尋址區(qū),共128位。(亦能字節(jié)訪問)位。(亦能字節(jié)訪問)data8直接尋址,共直接尋址,共128字節(jié)。字節(jié)。idata8間接尋址,共間接尋址,共256字節(jié)。字節(jié)。pdata8片外片外 ra

7、m分頁間址,共分頁間址,共256字節(jié)。(字節(jié)。(movx ri)xdata16間接尋址,共間接尋址,共64k字節(jié)。(字節(jié)。(movx dptr)code16rom間接尋址,共間接尋址,共64k字節(jié)。(字節(jié)。(movc a,a+dptr)2/10/20228經(jīng)常使用的變量應(yīng)該置于片內(nèi)經(jīng)常使用的變量應(yīng)該置于片內(nèi)ramram中,要用中,要用bdatabdata、datadata、idataidata來定義來定義不經(jīng)常使用的變量或規(guī)模較大的變量應(yīng)該置于片外不經(jīng)常使用的變量或規(guī)模較大的變量應(yīng)該置于片外ramram中,中,要用要用pdatapdata、xdataxdata來定義來定義默認存儲器類型由編譯控

8、制命令的存儲模式指令限制默認存儲器類型由編譯控制命令的存儲模式指令限制 存儲模式存儲模式默認默認存儲類型存儲類型特特 點點small data小模式。小模式。 變量默認在片內(nèi)變量默認在片內(nèi)ram??臻g小,速度塊。空間小,速度塊。compactpdata緊湊模式。變量默認在片外緊湊模式。變量默認在片外ram的頁(的頁(256字節(jié),頁號由字節(jié),頁號由p2口決定)。口決定)。largexdata大模式。大模式。 變量默認在片外變量默認在片外ram的的64kb范圍??臻g大,速度慢。范圍??臻g大,速度慢。2/10/2022910.2.3 80c5110.2.3 80c51硬件結(jié)構(gòu)的硬件結(jié)構(gòu)的c51c51

9、定義定義特殊功能寄存器的聲明特殊功能寄存器的聲明 sfrsfr 特殊功能寄存器名特殊功能寄存器名 = = 地址常數(shù);地址常數(shù);格式:格式:例如:例如:sfr scon = 0 x90sfr scon = 0 x90;sfr p0 = 0 x80sfr p0 = 0 x80; 2/10/202210特殊功能寄存器中特殊功能寄存器中特定位特定位的聲明的聲明 sbit sbit 位變量名位變量名= =特殊功能寄存器名特殊功能寄存器名 位的位置(位的位置(0 07 7) 例如:例如: sfr psw=0 xd0sfr psw=0 xd0; sbit ov=psw2sbit ov=psw2; sbit

10、sbit 位變量名位變量名 = = 字節(jié)地址字節(jié)地址 位的位置(位的位置(0 07 7) 例如:例如: sbit ov=0 xd02sbit ov=0 xd02; sbit cy=0 xd07sbit cy=0 xd07; sbit sbit 位變量名位變量名 = = 位地址位地址 例如:例如: sbit ov=0 xd2sbit ov=0 xd2; sbit cy=0 xd7sbit cy=0 xd7; 2/10/202211內(nèi)部內(nèi)部ramram中可位尋址對象的定義中可位尋址對象的定義 先先定義變量的數(shù)據(jù)類型和存儲類型定義變量的數(shù)據(jù)類型和存儲類型 例如:例如: int bdata ibase

11、int bdata ibase; char bdata array4char bdata array4; 再再利用利用sbitsbit進行聲明進行聲明 例如:例如: sbit mybit0 = ibase0sbit mybit0 = ibase0; sbit mybit15 = ibase15sbit mybit15 = ibase15; sbit ary07 = array07sbit ary07 = array07; 訪問示例:訪問示例:ibase = -1ibase = -1;array2 = aarray2 = a; 2/10/202212算術(shù)運算符和算術(shù)表達式算術(shù)運算符和算術(shù)表達式

12、10.2.4 c5110.2.4 c51的運算符和表達式的運算符和表達式 基本算術(shù)運算符基本算術(shù)運算符 例如:例如: + + 加法運算符;加法運算符; - - 減法(取負)運算符;減法(取負)運算符; * * 乘法運算符;乘法運算符; / / 除法運算符;除法運算符; % % 取余數(shù)運算符取余數(shù)運算符。 示例:示例:25.0/20.0=1.25 25.0/20.0=1.25 25/20=125/20=125%20=5 25%20=5 取負運算優(yōu)先級最高。取負運算優(yōu)先級最高。 2/10/202213自增、自減運算符(自增、自減運算符(僅能用于變量僅能用于變量) 例如:例如: + + 自增運算符;

13、自增運算符; - - 自減運算符;自減運算符;類型轉(zhuǎn)換運算符類型轉(zhuǎn)換運算符 自動轉(zhuǎn)換,順序:自動轉(zhuǎn)換,順序:bitcharintlongfloatbitcharintlongfloat 強制類型轉(zhuǎn)換,如:(強制類型轉(zhuǎn)換,如:(doubledouble)a a 2/10/202214關(guān)系運算符關(guān)系運算符和和關(guān)系表達式關(guān)系表達式 關(guān)系運算符關(guān)系運算符 小于;小于; = 大于;大于; = = 大于等于;大于等于; = = = = 等于;等于; != = 不等于。不等于。關(guān)系表達式關(guān)系表達式關(guān)系表達式的值為邏輯值:真(關(guān)系表達式的值為邏輯值:真(1 1)和假()和假(0 0)2/10/202215邏輯

14、運算符邏輯運算符和和邏輯表達式邏輯表達式 邏輯運算符邏輯運算符 & & 邏輯與;邏輯與; | | 邏輯或;邏輯或; ! 邏輯非。邏輯非。 邏輯表達式邏輯表達式邏輯表達式的值為邏輯值:真(邏輯表達式的值為邏輯值:真(1 1)和假()和假(0 0)例:例:5| | 05| | 0結(jié)果為結(jié)果為1 1,2&02&0結(jié)果為結(jié)果為0 0 2/10/202216位運算符位運算符 & & 按位與;按位與; | | 按位或;按位或; 按位異或;按位異或; 按位取反;按位取反; 右移。右移。 例:例:p1=p11p1=p11表示對表示對p1p1口的所有位左移口的所有

15、位左移1 1位位 2/10/202217賦值和復(fù)合賦值運算符賦值和復(fù)合賦值運算符 復(fù)合賦值運算符復(fù)合賦值運算符 += += 加法賦值;加法賦值; -= -= 減法賦值;減法賦值; * *= = 乘法賦值;乘法賦值; /= /= 除法賦值;除法賦值; %= %= 取模賦值;取模賦值; 符號符號“=”=”稱為賦值運算稱為賦值運算符符 = = = 右移位賦值;右移位賦值; &= &= 邏輯與賦值;邏輯與賦值; |= |= 邏輯或賦值;邏輯或賦值; = = 邏輯異或賦值;邏輯異或賦值; = = 邏輯非賦值邏輯非賦值 例:例:a a* *=5=5相當(dāng)于相當(dāng)于a=aa=a* *5 5;b&

16、amp;=0 x80b&=0 x80相當(dāng)于相當(dāng)于b=b&0 x80b=b&0 x80。2/10/20221810.3 c51流程控制語句流程控制語句 10.3.1 c5110.3.1 c51選擇語句選擇語句 條件語句條件語句ifif(條件表達式)語句(條件表達式)語句 例如:例如: ifif(p1p1!= 0= 0) c=20 c=20; ifif(條件表達式)語句(條件表達式)語句1 1 else else 語句語句2 2 例如:例如: ifif(p1p1!= 0= 0) c=20 c=20; else c=0 else c=0; 2/10/202219ifif(條件

17、表達式(條件表達式1 1)語句)語句1 1 else if else if (條件表達式(條件表達式2 2)語句)語句2 2 else if else if (條件表達式(條件表達式3 3)語句)語句3 3 else if else if (條件表達式(條件表達式n n)語句)語句n n else else 語句語句n+1 n+1 2/10/202220開關(guān)語句開關(guān)語句switch switch (表達式)(表達式) case case 常量表達式常量表達式1 1:語句:語句1 1;breakbreak; case case 常量表達式常量表達式2 2:語句:語句2 2;breakbreak;

18、 case case 常量表達式常量表達式n n:語句:語句n n;breakbreak; default default :語句:語句n+1n+1; 2/10/20222110.3.2 c5110.3.2 c51循環(huán)語句循環(huán)語句 whilewhile語句語句 一般形式為:一般形式為: whilewhile(條件表達式)語句;(條件表達式)語句;如果條件表達式的結(jié)果一開始就為假,則后面的語句一如果條件表達式的結(jié)果一開始就為假,則后面的語句一次也不能執(zhí)行。次也不能執(zhí)行。 do-whiledo-while語句語句 一般形式為:一般形式為: dodo語句語句 whilewhile(條件表達式);(條

19、件表達式);任何條件下,循環(huán)體語句至少會被執(zhí)行一次。任何條件下,循環(huán)體語句至少會被執(zhí)行一次。 2/10/202222forfor語句語句 一般形式為:一般形式為: forfor( 初值表達式初值表達式;條件表達式條件表達式;更新表達式更新表達式 )語)語句句ifif語句與語句與gotogoto語句結(jié)合語句結(jié)合 當(dāng)型循環(huán)當(dāng)型循環(huán) 形式為:形式為: looploop:ifif(表達式)(表達式) 語句語句 goto loopgoto loop; 2/10/202223 直到型循環(huán)直到型循環(huán) 形式為:形式為: looploop: 語句語句 ifif(表達式)(表達式) goto loopgoto l

20、oop; continuecontinue是一種循環(huán)中斷語句,它并不跳出循環(huán)體;是一種循環(huán)中斷語句,它并不跳出循環(huán)體;breakbreak語句只能跳出它所處的那一層循環(huán);語句只能跳出它所處的那一層循環(huán);gotogoto語句可以用于跳出多重循環(huán)(從內(nèi)層到外層)。語句可以用于跳出多重循環(huán)(從內(nèi)層到外層)。注意:注意:2/10/20222410.4 c51的指針類型的指針類型 有一個變量有一個變量a a,利用,利用&a&a表示變量表示變量a a的地址的地址 。則語句。則語句 p=&ap=&a; 把把a a的地址賦給了指針變量的地址賦給了指針變量p p,則,則“p p指

21、向了變量指向了變量a a”。 * *p p表示變量表示變量a a的內(nèi)容的內(nèi)容指針變量的定義指針變量的定義 char data char data * *p /p /* * 定義指針變量定義指針變量 * */ / p = 30h / p = 30h /* * 為指針變量賦值,為指針變量賦值,30h30h為片內(nèi)為片內(nèi)ramram地址地址 * */ / x = x = * *p /p /* * 30h 30h單元的內(nèi)容送給變量單元的內(nèi)容送給變量x x * */ /2/10/202225定義時定義時未指定未指定它所指向的它所指向的對象的存儲器對象的存儲器類型類型 10.4.1 10.4.1 一般指針一

22、般指針 一般指針占一般指針占3 3個字節(jié)個字節(jié)第一字節(jié)存放該指針的第一字節(jié)存放該指針的默認默認存儲器類型編碼(存儲器類型編碼(見表見表)第二字節(jié)存放該指針的第二字節(jié)存放該指針的高高位地址偏移量位地址偏移量第三字節(jié)存放該指針的第三字節(jié)存放該指針的低低位地址偏移量位地址偏移量 存儲器類型編碼存儲器類型編碼 存儲器類型存儲器類型bdata/ data / idataxdatapdatacode編碼編碼0 x000 x010 xfe0 xff2/10/202226一般指針定義示例:一般指針定義示例:charchar * *xdata strptrxdata strptr; / /* * 指針本身存于指

23、針本身存于xdata xdata 空間,它指向空間,它指向charchar型數(shù)據(jù)型數(shù)據(jù) * */ /intint * *data numberdata number; / /* * 指針本身存于指針本身存于data data 空間,它指向空間,它指向intint型數(shù)據(jù)型數(shù)據(jù) * */ / 由于指向?qū)ο蟮拇鎯臻g在編譯時無法確定(由于指向?qū)ο蟮拇鎯臻g在編譯時無法確定(運行時確運行時確定定),因此必須生成一般代碼以保證對任意空間的對象進),因此必須生成一般代碼以保證對任意空間的對象進行存取。所以行存取。所以一般指針所產(chǎn)生的代碼速度較慢一般指針所產(chǎn)生的代碼速度較慢。2/10/20222710.4.

24、2 10.4.2 基于存儲器的指針基于存儲器的指針定義時就定義時就指定指定它所指向的它所指向的對象的存儲器對象的存儲器類型類型 指針占指針占1 1個字節(jié)(個字節(jié)(idata idata * *,data data * *,pdata pdata * *)或)或2 2個個字節(jié)(字節(jié)(code code * *,xdata xdata * *) 基于存儲器指針定義示例:基于存儲器指針定義示例:charchar data data * *strstr; / /* * 指針指向的指針指向的charchar型數(shù)據(jù)存于型數(shù)據(jù)存于data data 空間空間 * */ /intint xdata xdata

25、 * *numnum; / /* * 指針指向的指針指向的intint型數(shù)據(jù)存于型數(shù)據(jù)存于xdata xdata 空間空間 * */ / 基于存儲器的指針長度比一般指針短,可以節(jié)省存儲基于存儲器的指針長度比一般指針短,可以節(jié)省存儲器空間,器空間,運行速度快運行速度快,但它所指對象具有確定的存儲器,但它所指對象具有確定的存儲器空間,空間,兼容性不好兼容性不好。2/10/20222810.5 c51的函數(shù)的函數(shù) 10.5.1 c5110.5.1 c51函數(shù)的定義函數(shù)的定義一般形式一般形式: :返回值類型返回值類型 函數(shù)名(形式參數(shù)列表)函數(shù)名(形式參數(shù)列表) 編譯模式編譯模式reentrantin

26、terrupt nusing nreentrantinterrupt nusing n 函數(shù)體函數(shù)體 編譯模式為編譯模式為smallsmall、copactcopact或或largelargereentrantreentrant用于定義可重入函數(shù)用于定義可重入函數(shù)interrupt n interrupt n 用于定義中斷函數(shù)用于定義中斷函數(shù),n,n為中斷號為中斷號, ,可以為可以為0 03131using n using n 確定工作寄存器組,取值為確定工作寄存器組,取值為0 03 3 2/10/20222910.5.2 c5110.5.2 c51函數(shù)的調(diào)用與參數(shù)傳遞函數(shù)的調(diào)用與參數(shù)傳遞 主

27、調(diào)函數(shù)要向被調(diào)函數(shù)傳遞所需的參數(shù)主調(diào)函數(shù)要向被調(diào)函數(shù)傳遞所需的參數(shù)傳遞給被調(diào)函數(shù)的數(shù)據(jù)稱為實際參數(shù),即實參傳遞給被調(diào)函數(shù)的數(shù)據(jù)稱為實際參數(shù),即實參實參向形參的傳遞是單向的實參向形參的傳遞是單向的參數(shù)傳遞可以參數(shù)傳遞可以采用寄存器采用寄存器、固定存儲器位置方式、固定存儲器位置方式 參數(shù)傳遞參數(shù)傳遞寄存器參數(shù)傳遞寄存器參數(shù)傳遞傳遞的參數(shù)傳遞的參數(shù)char、1字節(jié)指針字節(jié)指針int、2字節(jié)指針字節(jié)指針long、float一般指針一般指針參數(shù)參數(shù)1r7r6、r7r4r7r1、r2、r3參數(shù)參數(shù)2r5r4、r5r4r7r1、r2、r3參數(shù)參數(shù)3r3r2、r3r1、r2、r32/10/202230smal

28、lsmall模式下,在內(nèi)部模式下,在內(nèi)部ramram中完成中完成 compactcompact模式下,在外部模式下,在外部ramram中完成中完成largerlarger模式下,在外部模式下,在外部ramram中完成中完成固定存儲器位置固定存儲器位置參數(shù)傳遞參數(shù)傳遞 80c51單片機不采用堆棧傳遞參數(shù)。但c51提供一種模擬堆棧,從而支持可重入函數(shù)的遞歸調(diào)用。 10.5.3 c5110.5.3 c51的庫函數(shù)的庫函數(shù)常用的c51庫函數(shù)參見附錄b.2 2/10/20223110.6 c51編程實例編程實例 10.6.1 80c5110.6.1 80c51內(nèi)部資源的編程內(nèi)部資源的編程 中斷服務(wù)函數(shù)示

29、例中斷服務(wù)函數(shù)示例中斷函數(shù)的定義形式中斷函數(shù)的定義形式void void 函數(shù)名(函數(shù)名(voidvoid)interrupt interrupt n n using m using m 函數(shù)體函數(shù)體 中斷源中斷源外中斷外中斷0定時器定時器0外中斷外中斷1定時器定時器1串行口串行口中斷號中斷號012342/10/202232【例【例10-110-1】單片機應(yīng)用系統(tǒng)中,外中斷】單片機應(yīng)用系統(tǒng)中,外中斷0 0引腳接一個開關(guān),并引腳接一個開關(guān),并行口線行口線p1.0p1.0接一個發(fā)光二級管。要求:開關(guān)閉合一次,發(fā)光二接一個發(fā)光二級管。要求:開關(guān)閉合一次,發(fā)光二極管的狀態(tài)改變一次。試編寫程序極管的狀態(tài)

30、改變一次。試編寫程序 #include “reg51.h”#include “intrins.h” sbit p10=p10; void delay(void)int a = 5000; while(a - - )_nop_( );void int_srv(void)interrupt 0 delay( ); if(int0 = =0)p10 = ! p10;while(int0 = =0); void mainvoid main()() p10 = 0 p10 = 0; ea = 1ea = 1; ex0 = 1ex0 = 1;whilewhile(1 1);); 2/10/202233定時

31、計數(shù)器編程示例定時計數(shù)器編程示例【例【例10-210-2】 利用定時利用定時/ /計數(shù)器計數(shù)器t0t0的方式的方式1 1,產(chǎn)生,產(chǎn)生10ms10ms的定時,的定時,并使并使p1.0p1.0引腳上輸出周期為引腳上輸出周期為20ms20ms的方波,采用中斷方式,設(shè)系的方波,采用中斷方式,設(shè)系統(tǒng)時鐘頻率為統(tǒng)時鐘頻率為12 mhz12 mhz。1 1、計算計數(shù)初值、計算計數(shù)初值x x: n nt/ tcy t/ tcy 101010-3/110-3/110-610-61000010000計數(shù)器初值應(yīng)為計數(shù)器初值應(yīng)為-10000-10000。即應(yīng)將。即應(yīng)將 - -(10000/25610000/256)

32、送入)送入th0th0中,中,- -(10000%25610000%256)送入)送入tl0tl0中。中。 2 2、求、求t0t0的方式控制字的方式控制字tmodtmod:m1m0=01m1m0=01,gate=0gate=0,c/t=0c/t=0,可取方式控制字為,可取方式控制字為01h01h 3 3、程序清單(見下頁)、程序清單(見下頁) 2/10/202234#include “reg51.h”#include “reg51.h”sbit p10 = p10sbit p10 = p10;void timer0(void)interrupt void timer0(void)interru

33、pt 1 1 p10 = ! p10 p10 = ! p10; th0 = -th0 = -(10000/25610000/256);); tl0 = -tl0 = -(10000%25610000%256);); void mainvoid main(voidvoid) tmod = 0 x01tmod = 0 x01;p10 = 0p10 = 0;th0 = -th0 = -(10000/25610000/256););tl0 = -tl0 = -(10000%25610000%256););ea = 1ea = 1;et0 = 1et0 = 1;tr0 = 1tr0 = 1;whilew

34、hile(1 1);); 2/10/20223510.6.2 80c5110.6.2 80c51擴展資源的編程擴展資源的編程 通用并行口編程示例通用并行口編程示例 【例【例10-310-3】用】用81c5581c55作為微型打印機與單片機間的接口電路。作為微型打印機與單片機間的接口電路。 2/10/202236#include “reg51.h”#include “reg51.h”#include “absacc.h” #include “absacc.h” / /* *含有對含有對xbytexbyte等絕對地址訪問宏的定義等絕對地址訪問宏的定義* */ /#define uchar unsi

35、gned char#define uchar unsigned char#define comd8155 xbyte0 x7f00#define comd8155 xbyte0 x7f00#define pa8155 xbyte0 x7f01#define pa8155 xbyte0 x7f01#define pb8155 xbyte0 x7f02#define pb8155 xbyte0 x7f02#define pc8155 xbyte0 x7f03#define pc8155 xbyte0 x7f03sbit busy = p33sbit busy = p33; 2/10/202237u

36、char code tab17 = 0 xb80 xb8,0 xdf0 xdf,0 xbd0 xbd,0 xcc0 xcc,0 x200 x20, 0 xb30 xb3,0 xf60 xf6,0 xb00 xb0,0 xe60 xe6,0 xc90 xc9,0 xe70 xe7,0 x200 x20, 0 x320 x32,0 x300 x30,0 x300 x30,0 x380 x38,0 x0a0 x0a ;/ /* *高教高教 出版社出版社 20082008* */ / uchar t1 = 17;void ptrvoid ptr(uchar duchar d) / /* *打印字符函數(shù)打印字符函數(shù)* */ / pa8155 = d pa8155 = d; pc8155 = 0 x00pc8155 = 0 x00; / /* *產(chǎn)生選通脈沖產(chǎn)生選通脈沖* */ / pc8155 = 0 x01 pc8155 = 0 x01; whilewhile(busybusy);); 2/10/202238void mainvoid main(voidvoid) comd8155 = 0 x0f comd8155 = 0 x0f;/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論