西華大學單片機課程設計之基于單片機與DS1302的數字鬧鐘_第1頁
西華大學單片機課程設計之基于單片機與DS1302的數字鬧鐘_第2頁
西華大學單片機課程設計之基于單片機與DS1302的數字鬧鐘_第3頁
西華大學單片機課程設計之基于單片機與DS1302的數字鬧鐘_第4頁
西華大學單片機課程設計之基于單片機與DS1302的數字鬧鐘_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上課程設計說明書 課 程 名 稱: 單片機應用課程設計 課 程 代 碼: 題 目: 數字鬧鐘的設計 學 生 姓 名: 學 號: 7 年級/專業(yè)/班: 2011級機電2班 學院(直屬系) : 機械工程與自動化學院 指 導 教 師: 張恕遠 數字鬧鐘的設計摘要電子時鐘主要是利用電子技術將時鐘電子化、數字化,擁有時鐘精確、體積小、界面友好、可擴展性能強等特點,被廣泛應用于生活和工作當中。另外,在生活和工農業(yè)生產中,也常常需要溫度,這就需要電子時鐘具有多功能性。本設計主要為實現一款可正常顯示時鐘/日歷、帶有定時鬧鈴的多功能電子時鐘。本文對當前電子鐘開發(fā)手段進行了比較和分析,最終

2、確定了采用單片機技術實現多功能電子時鐘。本設計應用AT89C52芯片作為核心,LCD1062進行顯示,使用DS1302實時時鐘日歷芯片完成時鐘/日歷的基本功能。這種實現方法的優(yōu)點是電路簡單,性能可靠,實時性好,時間精確,操作簡單,編程容易。該電子時鐘可以應用于一般的生活和工作中,也可通過改裝,提高性能,增加新功能,從而給人們的生活和工作帶來更多的方便。關鍵詞:電子時鐘;多功能;AT89C52;時鐘日歷專心-專注-專業(yè)目 錄摘要I1、設計任務、目的、思路12、總體設計方案23、電路原理的設計33.1        &

3、#160;  DS1302原理及電路33.2           晶振電路33.3           復位電路原理及電路43.4        LCD1602原理及電路43.5         &#

4、160; DS18B20電路53.6           按鍵電路及功能53.7           蜂鳴器電路64、軟件系統設計74.1          系統工作流程圖74.2           軟件系統

5、構成85、系統調試與結果96、課程設計體會107、參考文獻11附錄: 程序代碼121、設計任務、目的、思路(1)任務用LCD顯示出月、日、分、星期和溫度,三四個按鍵可對時間進行校正,并能實現鬧鐘功能。(2)目的1、掌握電子時鐘的基本工作方式。2、進一步熟悉DS1302及DS18B20芯片的特性。3、通過使用各基本指令,進一步熟練掌握單片機的編程和程序調試。(3)思路利用AT89C52的特點及DS1302的特點,設計一種基于DS1302單片機控制,再利用LCD顯示的數字鐘。本系統硬件利用AT89S52作為CPU進行總體控制,通過DS1302時鐘芯片獲取準確詳細的時間(年、月、日、周、日、時、分、

6、秒準確時間),對時鐘信號進行控制,同時利用液晶顯示芯片LCD1602對時間進行準確顯示年、月、日、周、日、時、分、秒。2、總體設計方案LCD1602液晶顯示模塊DS1302時鐘模塊AT89C52單片機按鍵模塊蜂鳴器模塊晶振電路18B20溫度模塊復位電路根據系統設計的要求和設計思路,確定該系統的系統設計結構圖。如圖所示。硬件電路主要由AT89C52單片機控制器單元、DS1302時鐘電路、復位電路、DS18B20溫度模塊、按鍵模塊、晶振電路、蜂鳴器模塊、LCD1602液晶顯示模塊等構成。3、電路原理的設計3.1 DS1302原理及電路如下所示本設計使用的實時時鐘電路芯片是美國DALLAS公司生產的

7、一種高性能、低功耗、帶RAM的實時時鐘電路芯片DS1302。VCC1為后備電源,VCC2為主電源。在主電源關閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由VCC1或VCC2兩者中的較大 者供電;當VCC2大于VCC10.2V時,VCC2給DS1302供電;當VCC2小于VCC1時,DS1302由VCC1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST非是復位/片選線,通過把RST非輸 入驅動置高電平來啟動所有的數據傳送。圖3.1-1圖3.1-23.2 晶振電路如下AT89S52在工作時需要外部提供時鐘信號,因此,本設計選擇在其18腳19腳之間接上12MHz的晶振,為單片機提供1

8、s的機器振蕩周期。其電路連接圖如圖所示。在圖中,電容器C3、C4起穩(wěn)定振蕩頻率、快速起振的作用,其電容值一般在2050pF。圖3.23.3 復位電路原理及電路如下在AT89C52單片機中的振蕩器運行時,RST非引腳上保持到少2個機器周期的高電平輸入信號,復位過程即可完成。根據此原理,本設計采用上電復位和按鍵復位嵌套在系統中,增強了系統的實用性。圖3.33.4 LCD1602原理及電路如下LCD1602液晶顯示是一種專門用來顯示字母、數字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符

9、間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。1602LCD是指顯示的內容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數字)。以其微功耗、體積小、顯示內容豐富、超薄輕巧的諸多優(yōu)點,在各種小系統中得到了更廣泛的應用。本設計中使用的液晶顯示模塊是LCD1602。圖3.43.5 DS18B20電路如下DS18B20,常用的溫度傳感器,具有體積小,硬件開銷低,抗干擾能力強,精度高的特點。圖3.53.6 按鍵電路如下圖3.6按鍵功能說明:KEY0為時鐘調節(jié)功能鍵,第一次按KEY0時,時間停止且光標在年處閃爍。第二次按KEY0時,光標在月處

10、閃爍。第三次按KEY0時,光標在日處閃爍。第四次按KEY0時,光標在星期處閃爍。第五次按KEY0時,光標在時處閃爍。第六次按KEY0時,光標在日處閃爍。第七次按KEY0時,光標在秒處閃爍。光標閃爍時可用KEY1增加相應的值或KEY2減少相應的值。第八次按KEY0時,保存了修改的時間值并返回顯示時間。KEY3為鬧鐘功能鍵。第一次按KEY3時,進入鬧鐘設置頁面,光標在鬧鐘開關處閃爍。第二次按KEY3時,光標在分處閃爍。第三次按KEY3時,光標在時處閃爍。光標閃爍時,同樣可以用KEY1與KEY2修改相應的值。當鬧鐘響起時,1分鐘后自動關閉。3.7 蜂鳴器電路如下圖3.74、軟件系統設計4.1、系統工

11、作流程圖開始時間及LCD初始化鍵盤是否按下 y 設置時間(向DS1302寫入)讀取DS1302時間 NLCD顯示時間蜂鳴器響鬧鐘是否開起及鬧鐘時間是否到 Y 圖4.1系統工作流程圖4.2軟件系統構成 軟件系統包含引腳定義及變量申明、LCD顯示部分、DS1302部分、鍵盤掃描部分、DS18B20溫度部分、主函數等等。 LCD部分對不變的顯示部分進行LCD初始化,將需要變化的部分分開顯示,如將年、月、日、星期顯示在第一行,將時、分、秒、溫度、鬧鐘設置顯示在第二行。 DS1302對將要顯示的時間送入LCD進行顯示,以及對調整后的時間進行接收存儲計算及送入LCD重新顯示。 鍵盤掃描部分對鍵盤進行掃描,

12、修改時間時按鍵使數據的改變而送入DS1302進行時間的修改,以及鬧鐘時間的修改。 DS18B20部分對硬件采集到的環(huán)境溫度進行數據轉換并送入LCD顯示。5、系統調試與結果系統調試過程利用Proteus繪制出相應硬件電路后進行仿真,出現液晶顯示無法正常顯示的問題。經過思考和查閱的資料發(fā)現AT89C52的P0在進高電平時沒有接上拉電阻導致LCD1602無法正常顯示時間。修改電路后(P0口接上拉電阻)燒入程序后,程序正常運行,LCD1602準確的顯示。用Proteus仿真能夠正確的現實時間,但燒入學習板出現亂碼現實不能正常工作。經過反復檢查及思考發(fā)現仿真軟件上的硬件電路與學習板上的硬件電路不一致無法

13、對應起來。最后根據學習板的硬件電路修改相應程序及仿真軟件上的硬件電路,最終現實了功能。系統調試結果:圖5.16、課程設計體會本設計利用單片機AT89C512控制串行實時時鐘芯DS1302構成數字時鐘電路,實現計時功能。該電路使用簡單的三線接口,為單片機節(jié)省大量的接口資源,時鐘芯片帶有后備電池。該時鐘功能強大,性能優(yōu)越,能為很多領域,特別是對時鐘工作的準確性和可靠性有較高要求。通過對電子時鐘的設計的設計與制作,讓我了解了電子時鐘模塊的編程思想,也讓我明白了電子時鐘的基本原理與設計理念,要設計一個電路必須先編好程序,用仿真軟件測試成功后再得出結論。通過這次學習,讓我對該軟件有了更熟悉的了解,我們應

14、該自己動手,實際操作,才會有更深刻的理解。7、參考文獻1 黃惟公單片機原理與應用技術:西安電子科大出版社20072 張毅剛MC-51單片機應用設計(二版):哈工大出版社 20053 宋戈. 黃鶴松. 51單片機應用開發(fā)范例大全:人民郵電出版社 20104 劉建清. 51單片機新穎實例非常入門與視頻演練:電子工業(yè)出版社20125 郭天祥. 新概念51單片機C語言教程:電子工業(yè)出版社 2009附錄:程序代碼:#include<reg52.h>#define uchar unsigned char#define uint unsigned int/*-引腳定義-*/sbit RST=P3

15、5; /DS1302片選sbit DIO=P34; /DS1302數據信號sbit SCLK=P36; /DS1302時鐘信號sbit ACC7=ACC7;sbit ACC0=ACC0;sbit LCD_E=P27; /液晶使能端sbit LCD_RS=P26; /液晶數據命令選擇端sbit LCD_RW=P25; /液晶讀寫選擇端sbit key0=P10; /功能鍵sbit key1=P11; /增大鍵sbit key2=P12; /減小鍵sbit key3=P13;/鬧鐘調節(jié)按鍵sbit beep=P33;/蜂鳴器sbit DQ=P37; /18b20溫度輸入輸出端 void INITI

16、AL_1302(); /初始化1302uchar READ_1302(uchar addr); /讀1302 void WRITE_1302(uchar addr,uchar date);/寫1302uint temp;/定義整型的溫度數據float f_temp; /定義浮點型的溫度數據char hour,minute,second,week,day,month,year,tem;unsigned char num,num1,flag;bit alarmon,alarmoff;uchar xx,yy;unsigned char clkhh=0,clkmm=0,clkflag,clkvalue

17、;unsigned char str1="20 - - "unsigned char str2=" : : . C "unsigned char str3="alarm : "void delay(uchar z);/延時函數void LCD_WRITE_COM(uchar com);/LCD寫函數void LCD_WRITE_DATA(uchar date);/LCD寫數據void LCD_WRITE_SFM(uchar addr,uchar date);/LCD寫時分秒void LCD_WRITE_NYR(uchar addr,u

18、char date);/LCD寫年月日void LCD_WRITE_WEEK(uchar week);/LCD寫星期void LCD_INITIAL();/LCD初始化void LCD_WRITE_TEMP(uchar addr,uchar temp);/LCD寫溫度void keyscan();/鍵盤掃描void dis_temp(uint t);void tempchange(void);void tempwritebyte(uchar dat);uchar tempread(void);bit tempreadbit(void);void dsreset(void);uint get_t

19、emp();/獲取溫度/*主函數*/ void main() LCD_INITIAL(); /液晶初始化 INITIAL_1302(); /DS1302初始化 dsreset(); while(1) keyscan(); /按鍵掃描if(flag=0) /當標志位為0,允許讀取DS1302數據,將數據送入液晶顯示 second=READ_1302(0x81); LCD_WRITE_SFM(6,second); minute=READ_1302(0x83); LCD_WRITE_SFM(3,minute); hour=READ_1302(0x85); LCD_WRITE_SFM(0,hour);

20、 week=READ_1302(0x8b); LCD_WRITE_WEEK(week); day=READ_1302(0x87); LCD_WRITE_NYR(8,day); month=READ_1302(0x89); LCD_WRITE_NYR(5,month); year=READ_1302(0x8d); LCD_WRITE_NYR(2,year); tempchange(); dis_temp(get_temp(); /*LCD1602*/void delay(uchar z) /1602de延時函數 unsigned char x,y; for(x=z;x>0;x-) for(

21、y=110;y>0;y-);void LCD_WRITE_COM(uchar com) /1602寫函數 LCD_RS=0; LCD_RW=0; LCD_E=1; P0=com; delay(5); LCD_E=0;void LCD_WRITE_DATA(uchar date) /1602寫數據 LCD_RS=1; LCD_RW=0; LCD_E=1; P0=date; delay(5); LCD_E=0;void LCD_WRITE_SFM(uchar addr,uchar date) /LCD寫時分秒 unsigned char shi,ge; shi=date/10; ge=dat

22、e%10; LCD_WRITE_COM(0x80+0x40+addr); LCD_WRITE_DATA(0x30+shi); LCD_WRITE_DATA(0x30+ge); void LCD_WRITE_NYR(unsigned char addr,unsigned char date)/LCD寫年月日 char shi,ge; shi=date/10; ge=date%10; LCD_WRITE_COM(0x80+addr); LCD_WRITE_DATA(0x30+shi); LCD_WRITE_DATA(0x30+ge);void LCD_WRITE_CLK(unsigned char

23、 addr,unsigned char date)/LCD寫鬧鐘 char shi,ge; shi=date/10; ge=date%10; LCD_WRITE_COM(0x80+0x40+addr); LCD_WRITE_DATA(0x30+shi); LCD_WRITE_DATA(0x30+ge);void LCD_WRITE_WEEK(uchar week)/LCD寫星期 LCD_WRITE_COM(0x80+11); switch(week) case 1: LCD_WRITE_DATA('S');delay(5); LCD_WRITE_DATA('U'

24、);delay(5); LCD_WRITE_DATA('N');break; case 2: LCD_WRITE_DATA('M');delay(5); LCD_WRITE_DATA('O');delay(5); LCD_WRITE_DATA('N');break; case 3: LCD_WRITE_DATA('T');delay(5); LCD_WRITE_DATA('U');delay(5); LCD_WRITE_DATA('E');break; case 4: LCD_WRI

25、TE_DATA('W');delay(5); LCD_WRITE_DATA('E');delay(5); LCD_WRITE_DATA('D');break; case 5: LCD_WRITE_DATA('T');delay(5); LCD_WRITE_DATA('H');delay(5); LCD_WRITE_DATA('U');break; case 6: LCD_WRITE_DATA('F');delay(5); LCD_WRITE_DATA('R');del

26、ay(5); LCD_WRITE_DATA('I');break; case 7: LCD_WRITE_DATA('S');delay(5); LCD_WRITE_DATA('A');delay(5); LCD_WRITE_DATA('T');break; void LCD_WRITE_TEMP(uchar addr,uchar temp)/LCD寫溫度 LCD_WRITE_COM(0x80+0x40+addr); LCD_WRITE_DATA(0x30+temp);void CLK_INITIAL(uchar addr,ucha

27、r clknum)/鬧鐘初始化uchar i;char shi,ge; shi=clknum/10; ge=clknum%10;LCD_WRITE_COM(0x38); LCD_WRITE_COM(0x0c); LCD_WRITE_COM(0x06);LCD_WRITE_COM(0x80);LCD_WRITE_COM(0x80+0x40);/液晶第二行顯示for(i=0;i<16;i+) LCD_WRITE_DATA(str3i); delay(5);LCD_WRITE_COM(0x80+0x40+addr);LCD_WRITE_DATA(shi/10+0x30);LCD_WRITE_D

28、ATA(ge%10+0x30);void LCD_INITIAL()/LCD初始化 unsigned char i;LCD_WRITE_COM(0x38); LCD_WRITE_COM(0x0c); LCD_WRITE_COM(0x06);LCD_WRITE_COM(0x80);for(i=0;i<16;i+)/液晶第一行顯示 LCD_WRITE_DATA(str1i); delay(5);LCD_WRITE_COM(0x80+0x40);/液晶第二行顯示for(i=0;i<16;i+) LCD_WRITE_DATA(str2i); delay(5);/*1302*/void WR

29、ITE_1302(uchar addr,uchar date)/向1302寫數據 unsigned char i; RST=0; SCLK=0; RST=1; for(i=8;i>0;i-) SCLK=0; ACC=addr; DIO=ACC0; addr>>=1; SCLK=1; for(i=8;i>0;i-) SCLK=0; ACC=date; DIO=ACC0; date>>=1; SCLK=1; RST=0;unsigned char READ_1302(unsigned char addr)/從1302讀數據 unsigned char i,dat

30、e1,date2; RST=0; SCLK=0; RST=1; for(i=8;i>0;i-) SCLK=0; ACC=addr; DIO=ACC0; addr>>=1; SCLK=1; for(i=8;i>0;i-) ACC7=DIO; SCLK=1; ACC>>=1; SCLK=0; RST=0; date1=ACC; date2=date1/16; date1=date1%16; date1=date1+date2*10; return(date1) ;void INITIAL_1302()/初始化1302 WRITE_1302(0x80,READ_1

31、302(0x81)&0x7f); /啟動DS1302 0x80寫秒地址/*鍵盤掃描部分*/void keyscan() if(key0=0)/確認功能鍵按下 delay(20); if(key0=0)/去抖 while(!key0);/釋放 num+; switch(num) case 1: flag=1; /修改時間,禁止從DS1302讀數據 LCD_WRITE_COM(0x0f); /光標開始閃爍 LCD_WRITE_COM(0x80+3);/第一次按下,光標定位到年位置 break; case 2: LCD_WRITE_COM(0x80+6);/第二次按下,光標定位到月位置 br

32、eak; case 3: LCD_WRITE_COM(0x80+9);/第三次按下,光標定位到日位置 break; case 4: LCD_WRITE_COM(0x80+13);/第四次按下,光標定位到星期位置 break; case 5: LCD_WRITE_COM(0x80+0x40+1);/第五次按下,光標定位到時位置 break; case 6: LCD_WRITE_COM(0x80+0x40+4);/第六次按下,光標定位到分位置 break; case 7:LCD_WRITE_COM(0x80+0x40+7);/第七次按下,光標定位到秒位 break; case 8: num=0;/

33、第八次按下,記錄清零 LCD_WRITE_COM(0x0c);/不顯示光標 WRITE_1302(0x8E,0x00); /允許寫操作 0x8E寫保護 WRITE_1302(0x80,(second/10*16)+second%10);/將調節(jié)后的秒寫入DS1302 WRITE_1302(0x82,(minute/10*16)+minute%10);/將調節(jié)后的分寫入DS1302 WRITE_1302(0x84,(hour/10*16)+hour%10);/將調節(jié)后的時寫入DS1302 WRITE_1302(0x8a,(week/10*16)+week%10);/將調節(jié)后的星期寫入DS1302

34、 WRITE_1302(0x86,(day/10*16)+day%10);/將調節(jié)后的日寫入DS1302 WRITE_1302(0x88,(month/10*16)+month%10);/將調節(jié)后的月寫入DS1302 WRITE_1302(0x8c,(year/10*16)+year%10);/將調節(jié)后的年寫入DS1302 WRITE_1302(0x8E,0x80); /開寫保護 flag=0; /時間修改完畢,允許液晶從DS1302讀數據 break; if(num!=0) if(key1=0)/確認增大鍵按下 delay(20); if(key1=0)/增大鍵確實按下 while(!key

35、1);switch(num) case 1:year+;/調節(jié)年 if(year=100)year=0; LCD_WRITE_NYR(2,year);/將調節(jié)后的年送入液晶顯示 LCD_WRITE_COM(0x80+3);/光標回到指定處break; case 2: month+;/調節(jié)月 if(month=13)month=0; LCD_WRITE_NYR(5,month);/將調節(jié)后的月送入液晶顯示 LCD_WRITE_COM(0x80+6);/光標回到指定處break; case 3: day+;/調節(jié)日 if(day=32)day=0; LCD_WRITE_NYR(8,day);/將調

36、節(jié)后的日送入液晶顯示 LCD_WRITE_COM(0x80+9);/光標回到指定處 break; case 4: week+; if(week=8)week=0; LCD_WRITE_WEEK(week);/將調節(jié)后的星期送入液晶顯示 LCD_WRITE_COM(0x80+13);/光標回到指定處 break; case 5: hour+; if(hour=24)hour=0; LCD_WRITE_SFM(0,hour);/將調節(jié)后的小時送入液晶顯示 LCD_WRITE_COM(0x80+0x40+1);/光標回到指定處 break; case 6: minute+; if(minute=60

37、)minute=0; LCD_WRITE_SFM(3,minute);/將調節(jié)后的分送入液晶顯示 LCD_WRITE_COM(0x80+0x40+4);/光標回到指定處 break; case 7: second+; if(second=60)second=0; LCD_WRITE_SFM(6,second);/將調節(jié)后的秒送入液晶顯示 LCD_WRITE_COM(0x80+0x40+7);/光標回到指定處 break;default:break; if(key2=0)/確認減小鍵按下 delay(20); if(key2=0)/減小鍵確實按下 while(!key2);switch(num)

38、 case 1: year-;/調節(jié)年 if(year=-1)year=99; LCD_WRITE_NYR(2,year); LCD_WRITE_COM(0x80+3); break; case 2: month-;/調節(jié)月 if(month=-1)month=12; LCD_WRITE_NYR(5,month); LCD_WRITE_COM(0x80+6); break; case 3: day-;/調節(jié)日 if(day=-1)day=31; LCD_WRITE_NYR(8,day); LCD_WRITE_COM(0x80+9); break; case 4: week-;/調節(jié)星期 if(

39、week=0)week=7; LCD_WRITE_WEEK(week); LCD_WRITE_COM(0x80+13); break; case 5: hour-;/調節(jié)時 if(hour=-1)hour=23; LCD_WRITE_SFM(0,hour); LCD_WRITE_COM(0x80+0x40+1); break; case 6: minute-;/調節(jié)分 if(minute=-1)minute=59; LCD_WRITE_SFM(3,minute); LCD_WRITE_COM(0x80+0x40+4); break; case 7: second-;/調節(jié)秒 if(second

40、=-1)second=59; LCD_WRITE_SFM(6,second); LCD_WRITE_COM(0x80+0x40+7); break; default:break; /*鬧鐘部分*/ if(key3=0)/鬧鐘調節(jié)鍵delay(20);if(key3=0)while(!key3);num1+; switch(num1) case 1: CLK_INITIAL(6,clkhh); CLK_INITIAL(9,clkmm); flag=1; LCD_WRITE_COM(0x0f); /光標開始閃爍 LCD_WRITE_COM(0x80+0x40+12);/第一次按/下,光標定位到鬧鐘

41、開關位置 break; case 2: LCD_WRITE_COM(0x80+0x40+10);/第二次按下,/光標定位到鬧鐘分鐘位置 break; case 3: LCD_WRITE_COM(0x80+0x40+7);/第二次按下,/光標定位到鬧鐘分鐘位置 break; case 4: num1=0; LCD_WRITE_COM(0x0c); LCD_INITIAL(); flag=0; break; if(num1!=0) if(key1=0)/確認增大鍵按下 delay(20); if(key1=0)/增大鍵確實按下 while(!key1);switch(num1)case 1: cl

42、kflag+; switch(clkflag) case 1:clkvalue=1; LCD_WRITE_DATA('O'); LCD_WRITE_DATA('N'); LCD_WRITE_DATA(' ');LCD_WRITE_COM(0X80+0X40+12);break; case 2:clkvalue=0; clkflag=0;LCD_WRITE_DATA('O');LCD_WRITE_DATA('F');LCD_WRITE_DATA('F');LCD_WRITE_COM(0X80+0X40+12);break; ;break;case 3: clkhh+;if(clkhh=24)clkhh=0;LCD_WRITE_CLK(6,clkhh);LCD_WRITE_COM(0x80+0x40+7);/光標回到指定處break; case 2: clkmm+;if(clkmm=60)clkmm=0;LCD_WRITE_CLK(9,clkmm);LCD_WRITE_COM(0x80+0x40+10);/光標回到指定處break; defa

溫馨提示

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

評論

0/150

提交評論