第九章 串行總線接口技術(shù)_第1頁
第九章 串行總線接口技術(shù)_第2頁
第九章 串行總線接口技術(shù)_第3頁
第九章 串行總線接口技術(shù)_第4頁
第九章 串行總線接口技術(shù)_第5頁
已閱讀5頁,還剩132頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、12021-11-112021-11-1122021-11-113 2021-11-1142021-11-1152021-11-1162021-11-117 2021-11-1182021-11-1192021-11-11102021-11-11112021-11-1112sbit DO = P12sbit CLK = P11sbit CS = P10bdata Unsigned char addata;sbit adin0 = addata 0; unsigned char TLC549 _ad(void) /*A/D轉(zhuǎn)換程序*/ unsigned char i; Clk=0; CS=0;

2、/*令CS為低選中TLC549*/ _nop_(); 2021-11-1113for(i=0;i8;i+) /*循環(huán)讀取8位A/D轉(zhuǎn)換結(jié)果*/ CLK =1; /*令CLK引腳為高,產(chǎn)生時鐘*/ delay( ); /*延時*/ adin0 =DO; /*讀取A/D轉(zhuǎn)換后數(shù)據(jù)線的一位數(shù)據(jù)*/ addata = addata 1; /*左移一位,先讀取為高位,后讀為低位*/ CLK=0; /*令CLK恢復(fù)為0*/ _nop_( ); _nop_( ); return addata; /*返回A/D轉(zhuǎn)換值*/void delay ( ) unsigned char i; for(i=0;i20;i

3、+) 2021-11-1114 2021-11-11152021-11-11162021-11-1117 2021-11-11182021-11-1119 2021-11-11202021-11-1121 2021-11-1122設(shè)要轉(zhuǎn)換的數(shù)據(jù)放在R7R6中,R7為高8位,R6低8位 DIN BIT P1.2 ;引腳定義 CS BIT P1.1 SCLK BIT P1.0 TLC5615_DA:CLR C;將R7R6中數(shù)據(jù)左移2位(16位數(shù)據(jù)的最低2位添00) RLC R6 RLC R7 CLR C RLC R6 RLC R7 SETB CS ;初始化片選信號為高 CLR SCLK ;初始化時

4、鐘為低 CLR DIN;D/A數(shù)據(jù)線置低 CLR CS;選中TLC5615,開始啟動D/A MOV R5,#16 ;將16位數(shù)據(jù)從DIN端移進內(nèi)部的16位移位寄存器2021-11-1123 LOOP: RLC R6;R7R6中數(shù)據(jù)左移一位,最高位進入CY RLC R7 MOV DIN,C;將數(shù)據(jù)送到DIN引腳 SETB SCLK ; 送時鐘 NOPNOPNOPCLR SCLK;NOPNOPNOP DJNZ R5,LOOPSETB CS ;D/A片選拉高,10 位有效數(shù)據(jù)鎖存到DAC寄存器,開始轉(zhuǎn)換 RET 2021-11-1124D/A轉(zhuǎn)換C語言程序:sbit DA_clk=P10; /*引腳

5、定義*/sbit DA_ cs=P11; sbit DA_in=P12; void delay_s(unsigned char n) /*延時*/ unsigned char i; for(i=0;in;i+); void TLC5615_DA_conver(unsigned int DA_data) /* D/A轉(zhuǎn)換程序*/ unsigned char i; DA_data = DA_data 2; /*將數(shù)據(jù)左移2位(最低2位添00) */ DA_cs=1; /*初始化片選信號為高*/ DA_clk=0; /*初始化時鐘為低*/ DA_in=0; /*D/A數(shù)據(jù)線置低*/ DA_cs=0;

6、 /*選中TLC5615,開始啟動D/A*/ for(i=0;i16;i+) /*將16位數(shù)據(jù)從DIN端移進內(nèi)部的16位移位寄存器*/2021-11-1125 DA_data = DA_data 1; /*左移一位,最高位進入CY*/ DA_in=CY;/*將數(shù)據(jù)送到DIN引腳*/ DA_clk=1;delay_s(0 x02); /*送時鐘*/ DA_clk=0;delay_s(0 x02); DA_cs=1; / *片選拉高,10 位數(shù)據(jù)鎖存到DAC寄存器,開始轉(zhuǎn)換*/ delay_s(0 x20); 2021-11-1126 2021-11-11272021-11-1128 2021-1

7、1-11292021-11-11302021-11-11312021-11-1132 2021-11-11332021-11-1134 ( 2021-11-1135 。 2021-11-1136SCL BIT P1.1;匯編語言定義端口;匯編語言定義端口SDA BIT P1.0sbit SDA=P10; /C語言定義端口語言定義端口sbit SCL=P11; bit ack; /應(yīng)答標(biāo)志位,有應(yīng)答為應(yīng)答標(biāo)志位,有應(yīng)答為1,無應(yīng)答為,無應(yīng)答為0#define DELAY5US _nop_();_nop_();_nop_();_nop_();_nop_(); 2021-11-1137匯編語言程序:

8、 START:SETB SDA;發(fā)送起始條件數(shù)據(jù)信號SETBSCL;發(fā)送起始條件的時鐘信號NOPNOPNOPNOPCLR SDA;發(fā)送起始信號(SCL為高,SDA發(fā)生由高到低)NOPNOPNOPNOPNOPCLRSCLRET 2021-11-1138C語言程序:void start( ) SDA=1; /*將SDA、SCL置為1 */ SCL=1; DELAY5US; /*延時5us*/ SDA=0; /*SCL為高時,SDA由高變低*/ DELAY5US; SCL=0; /*SCL變低,準(zhǔn)備發(fā)送或接收數(shù)據(jù) */2021-11-1139 匯編語言程序:STOP: CLR SDA ;發(fā)送停止條件

9、的數(shù)據(jù)信號SETB SCL ;發(fā)送停止條件的時鐘信號NOPNOPNOPNOPNOP SETB SDA ;發(fā)送I2C總線停止信號(SCL為高,SDA發(fā)生由低到高) NOP NOP NOP NOPCLR SCLCLR SDARET2021-11-1140C語言程序:void stop( ) SDA=0; /*將SDA清0, SCL置1 */ SCL=1; DELAY5US; SDA=1; /*當(dāng)SCL為高電平時,SDA由低變高 */ DELAY5US; SCL=0; 2021-11-1141匯編語言程序: MACK: CLR SDA ;發(fā)送應(yīng)答信號MACKSETB SCLNOPNOPNOPNOPN

10、OPCLR SCLSETB SDARET2021-11-1142C語言程序:void ack(void) /*產(chǎn)生應(yīng)答信號*/ SDA=0; /*SDA先清0,發(fā)應(yīng)答信號 */ SCL=1; /*SCL由低變高,產(chǎn)生一個時鐘*/ DELAY5US; /*延時5us */ SCL=0; /*SCL變低,以便繼續(xù)接收*/ SDA=1;2021-11-1143匯編語言程序: NACK: SETB SDA ;發(fā)送應(yīng)答信號NACKSETB SCLNOPNOPNOP NOPNOPCLR SCLCLR SDARET2021-11-1144C語言程序:void nack(void) SDA=1; /*DA先置

11、1,發(fā)非應(yīng)答信號 */ SCL=1; /*SCL由低變高,產(chǎn)生一個時鐘*/ DELAY5US; SCL=0; /*時鐘線SCL恢復(fù)到低電平*/ SDA=0; 2021-11-1145匯編語言程序(F0=1通信失敗): CACK: SETB SDA ;發(fā)送應(yīng)答信號CACKSETB SCLCLR F0MOV C,SDAJNC CENDSETB F0 CEND: CLR SCLRET2021-11-1146C語言程序:void cack(void) SDA=1; /*SDA先置1,發(fā)非應(yīng)答信號 */ SCL=1; /*SCL由低變高,產(chǎn)生一個時鐘* DELAY5US; ack=0; if(SDA=1

12、) ack=1; SCL=0; /*時鐘線SCL恢復(fù)到低電平*/2021-11-1147 匯編語言程序:;從A中取一個字節(jié)數(shù)據(jù)寫向I2C總線WRITE_BYTE: MOV R7,#8;寫8位WRITE_LOOP: RLC A ;發(fā)送A中數(shù)據(jù) MOV SDA,C SETB SCL NOP NOP NOP NOP NOP CLR SCL DJNZ R7,WRITE_LOOP RET2021-11-1148C語言程序:/*將指針P指向的一個字節(jié)數(shù)據(jù)發(fā)送*/void SendByte(uchar *p) uchar n ,temp; temp =*p; for(n=0;n8;n+) /*一字節(jié)為8位,

13、循環(huán)8次*/ if(temp &0 x80) SDA=1; /*將數(shù)據(jù)線SDA置1或清0*/ else SDA=0; NOP SCL=1; /*置SCL為高,通知從機開始接收數(shù)據(jù)*/ DELAY5US; SCL=0; /*SCL變低,準(zhǔn)備發(fā)送下一位數(shù)據(jù)*/ temp = temp 1; /*準(zhǔn)備下一位要發(fā)送的數(shù)據(jù)*/ 2021-11-1149;從I2C總線接收一個字節(jié) 數(shù)據(jù)放在A中RDBYTE : MOV R7,#8;寫8位RD_LOOP: SETB SDA SETB SCL NOP;延時5s NOP NOP NOP NOP NOP MOV C,SDA ;采樣SDA線上的數(shù)據(jù)到cy M

14、OV A,R2 ;R2為接收數(shù)據(jù)的緩沖寄存器RLC A ;將cy中的數(shù)據(jù)左移進A中MOV R2,A ;數(shù)據(jù)送回緩沖寄存器R2CLR SCLDJNZ R7,RD_LOOPRET2021-11-1150C語言程序:/*接收一個字節(jié)數(shù)據(jù)放在P指向單元*/uchar RcvByte (uchar *P ) uchar n,temp; for(n=0;n8;n+) /*一字節(jié)為8位,循環(huán)8次*/ SDA=1; /*置數(shù)據(jù)線SDA為高,進入接收方式*/ SCL=1; /*SCL由低變高,產(chǎn)生一個時鐘*/ DELAY5US; temp= temp1; if(SDA=1) temp= temp0X01 ELS

15、E temp= temp&0 xfe; SCL=0; /*時鐘線SCL清0*/ *p= temp;2021-11-11512021-11-1152WNBYTE:MOV A,R3; LCALL START LCALL WRITE_BYTE LCALL CACK JB F0,WRBYTE MOV A,R2LCALL WRITE_BYTE LCALL CACKJB F0,WRBYTEWRDA: MOV A,R0LCALL WRITE_BYTE LCALL CACKJB F0,WRBYTEINC R0DJNZ R7,WRDALCALL STOPRET 2021-11-11532021-11-1

16、1542021-11-1155匯編語言程序:;多字節(jié)讀操作子程序RNBYTE;入口參數(shù):R7寫入的字節(jié)數(shù),R0寫入數(shù)據(jù)的首地址, R2從器件地址內(nèi)部地址,R3從器件寫地址,R4從器件讀地址RNBYTE:LCALL STARTMOV A,R3 ;取從器件寫地址LCALL WRITE_BYTE;寫從器件地址LCALL CACK ;檢測應(yīng)答信號JB F0,RNBYTE;無應(yīng)答重新開始MOV A,R2 ;取從器件地址內(nèi)部地址LCALL WRITE_BYTELCALL CACKJB F0,RNBYTELCALL START2021-11-1156MOV A,R4 ;取從器件讀地址LCALL WRITE_

17、BYTELCALL CACKJB F0,RNBYTERDN:LCALL RDBYTE ;接收一個字節(jié)數(shù)據(jù)MOV R0,ADJNZ R7,ACKLCALL MNACK ;接收完發(fā)非應(yīng)答信號LCALL STOPACK:LCALL MACK ;沒接收完發(fā)應(yīng)答信號INC R0SJMP RDN2021-11-1157C語言程序:/*多字節(jié)讀操作子程序RNBYTE/*入口參數(shù):n寫入的字節(jié)數(shù),s0讀數(shù)據(jù)存放的首地址,s2從器件地址內(nèi)部地址,s3從器件寫地址,s4從器件讀地址*/viod Rcvnbyte(uchar *s3,uchar *s4, uchar *s2, uchar *s0, uchar n)

18、 loop:start( ); /*發(fā)起始信號,啟動總線*/ SendByte(s3); /*發(fā)送從器件地址*/ Cack( ); /*應(yīng)答檢測*/ if(ack) /*如果沒能應(yīng)答,重新開始 */ goto loop SendByte(s2); /*發(fā)送器件子地址*/ Cack( ); /*應(yīng)答檢測*/ if(ack) /*如果沒能應(yīng)答,重新開始 */ goto loop2021-11-1158 start( ); /*再次發(fā)起始信號*/ SendByte(s4); /*sla+1表示進行讀操作*/ cack( ); /*應(yīng)答檢測*/ if(ack) /*如果沒能應(yīng)答,重新開始 */ got

19、o loop for(i=0;in-1;i+) /*對前n-1個字節(jié)發(fā)應(yīng)答信號*/ RcvByte(s0); /*接收數(shù)據(jù)*/ ack( ); /*發(fā)送應(yīng)答信號*/ s+; RcvByte(s0); /*接收最后一個字節(jié)*/ nack( ); /*發(fā)送非應(yīng)答信號*/ stop( ); /*發(fā)結(jié)束信號,結(jié)束本次數(shù)據(jù)傳送*/ 2021-11-1159 2021-11-11602021-11-1161 2021-11-11622021-11-1163 2021-11-11642021-11-11652021-11-11662021-11-1167) 2021-11-1168引腳序號引腳名稱功能描述1

20、SC/KR2數(shù)碼管c段/鍵盤行信號22SD/KR3數(shù)碼管d段/鍵盤行信號33DIG3/KC3數(shù)碼管位選信號3/鍵盤列信號34DIG2/KC2數(shù)碼管位選信號2/鍵盤列信號25DIG1/KC1數(shù)碼管位選信號1/鍵盤列信號16DIG0/KC0數(shù)碼管位選信號0/鍵盤列信號07SE/KR4數(shù)碼管e段/鍵盤行信號48SF/KR5數(shù)碼管f段/鍵盤行信號59SG/KR6數(shù)碼管g段/鍵盤行信號62021-11-1169引腳序號引腳名稱功能描述13DIG7/KC7數(shù)碼管位選信號7/鍵盤列信號714/INT鍵盤中斷請求信號,低電平(下降沿)有效15/RST復(fù)位信號,低電平有效16Vcc電源,+3.35.5V17OS

21、C1晶振輸入信號18OSC2晶振輸出信號19SCLI2C總線時鐘信號20SDAI2C總線數(shù)據(jù)信號21DIG5/KC5數(shù)碼管位選信號5/鍵盤列信號522DIG4/KC4數(shù)碼管位選信號4/鍵盤列信號423SA/KR0數(shù)碼管a段/鍵盤行信號024SB/KR1數(shù)碼管b段/鍵盤行信號12021-11-11702021-11-11712021-11-11722021-11-11732021-11-11742021-11-11752021-11-11762021-11-11772021-11-1178 2021-11-1179 2021-11-11802021-11-1181d4d3d2d1d0(二進制)d

22、4d3d2d1d0(十進制)顯示結(jié)果0100109H9010100AHA010110BHb011000CHC01101ODHd01110OEHE01111OFHF1000010HG1000111HH2021-11-11821100119Ht2021-11-1183d4d3d2d1d0(二進制)d4d3d2d1d0(十進制)顯示結(jié)果110101AHU110111BHy111001CHc111011DHh111101EHT111111FH(無顯示)2021-11-1184 2021-11-1185在8個數(shù)碼管上從左到右顯示”20100725”,參考程序清單如下:SDABIT P1.0SCL BIT

23、 P1.1WSLA EQU 070H;ZLG7290器件的寫地址RSLA EQU 071H;ZLG7290器件的讀地址 ORG0000H LJMP 0100H ORG0100H ;主程序START: MOV30H,#02H;變量緩沖區(qū)定義顯示“20100725”MOV31H,#00H;MOV32H,#01H;MOV33H,#00HMOV34H,#00H2021-11-1186MOV35H,#07HMOV36H,#02HMOV37H,#05HMOVDPTR,#LEDSEG ;數(shù)據(jù)指針指向字型碼表首地址CLRAMOVR7,#08HMOVR0,#40HMOVR1,#30HLOOP1: MOVA,R1

24、 ;從變量緩沖區(qū)取出要形式的數(shù)字MOVCA,A+DPTR ;查表得字型碼MOVR0,A ;將字型碼存儲到40H開始的單元中INCR1INCR0DJNZ R7,LOOP12021-11-1187LOOP:MOVR7,#08HMOVR0,#40H ;字型碼首地址送R0MOVR2,#10H ;ZLG7290內(nèi)部顯示緩沖區(qū)首地址送R2MOVR3,#WSLA ;ZLG7290器件的寫地址送R3LCALL WRNBYT ;調(diào)用顯示子程序LCALL DELAYSJMP LOOP LEDSEG: DB 0FCH,60H,0DAH,0F2H,66H,0B8H,0BEH,0E4H ;0-F共陰字型碼表 DB 0F

25、EH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH DELAY: MOV R5,#00H ;延時子程序 DELAY1: MOV R6,#00H DJNZ R6,$ DJNZ R5,DELAY1 RET END2021-11-1188上述調(diào)用的相關(guān)的I2C子程序(WRNBYT,WRBYT,STOP,CACK,START)參見9.2.2節(jié)的內(nèi)容。采用C語言編寫的參考程序#include “reg51.h”#include “intrins.h”#define DEPLAY5US _nop_( ); _nop_( ); _nop_( ); _nop_( ); _nop_( ); sbi

26、t SDA=P10;sbit SCL=P11;#define WSLA0 0 x70#define RSLA0 0 x71#define uchar unsigned charvoid STA(void);void STOP(void);void CACK(void);2021-11-1189void Sendbyte (unsigned char *p);void Sendnbyte(uchar *s3,uchar *s2,uchar *s0,uchar n);void DELAY();void main() uchar n,i,m,*c,*y,*x,wsubsla=0 x10,WSLA=W

27、SLA0; uchar a8=2,0,1,0,0,7,2,5; /*顯示字符*/ uchar b8 ; /*存放顯示字符對應(yīng)的字型碼*/ uchar zxm16=0 xfc,0 x60,0 xda,0 xf2,0 x60,0 xda,0 xf2,0 x66,0 xbe,0 xe4, 0 xfe,0 xf6,0 xee,0 x3e,0 x9c,0 x7a, 0 x9e,0 x8e; /*0-F的字型碼 */ for(i=0;i8;i+) m=ai; /*取當(dāng)前顯示字符*/ bi=zxmm /*查得顯示字符的字型碼 */2021-11-1190while(1) x=&WSLA; /* 取Z

28、LG7290器件的寫地址*/ c=&wsubsla; /* 取ZLG7290器件的內(nèi)部顯示緩沖寄存器的地址*/ y=b; /*獲得顯示字符的字型碼地址 */ n=8; Sendnbyte (x,c,y,n); /*調(diào)用寫多字節(jié)的顯示子程序*/ DELAY( ); void DELAY( ) unsigned char i,j; for(i=0;i100;i+) for(j=0;j100;j+); 2021-11-1191上述程序調(diào)用的相關(guān)的I2C子程序(Sendbyte ( )、Sendnbyte( )、Stare( )、stop( )、ack( )、nack( )、cack( )參見

29、9.2.2的內(nèi)容。SDA BITP1.0SCLBITP1.1WSLAEQU070H ; ZLG7290器件的寫地址RSLAEQU071H ; ZLG7290器件的讀地址ORG 0000HLJMP0100HORG0003H ;中斷入口LJMP INT_7290 ;鍵盤中斷服務(wù)ORG 0100H2021-11-1192START:MOV SP,#60HSETB EA ;開INT0中斷SETB EX0SETB IT0 ;觸發(fā)極性為下降沿MOV30H,#0DH ; 變量緩沖區(qū)(存放顯示字符在字型碼表中的偏移地址)MOV31H,#10HMOV32H,#11HMOV 33H,#10HMOV34H,#02H

30、 MOV 35H,#13H; MOV36H,#13H;MOV37H,#13H; ;通過查表建立顯示緩沖區(qū)(40H-47H)2021-11-1193MOV DPTR,#LEDSEG ;開始對變量查表MOVR7,#8 ;寫入數(shù)據(jù)個數(shù)MOVR0,#30H;源數(shù)據(jù)塊首地址MOVR1,#40H ;當(dāng)前字符字形碼表顯示緩沖區(qū)LOOP1:MOVA,R0MOVC A,A+DPTR ;查表得對應(yīng)的字形碼MOV R1,A ;送顯示緩沖區(qū)INCR1INCR0DJNZ R7,LOOP1;向7290B寫入數(shù)據(jù),以顯示“data= XX ”,最后兩位為鍵值的十進制顯示2021-11-1194LOOP: MOVR7,#8

31、MOV R2,#10H ;ZLG7290器件的內(nèi)部顯示緩沖寄存器的地址 MOV R3,#WSLA ; ZLG7290器件的寫地址送R2 MOV R0,#40H ;當(dāng)前字符字形碼表顯示緩沖區(qū)地址送R0 LCALL WRNBYT ;調(diào)顯示子程序 LCALL DELAY ;使顯示穩(wěn)定 SJMP LOOPLEDSEG:DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E4H ;0-7的字形碼 DB 0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH ;8-F的字形碼 DB 0FAH,1EH,12H,00H;a,t,=和熄滅碼CF:PUSH 02H ;將A中的數(shù)

32、據(jù)拆分為兩個四位16進制數(shù)并查表2021-11-1195 PUSH DPH;PUSH DPLMOVDPTR,#LEDSEGMOVR2,AANLA,#0FHMOVCA,A+DPTRMOVR3,AMOVA,R2SWAPAANLA,#0FHMOVCA,A+DPTRMOV R4,APOPDPLPOPDPHPOP02HRET2021-11-1196;中斷服務(wù)程序INT_7290:(讀取健值、拆分并轉(zhuǎn)換成字型碼更新46H和47H單元內(nèi)容,以便刷新顯示)INT_7290:NOP PUSH 00HPUSH 02HPUSH 03HPUSH 04HPUSH 07HPUSH ACCPUSH PSWMOVR0,#20

33、H;狀態(tài)數(shù)據(jù)區(qū)首址MOVR7,#04H;取狀態(tài)數(shù)據(jù)個數(shù)MOVR2,#00H;內(nèi)部數(shù)據(jù)首地址2021-11-1197 MOVR3,#WSLA ;取器件地址(寫) MOVR4,#RSLA ;取器件地址(讀) LCALL RNBYTE ;讀出7290的4個寄存器(地址為00H03H)數(shù)據(jù)存于20H-23H NOP MOVA,21H ;取21H單元的鍵值 LCALL CF;拆分、查表 MOV47H,R3 ;送顯示緩沖區(qū)(最低兩位數(shù)碼管的字型碼在46H、47H中) MOV46H,R4 POP PSW POPACC POP07H POP04H 2021-11-1198 POP 03H POP 02H PO

34、P 00H RETI DELAY: MOV R6,#00H DELAY 1:MOV R5,#00H DJNZ R5,$ DJNZ R6,DELAY1 RET END相關(guān)的I2C子程序(WRNBYT、RNBYTE、WRBYT、STOP、CACK、STA),參見9.2.2的內(nèi)容。2021-11-1199采用C語言編寫的參考程序#include “reg51.h”#include “intrins.h”#define DELAY5US _nop_();_nop()_;_nop_();_nop()_;_nop_();sbit SDA=P10;sbit SCL=P11;#define unsigned

35、char uchar#define WSLA1 0 x70; /*7290器件地址*/#define RSLA1 0 x71;void start(void); /*函數(shù)聲明*/void stop(void);void mack(void);2021-11-11100void nmack(void);void cack(void);void Sendbyte (unsigned char *p);void Rcvbyte (unsigned char *p);void Sendnbyte (unsigned char *s3, unsigned char *s2, unsigned char

36、*s0, unsigned char n);void Rcvnbyte (unsigned char *s3, unsigned char *s4, unsigned char *s2, unsigned char *s0,unsigned char n);uchar zxm8;uchar code b20=0 xfc,0 x60,0 xda,0 xf2,0 x66,0 xb6,0 xde,0 xe4,0 xfe,0 xf6,0 xee,0 x3e,0 x9c,0 x7a,0 x9e,0 x8e,0 xfa,0 x1e,0 x12,0 x00;/*0-F字型碼,最后4個依次為a,t,=和熄滅的字型碼*/2021-11-11101void DELAY();void main() uchar n,i,*c,*y,*x,wsubsa=0 x10,WSLA=WSLA1; uchar a8= 0 x0d,0 x10, 0 x11, 0 x10,0 x12,0 x13,0 x13,0 x13;/*變量緩沖區(qū)(存放顯示字符在字型碼表中的偏移地址)*/ for(i=0;i4; i=i&0 x0f; zxm6=bi;2021-11-11103void DELAY() unsigned char i,j; for(i=0;i

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論