基于51單片機(jī)的電子表設(shè)計(jì)_第1頁
基于51單片機(jī)的電子表設(shè)計(jì)_第2頁
基于51單片機(jī)的電子表設(shè)計(jì)_第3頁
基于51單片機(jī)的電子表設(shè)計(jì)_第4頁
基于51單片機(jī)的電子表設(shè)計(jì)_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、西安文理學(xué)院課程設(shè)計(jì)報(bào)告目錄目錄1第1章 概述11.1實(shí)驗(yàn)原理1第2章 設(shè)計(jì)思路及框圖12.1設(shè)計(jì)思路12.2設(shè)計(jì)框圖2第3章系統(tǒng)的硬件設(shè)計(jì)23.1主控制部件23.2顯示模塊33.3晶振模塊33.4按鍵模塊33.5驅(qū)動模塊4第4章電路設(shè)計(jì)原理圖44.1電路原理圖4第5章 程序設(shè)計(jì)55.1程序流程圖55.2源程序6第6章系統(tǒng)的驗(yàn)證及調(diào)試266.1日期設(shè)置顯示測試266.2秒表測試266.3倒計(jì)時測試27第7章 總結(jié)28第8章 參考文獻(xiàn)28第 2 頁第1章 概述1.1實(shí)驗(yàn)原理單片機(jī)集成度高、功能強(qiáng)、可靠性高、體積小、功耗地、使用方便、價格低廉等一系列優(yōu)點(diǎn),目前已經(jīng)滲入到人們工作和生活的方方面面,幾

2、乎“無處不在,無所不為”。單片機(jī)的應(yīng)用領(lǐng)域已從面向工業(yè)控制、通訊、交通、智能儀表等迅速發(fā)展到家用消費(fèi)產(chǎn)品、辦公自動化、汽車電子、PC機(jī)外圍以及網(wǎng)絡(luò)通訊等廣大領(lǐng)域。 單片機(jī)有兩種基本結(jié)構(gòu)形式:一種是在通用微型計(jì)算機(jī)中廣泛采用的,將程序存儲器和數(shù)據(jù)存儲器合用一個存儲器空間的結(jié)構(gòu),稱為普林斯頓結(jié)構(gòu)。另一種是將程序存儲器和數(shù)據(jù)存儲器截然分開,分別尋址的結(jié)構(gòu),一般需要較大的程序存儲器,目前的單片機(jī)以采用程序存儲器和數(shù)據(jù)存儲器截然分開的結(jié)構(gòu)為多。 本課題討論的方波發(fā)生器的核心是目前應(yīng)用極為廣泛的 51系列單片機(jī)。 利用AT89C51單片機(jī)定時器完成計(jì)時功能,定時器0計(jì)時中斷程序每隔0.01s中斷一次并當(dāng)作

3、一個計(jì)數(shù),設(shè)定定時1秒的中斷計(jì)數(shù)初值為0,每中斷一次中斷計(jì)數(shù)初值加1,當(dāng)加到100時,則表示1s到了,秒變量加1,同理再判斷是否1min鐘到了,再判斷是否1h到了。為了將時間在6位LED數(shù)碼管上顯示,可采用靜態(tài)顯示法和動態(tài)顯示法,由于靜態(tài)顯示法需要譯碼器,數(shù)據(jù)鎖存器等較多硬件,可采用動態(tài)顯示法實(shí)現(xiàn)LED顯示,通過對每位數(shù)碼管的依次掃描,使對應(yīng)數(shù)碼管亮,同時向該數(shù)碼管送對應(yīng)的字碼,使其顯示數(shù)字。由于數(shù)碼管掃描周期很短,由于人眼的視覺暫留效應(yīng),使數(shù)碼管看起來總是亮的,從而實(shí)現(xiàn)了各種顯示。第2章 設(shè)計(jì)思路及框圖2.1設(shè)計(jì)思路針對要實(shí)現(xiàn)的功能,采用AT89S51單片機(jī)進(jìn)行設(shè)計(jì),AT89S51 單片 機(jī)

4、是一款低功耗,高性能CMOS8位單片機(jī),第一,熟悉AT89S51單片機(jī),在編程之前必須了解硬件結(jié)構(gòu)尤其是各引腳的用法,以及內(nèi)部寄存器、存儲單元的用法,否則,編程無從下手,電路也無法設(shè)計(jì)。這是前期準(zhǔn)備工作。第二,設(shè)計(jì)硬件部分:依據(jù)想要的功能分塊設(shè)計(jì)設(shè)計(jì),比如輸入需要開關(guān)電路,輸出需要顯示驅(qū)動電路和數(shù)碼管電路等。第三,畫圖部分:設(shè)計(jì)好電路后進(jìn)行畫圖。第四,軟件部分:先學(xué)習(xí)理解匯編語言的編程方法再根據(jù)設(shè)計(jì)的硬件電路進(jìn)行分塊的編程調(diào)試,最終完成程序設(shè)計(jì)。第五部分是軟件仿真部分:軟硬件設(shè)計(jì)好后將軟件載入芯片中進(jìn)行仿真,仿真無法完成時檢查軟件程序和硬件電路并進(jìn)行修改直到仿真成功。第六部分是硬件實(shí)現(xiàn)部分:連

5、接電路并導(dǎo)入程序檢查電路,實(shí)現(xiàn)想要的功能。2.2設(shè)計(jì)框圖此次設(shè)計(jì)主要是應(yīng)用單片機(jī)來設(shè)計(jì)電子時鐘,硬件部分主要分以下電路模塊:顯示電路用8個共陰極數(shù)碼顯示管、按鍵模塊、晶振模塊。顯示管分別顯示:小時、分鐘和秒,通過動態(tài)掃描進(jìn)行顯示。電路的總體設(shè)計(jì)框架如下:單片機(jī)模塊晶振模塊 圖1 LCD顯示模塊 時鐘模塊 驅(qū)動模塊按鍵模塊 第3章系統(tǒng)的硬件設(shè)計(jì)3.1主控制部件 89C51是一個8位單片機(jī),片內(nèi)ROM全部采用FLASH ROM技術(shù),晶振時鐘為12MHz。89C51是標(biāo)準(zhǔn)的40引腳雙列直插式集成電路芯片,有4個八位的并行雙向I/O端口,分別記作P0、P1、P2、P3。第31引腳需要接高電位使單片機(jī)選

6、用內(nèi)部程序存儲器;第40腳為電源端VCC,接+5V電源,第20引腳為接地端VSS,通常在VCC和VSS引腳之間接0.1F高頻濾波電容。硬件原理圖如圖2所示: 圖23.2顯示模塊 方案一:靜態(tài)顯示。靜態(tài)顯示,即當(dāng)顯示器顯示某一字符時,相應(yīng)的發(fā)光二極管恒定導(dǎo)通或截至。該方式每一位都需要一個8位輸出口控制。靜態(tài)顯示時較小電流能獲得較高的亮度,且字符不閃爍。但因當(dāng)所需顯示的位數(shù)較多時,靜態(tài)顯示所需的I/O口數(shù)較大,造成資源的浪費(fèi)。 方案二:動態(tài)顯示。動態(tài)顯示,即各位數(shù)碼管輪流點(diǎn)亮,對于顯示器各位數(shù)碼管,每隔一段延時時間循環(huán)點(diǎn)亮一次。利用人的視覺暫留功能可以看到整個顯示,但必須保證掃描速度足夠快,人的視

7、覺暫留功能才可以察覺不到字符閃爍。顯示器的亮度與導(dǎo)通電流、點(diǎn)亮?xí)r間及間隔時間的比例有關(guān)。調(diào)整參數(shù)可實(shí)現(xiàn)較高穩(wěn)定度的顯示。動態(tài)顯示節(jié)省了I/O口,降低了能耗。從節(jié)省單片機(jī)I/O口和降低能耗角度出發(fā),本電子表顯示選擇采用方案二。3.3晶振模塊單片機(jī)芯片可使用內(nèi)部時鐘電路和外部時鐘電路兩種方式產(chǎn)生電路所需的時鐘脈沖,內(nèi)部時鐘電路實(shí)現(xiàn)可用石英晶體和微調(diào)電容外接即可達(dá)到,外部時鐘電路實(shí)現(xiàn)需要一個外部脈沖源引入脈沖信號以保證個單片機(jī)之間時鐘信號的同步。從硬件實(shí)現(xiàn)難易角度考慮,內(nèi)部時鐘電路的實(shí)現(xiàn)比外部時鐘電路的實(shí)現(xiàn)更簡易。既本數(shù)字電子鐘設(shè)計(jì)所需的時鐘源采用內(nèi)部時鐘電路實(shí)現(xiàn)。3.4按鍵模塊本數(shù)字電子鐘設(shè)計(jì)所需

8、按鍵用于進(jìn)行顯示時間的調(diào)整與設(shè)置擴(kuò)展的小鍵盤。單片機(jī)芯片4個I/O口可與按鍵直接相連,通過編程,單片機(jī)芯片即可控制按鍵接口電平的高低,即按鍵的開與關(guān),以達(dá)到用按鍵進(jìn)行顯示時間的調(diào)整與設(shè)置擴(kuò)展的小鍵盤的設(shè)計(jì)要求,本電路采用P1口與按鍵相連。3.5驅(qū)動模塊從實(shí)物制作簡易程度與驅(qū)動數(shù)碼管段碼能力角度出發(fā),本數(shù)字電子鐘設(shè)計(jì)采用數(shù)碼管段碼與AT89C51P0口相連,單片機(jī)AT89C51的P2口控制數(shù)碼管的片選信號,通過編程,單片機(jī)芯片即可控制段碼電平的高低的方式實(shí)現(xiàn)數(shù)碼管段碼控制。第4章電路設(shè)計(jì)原理圖4.1電路原理圖 圖3第5章 程序設(shè)計(jì)5.1程序流程圖 在主程序的開始定義了一組固定單元用來存儲計(jì)數(shù)的分

9、、秒、時的存儲單元。在主程序中,對不同的按鍵進(jìn)行掃描,實(shí)現(xiàn)秒表,時間調(diào)整。系統(tǒng)總體流程圖如圖4所示。 開始 T0中斷入口 通過查表方式顯示數(shù)據(jù) 位選數(shù)值=0 秒計(jì)數(shù)加1 秒計(jì)數(shù)=1000 秒計(jì)數(shù)=0 Seconds+1 中斷返回 圖4系統(tǒng)子程序流程圖如圖5所示: 圖55.2源程序#include <reg52.h>#include "ds1302.h"#include "lcd1602.h"#include "key.h"/sbit wela=P27;/sbit dula=P26;uchar tab_date14=&quo

10、t;2012-11-16 TUE"/表示年月日星期uchar tab_time8="00:00:00"/表示時分秒uchar tab_time18="00:00:00"/表示時分秒uchar tiao;uchar msecond;uchar hour,min,sec,key,sition;/uchar kong=" "uchar flag;/時間秒表選擇標(biāo)志/-/ 數(shù)據(jù)轉(zhuǎn)換/-void trans() tab_date2=tab_13026/10+'0' /年十位 tab_date3=tab_13026%10

11、+'0' /年個位 tab_date5=tab_13024/10+'0' /月十位 tab_date6=tab_13024%10+'0' /月個位 tab_date8=tab_13023/10+'0' /日十位 tab_date9=tab_13023%10+'0' /日個位 tab_time0=tab_13022/10+'0' /小時十位 tab_time1=tab_13022%10+'0' /小時個位 tab_time3=tab_13021/10+'0' /分十位

12、tab_time4=tab_13021%10+'0' /分個位 tab_time6=tab_13020/10+'0' /秒十位 tab_time7=tab_13020%10+'0' /秒個位/-/ 星期顯示/-void week() uchar i; if(tab_13025=1) i=7; else i=tab_13025-1; /*實(shí)時時鐘里的值是6,但是2008/08/08是星期五,所以減1, Proteus的問題? */ switch(i) case 1: tab_date11='M'tab_date12='O&#

13、39;tab_date13='N' break; case 2: tab_date11='T'tab_date12='U'tab_date13='E' break; case 3: tab_date11='W'tab_date12='E'tab_date13='D' break; case 4: tab_date11='T'tab_date12='H'tab_date13='U' break; case 5: tab_date11=&#

14、39;F'tab_date12='R'tab_date13='I' break; case 6: tab_date11='S'tab_date12='T'tab_date13='A' break; case 7: tab_date11='S'tab_date12='U'tab_date13='N' break; default: ; break; /其它情況 void getweek(uchar week1,uchar t)uchar i; if(week1=

15、1) i=7; else i=week1-1; /*實(shí)時時鐘里的值是6,但是2008/08/08是星期五,所以減1, Proteus的問題? */ switch(i) case 1: t0='M't1='O't2='N' break; case 2: t0='T't1='U't2='E' break; case 3: t0='W't1='E't2='D' break; case 4: t0='T't1='H't2=

16、9;U' break; case 5: t0='F't1='R't2='I' break; case 6: t0='S't1='T't2='A' break; case 7: t0='S't1='U't2='N' break; default: ; break; /其它情況 void cls(uchar i)/表示打印出i個空格/lcd_wcom(addr);/重新設(shè)定顯示地址為0xc4,即下排第5位for(;i>0;i-)lcd_wda

17、t(' ');lcddelay(1);/-/ lcd液晶屏顯示/-void display(uchar a,uchar b)uchar i,j;lcd_wcom(0x80+0x01);/顯示地址設(shè)為80H(即00H,)上排第一位for(i=0;i<14;i+)lcd_wdat(ai);/將日期顯示在lcd1602上lcddelay(1);lcd_wcom(0x80+0x44);/重新設(shè)定顯示地址為0xc4,即下排第5位for(j=0;j<8;j+)/將tab_time中的數(shù)據(jù)依次寫入1602顯示 lcd_wdat(bj);lcddelay(1);/-/ 顯示倒計(jì)時/

18、-void djsdsp(uchar hour,uchar min,uchar sec)uchar j,key,t;/uchar t="00:00:00"/TR1=1;while(1)t=tab_13020;ds1302();if(t!=tab_13020)msecond=1;key=Getkey();if(key=KEY_BK)return;sec=sec-msecond;msecond=0;if(sec=255)sec=59;min-;if(min=255)min=59;hour-;if(hour=255)while(1)key=Getkey();if(key=KEY_

19、BK)return;tab_time0=hour/10+'0'tab_time1=hour%10+'0'tab_time3=min/10+'0'tab_time4=min%10+'0'tab_time6=sec/10+'0'tab_time7=sec%10+'0'lcd_wcom(0x80+0x44);/重新設(shè)定顯示地址為0xc4,即下排第5位for(j=0;j<8;j+)/將tab_time中的數(shù)據(jù)依次寫入1602顯示 lcd_wdat(tab_timej);lcddelay(1);/-/

20、設(shè)置倒計(jì)時/-void djishi()uchar ch="Countdown:"uchar t="00:00:00"uchar str="00"uchar i;sition=3;hour=min=sec=0;lcd_wcom(0x01);/清屏lcd_wcom(0x80+0x01);/顯示地址設(shè)為80H(即00H,)上排第一位for(i=0;i<10;i+)lcd_wdat(chi);/將"Countdown:"顯示在lcd1602上lcddelay(1);lcd_wcom(0x80+0x44);/顯示地址

21、設(shè)為80H(即00H,)上排第一位for(i=0;i<8;i+)lcd_wdat(ti);/將時間顯示在lcd1602上lcddelay(1);while(1)key=Getkey();switch(key)case KEY_MU:return;case KEY_UP:switch(sition)case 1:hour+;if(hour>=24) hour=0;break;case 2:min+;if(min>=60) min=0;break;case 3:sec+;if(sec>=60) sec=0;break;default:break;break;case KEY

22、_DN:switch(sition)case 1:hour-;if(hour=255) hour=59;break;case 2:min-;if(min=255) min=59;break;case 3:sec-;if(sec=255) sec=59;break;default:break;break;case KEY_L:lcd_wdat(str0);lcddelay(1);lcd_wdat(str1);lcddelay(1);sition-;if(sition=0) sition=3;break;case KEY_R:lcd_wdat(str0);lcddelay(1);lcd_wdat(

23、str1);lcddelay(1);sition+;if(sition=4) sition=1;break;case KEY_OK:djsdsp(hour,min,sec);lcd_wcom(0x01);return;case KEY_BK:lcd_wcom(0x01);return;default:break;/lcd_wcom(0x01);/清屏if(sition=1)str0=hour/10|+'0'str1=hour%10+'0'lcd_wcom(0x80+0x44);if(tiao<10)lcd_wdat(str0);lcddelay(1);lc

24、d_wdat(str1);lcddelay(1);elsecls(2);lcd_wcom(0x80+0x44);else if(2=sition)str0=min/10+'0'str1=min%10+'0'lcd_wcom(0x80+0x47);if(tiao<10)lcd_wdat(str0);lcddelay(1);lcd_wdat(str1);lcddelay(1);elsecls(2);lcd_wcom(0x80+0x47);elsestr0=sec/10+'0'str1=sec%10+'0'lcd_wcom(0x8

25、0+0x4a);if(tiao<10)lcd_wdat(str0);lcddelay(1);lcd_wdat(str1);lcddelay(1);elsecls(2);lcd_wcom(0x80+0x4a);/-/ 設(shè)置日期/-void setdate()uchar i,j,yearh,yearl,month,date,week;uchar str="00"uchar ch="set date:"sition=5;lcd_wcom(0x01);/清屏lcd_wcom(0x80+0x01);/顯示地址設(shè)為80H(即00H,)上排第一位for(i=0;

26、i<9;i+)lcd_wdat(chi);/將"set date:"顯示在lcd1602上lcddelay(1);lcd_wcom(0x80+0x41);/重新設(shè)定顯示地址為0xc4,即下排第5位for(j=0;j<14;j+)/將tab_date中的數(shù)據(jù)依次寫入1602顯示 lcd_wdat(tab_datej);lcddelay(1);yearh=(tab_date0-'0')*10+(tab_date1-'0');yearl=tab_13026;month=tab_13024;date=tab_13023;week=tab_

27、13025;while(1)key=Getkey();switch(key)/case KEY_MU:djishi();return;case KEY_UP:switch(sition)case 1:yearh+;if(yearh>=100) yearh=0;break;case 2:yearl+;if(yearl>=100) yearl=0;break;case 3:month+;if(month>=13) month=0;break;case 4: date+; if(yearh*100+yearl)%4=0&&(yearh*100+yearl)%100!

28、=0)|(yearh*100+yearl)%400=0) /如果是閏年if(month=2&&date>29)date=1;elseif(month=2&&date>28)date=1;if(month=4|month=6|month=9|month=11)if(date>30)date=1;elseif(date>31)date=1; break;case 5:week+;if(week=8)week=1;break;default:break;break;case KEY_DN:switch(sition)case 1:yearh-;

29、if(yearh=255) yearh=99;break;case 2:yearl-;if(yearl=255) yearl=99;break;case 3:month-;if(month=0) month=12;break;case 4: date-; if(month=1|month=3|month=5|month=7|month=8|month=10|month=12) /有31天的月份if(date=0)date=31;else if(month!=2)if(date=0)date=30;else if(yearh*100+yearl)%4=0&&(yearh*100+

30、yearl)%100!=0)|(yearh*100+yearl)%400=0)/閏年中的2月if(date=0)date=29;else if(date=0)date=28; break;case 5:week-;if(week=0) week=7;break;default:break;break;case KEY_L:if(sition!=5)lcd_wdat(str0);lcddelay(1);lcd_wdat(str1);lcddelay(1);elselcd_wdat(ch0);lcddelay(1);lcd_wdat(ch1);lcddelay(1);lcd_wdat(ch2);s

31、ition-;if(sition=0) sition=5;break;case KEY_R:if(sition!=5)lcd_wdat(str0);lcddelay(1);lcd_wdat(str1);lcddelay(1);elselcd_wdat(ch0);lcddelay(1);lcd_wdat(ch1);lcddelay(1);lcd_wdat(ch2);sition+;if(sition=6) sition=1;break;case KEY_OK:tab_date0=yearh/10+'0'tab_date1=yearh%10+'0'tab1_1302

32、6=yearl;tab1_13024=month;tab1_13023=date;tab1_13025=week;ds1302();tab1_13020=tab_13020;tab1_13021=tab_13021;tab1_13022=tab_13022;ds1302_init();lcd_wcom(0x01);/清屏return;case KEY_BK: lcd_wcom(0x01);return;default:break;/lcd_wcom(0x80+0x4a);if(sition=1)lcd_wcom(0x80+0x41);str0=yearh/10|+'0'str1

33、=yearh%10+'0'if(tiao<10)lcd_wdat(str0);lcddelay(1);lcd_wdat(str1);lcddelay(1);elsecls(2);lcd_wcom(0x80+0x41);else if(2=sition)lcd_wcom(0x80+0x43);str0=yearl/10+'0'str1=yearl%10+'0'if(tiao<10)lcd_wdat(str0);lcddelay(1);lcd_wdat(str1);lcddelay(1);elsecls(2);lcd_wcom(0x80+

34、0x43);else if(3=sition)lcd_wcom(0x80+0x46);str0=month/10+'0'str1=month%10+'0'if(tiao<10)lcd_wdat(str0);lcddelay(1);lcd_wdat(str1);lcddelay(1);elsecls(2);lcd_wcom(0x80+0x46);else if(4=sition)lcd_wcom(0x80+0x49);str0=date/10+'0'str1=date%10+'0'if(tiao<10)lcd_wdat(

35、str0);lcddelay(1);lcd_wdat(str1);lcddelay(1);elsecls(2);lcd_wcom(0x80+0x49);elsegetweek(week,ch);lcd_wcom(0x80+0x4c);if(tiao<10)lcd_wdat(ch0);lcddelay(1);lcd_wdat(ch1);lcddelay(1);lcd_wdat(ch2);elsecls(3);lcd_wcom(0x80+0x4c);/-/ 設(shè)置時間/-void settime()uchar i,j;/uchar sition; /閃爍位置uchar ch="set

36、 time:"uchar str="00"/TR0=1;/lcd不執(zhí)行中斷中的在變時間sition=3; /3調(diào)秒,2調(diào)分,1調(diào)時lcd_wcom(0x01);/清屏lcd_wcom(0x80+0x44);/重新設(shè)定顯示地址為0xc4,即下排第5位for(j=0;j<8;j+)/將tab_time中的數(shù)據(jù)依次寫入1602顯示 lcd_wdat(tab_timej);lcddelay(1);lcd_wcom(0x80+0x01);/顯示地址設(shè)為80H(即00H,)上排第一位for(i=0;i<9;i+)lcd_wdat(chi);/將"set

37、time:"顯示在lcd1602上lcddelay(1);hour=tab_13022;min=tab_13021;sec=tab_13020;/獲取當(dāng)前時間,在此基礎(chǔ)上進(jìn)行調(diào)時while(1)/steval();key=Getkey();switch(key)case KEY_MU:setdate();return;case KEY_UP:switch(sition)case 1:hour+;if(hour>=24) hour=0;break;case 2:min+;if(min>=60) min=0;break;case 3:sec+;if(sec>=60) s

38、ec=0;break;default:break;break;case KEY_DN:switch(sition)case 1:hour-;if(hour=255) hour=23;break;case 2:min-;if(min=255) min=59;break;case 3:sec-;if(sec=255) sec=59;break;default:break;break;case KEY_L:lcd_wdat(str0);lcddelay(1);lcd_wdat(str1);lcddelay(1);sition-;if(sition=0) sition=3;break;case KEY

39、_R:lcd_wdat(str0);lcddelay(1);lcd_wdat(str1);lcddelay(1);sition+;if(sition=4) sition=1;break;case KEY_OK:tab1_13020=sec;tab1_13021=min;tab1_13022=hour;tab1_13023=tab_13023;tab1_13024=tab_13024;tab1_13025=tab_13025;tab1_13026=tab_13026;ds1302_init();lcd_wcom(0x01);return;case KEY_BK:lcd_wcom(0x01);re

40、turn;default:break;/lcd_wcom(0x01);/清屏if(sition=1)str0=hour/10|+'0'str1=hour%10+'0'lcd_wcom(0x80+0x44);if(tiao<10)lcd_wdat(str0);lcddelay(1);lcd_wdat(str1);lcddelay(1);elsecls(2);lcd_wcom(0x80+0x44);else if(2=sition)str0=min/10+'0'str1=min%10+'0'lcd_wcom(0x80+0x47)

41、;if(tiao<10)lcd_wdat(str0);lcddelay(1);lcd_wdat(str1);lcddelay(1);elsecls(2);lcd_wcom(0x80+0x47);elsestr0=sec/10+'0'str1=sec%10+'0'lcd_wcom(0x80+0x4a);if(tiao<10)lcd_wdat(str0);lcddelay(1);lcd_wdat(str1);lcddelay(1);elsecls(2);lcd_wcom(0x80+0x4a); void miaobiao()uchar j;uchar i;sec=min=0;lcd_init();lcd_wcom(0x01);/清屏lcd_wcom(0x80+0x44);/重新設(shè)定顯示地址為0xc4,即下排

溫馨提示

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

評論

0/150

提交評論