基于AT89S51單片機的多功能電子萬年歷的設計_第1頁
基于AT89S51單片機的多功能電子萬年歷的設計_第2頁
基于AT89S51單片機的多功能電子萬年歷的設計_第3頁
基于AT89S51單片機的多功能電子萬年歷的設計_第4頁
基于AT89S51單片機的多功能電子萬年歷的設計_第5頁
免費預覽已結束,剩余25頁可下載查看

下載本文檔

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

文檔簡介

1、單片機應用系統(tǒng)設計課題:姓名:班級:學號:指導老師:日期:電子萬年歷的設計基于 AT89S51單片機的多功能一、緒論:現(xiàn)在是一個知識爆炸的新時代,新產(chǎn)品、新技術層出不窮,電子技術的發(fā)展更是日新 月異。可以毫不夸張的說,電子技術的應用無處不在,電子技術正在不斷地改變我們的生活, 改變著我們的世界。近些年,隨著科技的發(fā)展和社會的進步,人們對電子萬年歷的要求也越來越高,傳統(tǒng)的電子萬年歷已不能滿足人們的需求。人們對多功能電子萬年歷的功能及工作順序都非常熟悉,但是卻很少知道它的內部結構以及工作原理。由于單片機具有靈活性強、 成本低、功耗低、保密性好等特點,還有,單片機是微型計算機的一個重要分枝,單片機是

2、 把中央處理器、隨機存儲器、只讀存儲器、定時器/計數(shù)器、并行接口接口、串行接口、A/D轉換器等主要計算機部件,集中在一塊集成電路芯片上。雖然只是一個芯片,但從功能上它就相當于一臺完整的微機。隨著科學技術的迅猛發(fā)展,單片計集成度高、體積小、運算速度快、功耗低、運行可靠、價格低廉等諸多優(yōu)點,越來越顯現(xiàn)出來。在日常生活方面,我們使 用彩電、錄放機、 VCD照相機、手機等等可以說舉不勝舉。所以多功能電子萬年歷一般都 以單片機為核心,外加一些外圍設備來實現(xiàn)。 由單片機作為多功能電子萬年歷的核心控制器, 通過按鍵可以進行定時、校時功能。輸出設備顯示器可以用液晶顯示技術和數(shù)碼管顯示技術。意義:電子萬年歷作為

3、電子類小設計不僅是市場上的寵兒,也是是單片機實驗中一個很常用的題目。因為它的有很好的開放性和可發(fā)揮性,因此對作者的要求比較高,不僅考察了對單片機的掌握能力更加強調了對 神農(nóng)百草膏單片機擴展的應用。而且在操作的設計上要力 求簡潔,功能上盡量齊全,顯示界面也要出色。所以,電子萬年歷無論作為比賽題目還是練 習題目都是很有價值。二、系統(tǒng)總體方案設計:1、共具備兩個功能:(1)顯示年月日及分秒信息(2)具有可調整日期和時間功能。2、硬件電路的總體框圖:圖1總體硬件框圖3、所用芯片U1AXTAL1YTA I oP0.0/AD0 P 0.1/AD1 P0.2/AD2P0.3/AD3P0.4/AD4X IAL

4、2P0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/A8P 2.1/A9P SENP2.2/A10P2.3/A11ALEP2.4/A12EAP2.5/A13P2.6/A14P2.7/A15P 1.0/T2P 3.0/RXDP 1.1/T2EXP 3.1/TXDP 1.2P 3.2/INT0P 3.3/INT1P 1.3P 1.4P3.4/T0P 1.5P3.5/T1P 1.6P 3.6/WRP 1.7P 3.7/RDAT89C52191894681229_3031_11_12233J517三、硬件系統(tǒng)設計:1、硬件原理圖:DNGLM016LX222pFX1+5VAn*I 01U2

5、2+5VX1VCC1VCC2RSTSCLKX2I/O536123U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/A8P2.1/A9P2.2/A10PSENP2.3/A11ALEP2.4/A12EAP2.5/A13P2.6/A14P2.7/A15P1.0P3.0/RXDP1.1P3.1/TXDP1.2P3.2/rNT0P1.3P3.3/rNTTP1.4P3.4/T0P1.5P3.5/T1P1.6P3.6/WRP1.7P3.7/RD1892930 k21 22- -23n25

6、 F27-2810073635-343239V5+fl o 上工 fl oR -DNGU3VCCDQGND DS18B20P0 口作為6位液晶顯示電路的驅動接口,這是由于P0 口,它的驅動能力強,故只需外接上拉電阻便可以把LED數(shù)碼,在單片機進行動態(tài)掃描的時候不會 8位LED數(shù)碼管的 ,由一個8位的I/O 口圖3硬件原理2、硬件原理:在硬件電路中采用 輸出驅動電路工作處于開漏狀態(tài) 管點亮。因為共陰的LED數(shù)碼管它的驅動電流是分開的 影響彼此的電流,故該電路中的8位LED數(shù)碼管均用共陽陰極的數(shù)碼管。 位選線分別由相應的 P2. 0P2. 5控制,而將其相應的段選線并聯(lián)在一起 控制,即 P0 口。

7、P3 口與八個校時按鍵相連,以成功實現(xiàn)萬年歷校時的功能。四、系統(tǒng)軟件設計:1、程序流程框圖:2、年調整程序流程圖,圖4 程序流程框圖月、日調整程序流程圖類似。圖5年調整程序流程圖3、源程序代碼:#include 溫度傳送數(shù)據(jù) IO 口0 /#include Command/#include LCD1602.hvoid show_time();/液晶#define LCD_DA TA/#include DS1302.h顯示程序1/ Data#define uint unsigned int/*1602 液 晶 顯#define#define uchar unsigned char示部分子程序LC

8、D_CLEAR_SCREENchar*/0x01 / 清屏hide_sec,hide_min,hide_hour#defineLCD_HOMING,hide_day,hide_week,hide_m0x02 / 光onth,hide_year; /秒 ,分 ,時/Port標返回原點到日 ,月,年位閃的計數(shù)Definitions*void LCD_Write(bit style,char*unsigned char input)done,count,temp,flag,Up_Ke*y_flag,down_flag;sbit LcdRs= P 2人5;LcdEn=0;uchar temp_valu

9、e; /sbit LcdRw= P 2人6;LcdRs=style;溫度值sbit LcdEn= P 2人7;LcdRw=0;ucharsfr DBPort = 0x80;_nop_();TempBuffer5,week_value/P0=0x80,P1=0x90,P2DBPort=input;2;=0xA0,P3=0xB0. 數(shù)據(jù)端口_nop_();/注意順序內部等待函數(shù)LcdEn=1;*_nop_();/注意順序sbit DS1302_CLK = PIT;*LcdEn=0;/實時時鐘時鐘線引腳*_nop_();sbit DS1302_IO= P 1人6;*LCD_Wait();/實時時鐘數(shù)

10、據(jù)線引腳unsignedcharsbit DS1302_RST = P15;LCD_Wait(void)/實時時鐘復位線引腳/ 設 置 顯 示 模 式sbit p ortOI = P 3人0;LcdRs=0;*sbit p ort02 = P 3人1;LcdRw=1;*sbit p ort03 = P 3人2;_nop_();/ 延 時一個 時*sbit p ort04 = P 3人3;鐘周期#define LCD_SHOWsbit ACC0 = ACCS;LcdEn=1;_nop_();0x04/顯示開sbit ACC7 = ACC7;#define LCD_HIDEsbit Set_Key

11、 =P 2人0;0x00/顯示關/模式切換鍵LcdEn=0;sbit Up_Key =P 2;return DBPort;/加法按鈕#define LCD_CURSORsbit Down_Key = P 2人2;/向 LCD 寫入命令或數(shù)據(jù)0x02/顯示光/減法按鈕*標sbit out_Key_Key=P 2人3;*#define LCD_NO_CURSOR/立刻跳出調整模式按鈕*0x00/無光標sbit DQ = P19/#define LCD_COMMAND幵*卄*卄*卄*卄*卄*卄*#defineLCD_NO_FLASH0x00/光標不#define LCD_FLASH0x01/ 光標閃

12、閃動 void void LCD_Initial()LcdEn=0;LCD_Write(LCD_COMMAND,0x38);/8 位數(shù)據(jù)端口 ,2 行顯示 ,5*7 點陣while(*str!=0)LCD_Write(LCD_DATA,*str);str+;LCD_Set_KeyDisplay(unsig ned char DisplayMode) LCD_Write(LCD_CO MMAND, 0x08|DisplayMode);LCD_Write(LCD_CO MMAND,0x38);LCD_Set_KeyDisplay( LCD_SHOW|LCD_NO_CU RSOR); / 開啟顯示

13、, 無 光標/ 設 置 輸 入 模幵*卄*卄*卄*卄*卄*卄*#defineLCD_AC_UP_KEYLCD_Write(LCD_CO MMAND,LCD_CLEAR_SC REEN); /清屏LCD_Set_KeyInput(LC D_AC_UP_KEY|LCD_NO_ MOVE); /AC 遞增 , 畫面不動/*DS1302部分子*/typedef_SYSTEMTIME#define0x02LCD_AC_DOWN0x00/default/ 液 晶 字 符 輸 入 的 位 置*時鐘序structunsigned char Second; unsigned char Minute; unsig

14、ned char Hour; unsigned char Week; unsigned char Day; unsigned char Month;#define LCD_MOVEvoid GotoXY(unsigned charunsigned charYear;0x01 / 畫x, unsigned char y)unsignedchar面可平移DateString11;#define LCD_NO_MOVEif(y=0)unsignedchar0x00TimeString9;/defaultLCD_Write(LCD_COSYSTEMTIME;/定義的MMAND,0x80|x);時間類型

15、voidif(y=1)SYSTEMTIMELCD_Set_KeyInput(unsigneCurrentTime;d char InputMode)LCD_Write(LCD_COMMAND,0x80|(x-0x40);LCD_Write(LCD_CO#define AM(X)XMMAND, 0x04|InputMode);#define PM(X)(X+12)/將字符輸出到液晶顯示/ 轉成 24 小時制void#define DS1302_SECOND/ 初 始 化Print(unsighttp:/www.shenn0x80/時鐘LCD*ned char *str)芯片的寄存器位置,存放時/

16、 相charcharchar#define DS1302_MINUTE0x82#define DS1302_HOUR0x84#define DS1302_WEEK0x8A#define DS1302_DAY0x86#define DS1302_MONTH 0x88#define DS1302_YEAR0x8C voidDS1302InputByte(unsigned char d) / 實時時鐘寫入一 字節(jié) (內部函數(shù) ) unsigned char i;ACC = d; for(i=8; i0; i-) DS1302_IOACC0; 當于匯編中的 RRCDS1302_CLK = 1;DS13

17、02_CLK = 0;ACC = ACC 1;unsigned charDS1302OutputByte(void) /實時時鐘讀取一字節(jié) (內部函數(shù) )unsigned char i;for(i=8; i0; i-)ACC = ACC 1; /相當于匯編 中的 RRCACC7DS1302_IO;DS1302_CLK = 1;DS1302_CLK = 0; return(ACC);void Write1302(unsigned char ucAddr, unsigned char ucDa) /ucAddr: DS1302 地址 , ucData: 要寫的數(shù)據(jù) DS1302_RST = 0;D

18、S1302_CLK = 0;DS1302_RST = 1;DS1302InputByte(ucAddr);/ 地址,命令DS1302InputByte(ucDa); / 寫 1Byte 數(shù)據(jù) DS1302_CLK = 1; DS1302_RST = 0;unsignedRead1302(unsigned ucAddr) /讀取 DS1302 某 地址的數(shù)據(jù)unsigned char ucData; DS1302_RST = 0; DS1302_CLK = 0; DS1302_RST = 1;DS1302InputByte(ucAddr|0x01); / 地址,命令 ucDataDS1302Ou

19、tputByte();/ 讀 1Byte 數(shù)據(jù) DS1302_CLK = 1; DS1302_RST = 0; return(ucData);void DS1302_GetTime(SYSTEM TIME *Time) / 獲取時鐘 芯片的時鐘數(shù)據(jù)到自定義 的結構型數(shù)組 unsignedReadValue;ReadValue Read1302(DS1302_SECON D);Time-Second (ReadValue&0x70)4)*10 + (ReadValue&0x0F);ReadValue Read1302(DS1302_MINUT E);Time-Minute (ReadValue&

20、0x70)4)*10 + (ReadValue&0x0F);ReadValueRead1302(DS1302_HOUR);Time-Hour (ReadValue&0x70)4)*10+ (ReadValue&0x0F);ReadValueRead1302(DS1302_DAY);Time-Day (ReadValue&0x70)4)*10 + (ReadValue&0x0F);ReadValueRead1302(DS1302_WEEK);Time-Week (ReadValue&0x70)4)*10+ (ReadValue&0x0F);ReadValue Read1302(DS1302_MO

21、NTH );Time-Month (ReadValue&0x70)4)*10 + (ReadValue&0x0F);ReadValueRead1302(DS1302_YEAR);Time-Year (ReadValue&0x70)4)*10 + (ReadValue&0x0F); Time-DateString5 = Time-Month/10 + 0;Time-DateString6= Time-Month%10 + 0;elseTime-DateString10 = 0; / 字符串末尾加 0 ,判 斷結束字符 voidDateToStr(SYSTEMTIME *Time)/將時間年 ,月

22、 ,日,星期數(shù)據(jù)轉換成液晶顯 示字符串,放到 數(shù)組里 DateString if(hide_year2) /這里的 if,else 語句都是判 斷位閃爍 ,2 就不顯示 ,輸出字符串為 2007/07/22Time-DateString0= 2;Time-DateString1= 0;Time-DateString5 = ;Time-DateString6 = ;Time-DateString7if(hide_dayDateString8 = Time-Day/10 + 0;Time-DateString9 = Time-Day%10 + 0;else void TimeToStr(SYSTE

23、MTIME *Time) /將時 ,分 ,秒數(shù)據(jù) 轉換成液晶顯示字符放到 數(shù)組 TimeString; if(hide_hourTimeString0 = Time-Hour/10 + 0;Time-TimeString1= Time-Hour%10 + 0;elseTime-TimeString0 = ;Time-DateString2 = Time-Year/10 + 0;Time-DateString3 = Time-Year%10 + 0;elseTime-DateString0 = ;Time-DateString1 = ;Time-DateString2 = ;Time-DateS

24、tring3 = ;Time-DateString4Time-DateString8 = ;Time-DateString9 if(hide_weekWeek%10 + 0; / 星 期的數(shù)據(jù)另外放到 week_value 數(shù)組 里,跟 年, 月 ,日的分開存放 ,因為等一 下要在最后顯示elseweek_value0 Time-TimeString1 = ;Time-TimeString2if(hide_minTimeString3 = Time-Minute/10 + 0;Time-TimeString4 = Time-Minute%10 + 0;elseTime-TimeString3

25、= ;Time-TimeString4 = ;Time-TimeString5if(hide_month2)week_value1 = 0;if(hide_secTimeString6 = Time-Second/10 + 0;Time-TimeString7 = Time-Second%10 + 0;else/*ds18b20序*/子程unsignedReadOneChar(void)charTime-TimeString6 = ;Time-TimeString7 = ;Time-DateString80;void/時鐘芯片初始化unsigned char Second=Read1302(D

26、S1302_ SECOND);if(Second&0x80) /判斷 時鐘芯 片是否 關閉Initial_DS1302(void)Write1302(0x8e,0x00);/寫入允許Write1302(0x8c,0x07);/ 以下寫入初始化時間 日期:07/07/25. 星期 : 3. 時間 :23:59:55Write1302(0x88,0x07);Write1302(0x86,0x25);Write1302(0x8a,0x07);Write1302(0x84,0x23);Write1302(0x82,0x59);Write1302(0x80,0x55);Write1302(0x8e,0x

27、80); /禁止寫入/*ds18b20 子函數(shù)(晶振 12MHz )*/延遲uchar i=0; uchar dat = 0; for (i=8;i0;i-)DQ = 0; /給脈沖信號void delay_18B20(unsignedint i)while(i-);/*ds18b20函*/沖信號初始化數(shù)dat=1;DQ = 1; /給脈if(DQ) dat|=0x80; delay_18B20(4);return(dat);void Init_DS18B20(void)unsigned char x=0;DQ =/DQ 復位 delay_18B20(8);做延時DQ = 0;單片機將 DQ

28、拉低delay_18B20(80);確延時 大于 480usDQ = 1;拉高總線1;/稍/精/delay_18B20(14); x=DQ;/ 稍做延時后 如果 x=0 初始化成功 x=1 則初始化 失敗delay_18B20(20);/*ds18b20 個字節(jié) */讀一/*ds18b20一個字*/voiddat)WriteOneChar(ucharunsigned char i=0;for (i=8; i0; i-)DQ = 0;DQ = dat&0x01; delay_18B20(5);DQ = 1;dat=1;讀取 ds18b20 當 前 溫 度 */*void ReadTemp(voi

29、d)unsigned char a=0; unsigned char b=0; unsigned char t=0;溫度符號Init_DS18B20();WriteOneChar(0xCC);/ 跳過讀序號列號的 操作WriteOneChar(0x44);/ 啟動溫度轉換TempBuffer3=C;TempBuffer4=0;void Delay1ms(unsigned count)intwhile(port01=1);/Up_Keykey()/ 升序 按unsigned int i,j; for(i=0;icount;i+) for(j=0;j0;delay-) for(i=0;i62;i+

30、) /1ms 延時 .;=1)mdelay(8);switch(count)case 1:delay_18B20(100);a=ReadOneChar();/讀取溫度值低位 b=ReadOneChar();/讀取溫度值高位 temp_value=b4;void temp_to_str() / 溫度 數(shù)據(jù)轉換成液晶字符顯示TempBuffer0=temp_value/10+0; /十位TempBuffer1=temp_value%10+0; /個位TempBuffer2=0xdf; /temp=Read1302(DS1302_SECOND); / 讀取秒數(shù)void/ 跳出調整模式 ,返回默認顯

31、示outkey()temp=temp+1; / 秒數(shù)加 1 uchar Second;if(out=0|port01=1) mdelay(8);count=0;hide_sec=0,hide_min=0 ,hide_hour=0,hide_day=0,hi de_week=0,hide_month=0,hi de_year=0;Second=Read1302(DS1 302_SECOND);Write1302(0x8e,0x00); /寫入允許Write1302(0x80,Second &0x7f);Write1302(0x8E,0x80);/禁止寫入done=0;while(out=0);U

32、p_Key_flag=1; 調整后更新標志if(temp&0x7f)0x59)超過 59 秒,清零temp=0;case 2:/數(shù)據(jù)break;/temp=Read1302(DS1302_MINUTE); / 讀取分數(shù)if(temp0x7)temp=temp+1; / 分數(shù)加temp=1;temp=temp+1;/ 年數(shù)加 1Up_Key_flag=1;break;Up_Key_flag=1;if(temp0x59) 超過 59 分,清零/case 5:if(temp0x85)case 3:temp=0;break;temp=Read1302(DS1302_HOUR); /讀取小時數(shù)temp=

33、temp+1;1/ 小時數(shù)加Up_Key_flag=1;if(temp0x23)小時 ,清零/超過23case 4:temp=0;break;temp=Read1302(DS1302_WEEK); / 讀取星期數(shù)temp=temp+1; / 星期數(shù)加1Up_Key_flag=1;temp=Read1302(DS1302_DAY); /讀取日數(shù)temp=temp+1;Up_Key_flag=1;if(temp0x31)case 6:/日數(shù)加temp=1;break;default:break;temp=0;break;while(Up_Key=0);while(port02=1);temp=Re

34、ad1302(DS1302_MONTH); / 讀取月數(shù)/void Down_Keykey()/ 降序 按鍵temp=temp+1;Up_Key_flag=1;if(temp0x12)case 7:/月數(shù)加temp=1;break;Down=1;if(Down=0|port03=1)mdelay(8);switch(count)case 1:temp=Read1302(DS1302_YEAR); / 讀取年數(shù)temp=Read1302(DS1302_SECOND); / 讀取秒數(shù)temp=temp-1;/秒數(shù)減Down_Key_flag=1;case 6:break;while(port03=

35、1);if(temp=-1)temp=Read1302(DS1302_MONTH); / 讀取月數(shù)Down_Key_flag=1;/數(shù)據(jù)調整后更新標志temp=0x23;temp=temp-1; /月數(shù)減 1break;if(temp=0x7f)0 秒 , 返回 59 秒/小于case 4:temp=0x59;temp=Read1302(DS1302_WEEK); / 讀取星期數(shù)case 2:break;temp=temp-1; / 星期數(shù)減1Down_Key_flag=1;if(temp=0)temp=12;break;case 7:temp=Read1302(DS1302_MINUTE);

36、 /讀取分數(shù)Down_Key_flag=1;temp=Read1302(DS1302_YEAR); / 讀取年數(shù)if(temp=0)temp=temp-1; / 分數(shù)減temp=0x7;temp=temp-1; /年數(shù)減 1Down_Key_flag=1;break;Down_Key_flag=1;case 5:if(temp=-1)if(temp=-1)temp=0x59;/ 小于 0 秒 ,返回 59 秒temp=Read1302(DS1302_DAY); /讀取日數(shù)temp=0x85;break;temp=temp-1; /日數(shù)減 1break;case 3:Down_Key_flag=

37、1;default:break;temp=Read1302(DS1302_HOUR); /讀取小時數(shù)if(temp=0)temp=temp-1; / 小時數(shù)減1temp=31;while(Down=0);/掃描模式切換按鍵 switch(count) case 1:do晶顯示數(shù)據(jù)void Set_Keykey()/ 模式選 擇按鍵while(count=2);break;/count=1, 調整秒case 2:doSet_Key=1;if(Set_Key=0|port04=1)outkey();描跳出按鈕/count=2, 調整分hide_sec=0;mdelay(8);count=count

38、+1;/Set_Keykey 按 一次,count就加1done=1;/進入調整模式Up_Keykey();/掃描加按鈕Down_Keykey();/掃描減按鈕outkey();Up_Keykey();Down_Keykey();while(Set_Key=0);if(Up_Key_flag=1|down_fl ag=1) /數(shù)據(jù)更新,重新 寫入新的數(shù)據(jù)if(temp0x60)temp=0;while(port04=1);Write1302(0x8e,0x00);/ 寫入允許if(Up_Key_flag=1|down_flag=1)void行keydo ne()/按鍵功能執(zhí)Write1302(

39、0x80,temp|0x80);/寫入新的秒數(shù)Write1302(0x8e,0x00);入允許/寫uchar Second;if(flag=0)關閉時鐘 ,停止計時/Write1302(0x8e,0x80);止寫入/ 禁Write1302(0x82,temp); 入新的分數(shù)/ 寫Up_Key_flag=0; Write1302(0x8e,0x00); 寫入允許/Down_Key_flag=0;Write1302(0x8e,0x80);止寫入/ 禁temp=Read1302(0x80);Write1302(0x80,temp|0x80);hide_sec+; 閃計數(shù)/位Up_Key_flag=0

40、;Down_Key_flag=0;Write1302(0x8e,0x80);/禁止寫入if(hide_sec3)hide_min+;flag=1;Set_Keykey();show_time();/液hide_min=0;hide_sec=0;if(hide_min3)show_time();while(count=4);break;case 4:do/count=5, 調整日while(count=3);break;case 3:do/count=4, 調整星期hide_week=0;outkey();/count=3, 調整小時hide_hour=0;Up_Keykey();outkey(

41、);hide_min=0;Down_Keykey();outkey();Up_Keykey();Down_Keykey();if(Up_Key_flag=1|down_flag=1)Up_Keykey();Down_Keykey();if(Up_Key_flag=1|down_flag=1)Write1302(0x8e,0x00);入允許/ 寫Write1302(0x8e,0x00);入允許/ 寫Write1302(0x8a,temp);入新的星期數(shù)/ 寫Write1302(0x84,temp);入新的小時數(shù)/ 寫Write1302(0x8e,0x80);止寫入/ 禁Write1302(0x8

42、e,0x80);止寫入/ 禁Up_Key_flag=0;Down_Key_flag=0;Up_Key_flag=0;Down_Key_flag=0;hide_week+;hide_hour+;if(hide_hour3)show_time();if(hide_week3)hide_week=0;show_time();while(count=5);break;if(Up_Key_flag=1|down_flag=1)Write1302(0x8e,0x00);入允許Write1302(0x86,temp); 入新的日數(shù)Write1302(0x8e,0x80);止寫入Up_Key_flag=0;D

43、own_Key_flag=0;hide_day+;if(hide_day3)hide_day=0;show_time();/ 寫/ 寫/ 禁while(count=6);break;/count=6, 調整月hide_hour=0;case 6:docase 5:dooutkey();hide_month=0;hide_day=0;Up_Keykey();Write1302(0x80,Second&0x7f);outkey();Up_Keykey();Down_Keykey();Write1302(0x8E,0x80);/禁止寫入/ 寫Down_Keykey();if(Up_Key_flag=1|down_flag=1)if(Up_Key_flag=1|down_flag=1)Write1302(0x8e,0x00);入允許 done=0;break; /count=7, 開啟中斷 ,標志位置 0 并退 出default:break;Write1302(0x8e,0x00);入允許/ 寫Write1302(0x8c,temp);

溫馨提示

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

最新文檔

評論

0/150

提交評論