![單片機(jī)課程設(shè)計(jì)多功能電子時(shí)鐘_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/7/245921aa-5fed-42a1-90e4-703ce96bddd9/245921aa-5fed-42a1-90e4-703ce96bddd91.gif)
![單片機(jī)課程設(shè)計(jì)多功能電子時(shí)鐘_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/7/245921aa-5fed-42a1-90e4-703ce96bddd9/245921aa-5fed-42a1-90e4-703ce96bddd92.gif)
![單片機(jī)課程設(shè)計(jì)多功能電子時(shí)鐘_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/7/245921aa-5fed-42a1-90e4-703ce96bddd9/245921aa-5fed-42a1-90e4-703ce96bddd93.gif)
![單片機(jī)課程設(shè)計(jì)多功能電子時(shí)鐘_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/7/245921aa-5fed-42a1-90e4-703ce96bddd9/245921aa-5fed-42a1-90e4-703ce96bddd94.gif)
![單片機(jī)課程設(shè)計(jì)多功能電子時(shí)鐘_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/7/245921aa-5fed-42a1-90e4-703ce96bddd9/245921aa-5fed-42a1-90e4-703ce96bddd95.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、J I A N G S U U N I V E R S I T Y單片機(jī)課程設(shè)計(jì)多功能電子時(shí)鐘學(xué)院名稱: 專業(yè)班級: 學(xué)生姓名: 學(xué)生學(xué)號: 一、設(shè)計(jì)目的(1)能在LED顯示器上實(shí)現(xiàn)正常的時(shí)分秒計(jì)時(shí)(2)能通過鍵盤輸入當(dāng)前時(shí)間,并從該時(shí)間開始計(jì)時(shí)(3)有校時(shí)、校分功能(4)有鬧時(shí)功能,鬧時(shí)時(shí)間可以設(shè)定,通過指示燈表示二、設(shè)計(jì)內(nèi)容該課程設(shè)計(jì)是利用MCS-51單片機(jī)內(nèi)部的定時(shí)計(jì)數(shù)器、中斷系統(tǒng)、以及行列鍵盤和LED顯示器等部件,設(shè)計(jì)一個(gè)單片機(jī)電子時(shí)鐘。設(shè)計(jì)的電子時(shí)鐘通過數(shù)碼管顯示,并能通過按鍵實(shí)現(xiàn)設(shè)置時(shí)間和暫停、啟動控制等。三、MCS-51單片機(jī)系統(tǒng)簡介單片機(jī)應(yīng)用系統(tǒng)由硬件系統(tǒng)和軟件系統(tǒng)兩部分組成。
2、硬件系統(tǒng)是指單片機(jī)以及擴(kuò)展的存儲器、IO接口、外圍擴(kuò)展的功能芯片以及接口電路。軟件系統(tǒng)包括監(jiān)控程序和各種應(yīng)用程序。在單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)是整個(gè)系統(tǒng)的核心,對整個(gè)系統(tǒng)的信息輸入、處理、信息輸出進(jìn)行控制。與單片機(jī)配套的有相應(yīng)的復(fù)位電路、時(shí)鐘電路以及擴(kuò)展的存儲器和IO接口,使單片機(jī)應(yīng)用系統(tǒng)能夠運(yùn)行。在一個(gè)單片機(jī)應(yīng)用系統(tǒng)中,往往都會輸入信息和顯示信息,這就涉及鍵盤和顯示器。在單片機(jī)應(yīng)用系統(tǒng)中,一般都根據(jù)系統(tǒng)的要求配置相應(yīng)的鍵盤和顯示器。配置鍵盤和顯示器一般都沒有統(tǒng)一的規(guī)定,有的系統(tǒng)功能復(fù)雜,需輸入的信息和顯示的信息量大,配置的鍵盤和顯示器功能相對強(qiáng)大,而有些系統(tǒng)輸入/輸出的信息少,這時(shí)可能用幾個(gè)按
3、鍵和幾個(gè)LED指示燈就可以進(jìn)行處理了。在單片機(jī)應(yīng)用系統(tǒng)在中配置的鍵盤可以是獨(dú)立鍵盤,也可能是矩陣鍵盤。顯示器可以是LED指示燈,也可以是LED數(shù)碼管,也可以是LCD顯示器,還可以使用CRT顯示器。單片機(jī)應(yīng)用系統(tǒng)中鍵盤一般用的比較多的是矩陣鍵盤,顯示器用的比較多的是LED數(shù)碼管還LCD顯示器。四、設(shè)計(jì)方案通過鍵盤輸入,設(shè)置當(dāng)前時(shí)間,并顯示在LCD顯示器上,鍵盤和LED顯示通過鍵盤專用芯片HD7279A進(jìn)行控制,7279A也是I2C總線接口的芯片,系統(tǒng)中采用并行口線模擬I2C實(shí)現(xiàn) C8051F020和HD7279A的通信。采用LCD液晶顯示器顯示。而LCD液晶顯示則耗能少,能夠顯示年、月、日、星期
4、等漢字,在顯示方面更加靈活,而且改變顯示時(shí)只要改變軟件設(shè)計(jì)就可以,不用改變硬件電路的設(shè)計(jì),易于電路的功能擴(kuò)展。電路的軟件設(shè)計(jì)也很簡單。另外,這種設(shè)計(jì)硬件更加簡潔。采用LCD液晶顯示方案的缺點(diǎn)是在顯示位數(shù)比較少時(shí),價(jià)格略顯昂貴。時(shí)間顯示格式為小時(shí)十位、小時(shí)個(gè)位-分十位、分個(gè)位-秒十位、秒個(gè)位。在處理過程中加上了按鍵判斷程序,能對按鍵處理,A是進(jìn)入時(shí)間設(shè)置,按B進(jìn)入日歷設(shè)置,按C進(jìn)入鬧鐘設(shè)置,設(shè)置完畢按D退出。五、程序整個(gè)工程中一共有四個(gè)文件 main.c LCD12864.c key7279.c Clock.c。首先是main.c,程序如下:#include
5、"c8051f020.h" #include <intrins.h> unsigned char flag=0; /設(shè)置標(biāo)記extern unsigned char h,m,s;/聲明時(shí),分,秒,原定義在Clock.c文件中unsigned char ch=0,cm=0,cs=0;/定義鬧鐘的 時(shí),分,秒unsigned int year=2013,mouth=12,day=31;/定義年,月,日int Count1s=1000; /定義倒數(shù)時(shí)間為1Sunsigned char newday=0;/新的一天
6、; void Delay1us(unsigned char us) while (us) _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); -us; void SYSCLK_Init (void) int i;
7、60; / delay counter OSCXCN = 0x67; / start external oscillator with
8、; / 18.432MHz crystal for (i=0; i < 256; i+) ;
9、; / Wait for osc. to start up while (!(OSCXCN & 0x80) ; / Wait for crystal osc. to settle OSCICN = 0x88;
10、 / select external oscillator as SYSCLK / source
11、 and enable missing clock / detector#define PRT0CF P0MDOUT#define PRT1CF
12、 P1MDOUT#define PRT2CF P2MDOUTvoid PORT_Init (void) XBR0 = 0x07; / Enable SMBus, SPI0, and UART0 XBR1 = 0x00;
13、; XBR2 = 0x44; / Enable crossbar and weak pull-ups EMI0CF = 0x27; EMI0TC = 0x21; P74OUT = 0xFF;
14、P0MDOUT = 0x15; P1MDOUT |= 0x3C; /P1.2-P1.5推挽輸出 P1 &= 0xc3; /P1.2-P1.5=0void SPI0_Init (void) SPI0CFG = 0x07;
15、160; / data sampled on 1st SCK rising edge
16、 / 8-bit data words SPI0CFG|=0xC0; /CKPOL =1; SPI0CN = 0x03; / Master mode; SPI enabled; flags
17、60; / cleared SPI0CKR = SYSCLK/2/8000000-1; / SPI clock <= 8MHz (limited by
18、 / EEPROM spec.)unsigned char Count1ms;void Timer0_Init (void)
19、60; CKCON|=0x8; TMOD|=0x1; /16Bit Count1ms=10; TR0 = 0; / STOP Timer0
20、60; TH0 = (-SYSCLK/1000) >> 8; / set Timer0 to overflow in 1ms TL0 = -SYSCLK/1000; TR0 = 1; / START Timer0 IE|= 0x2; void rili(unsigned char n); void Timer0_ISR (void) interrupt 1&
21、#160; /1ms TH0 = (-SYSCLK/1000) >> 8; TL0 = -SYSCLK/1000; if (Count1ms) Count1ms-; Count1s-; /1000倒數(shù),為0是代表剛好一秒 if(Count1s=0)
22、 flag=1; /1S到了,將標(biāo)記至1 Count1s=1000;
23、60; /復(fù)位1S計(jì)數(shù) if(flag=1) /判斷標(biāo)記 flag=0; &
24、#160; /復(fù)位標(biāo)記 s+; /1S到 ,s+,秒增加 if(s=60)
25、 /秒滿60 s=0; m+;
26、160; /分增加 if(m=60) /分滿60 m=0; h+;
27、160; /時(shí)增加 if(h=24) /時(shí)滿24 h=0;
28、; newday=1; /更新新一天標(biāo)記 rili(newday); /日歷函數(shù),由新一天標(biāo)記為參數(shù),判斷年月日 void Delay1ms(unsigned char T) Count1ms=T; while (Count1ms);void Delay1s(uns
29、igned char T) while (T) Delay1ms(200); Delay1ms(200); Delay1ms(200); Delay1ms(200); Delay1ms(200); T-; void clock (void);void main (void) WDTCN = 0xde; WDTCN = 0xad;
30、 /關(guān)看門狗 SYSCLK_Init (); /初始化時(shí)鐘 Timer0_Init(); /初始化定時(shí)器 PORT_Init (); /初始化IO口 SPI0_Init ();
31、160; /初始化SPI0 CPT1CN|=0x80; /使能比較器1 REF0CN = 0x03; /使能片內(nèi)參考電壓 DAC0CN |= 0x80; /使能DAC0 DAC0H=0; DAC0L=0; EA=1; /開中斷 clock(); &
32、#160; /進(jìn)入后,程序永遠(yuǎn)在此函數(shù)中循環(huán) void rili(unsigned char n) if(n=1) n=0; /day+; /1,3,5,7,8,10,12 每月31天while(1) if(mouth=1|mouth=3|mouth=5|mouth=7|mouth=8|mouth=10|mouth=12) if(day=31) day=1; if(mouth!=12) mouth+; else mouth=1;
33、year+; else day+; break; /4,6,9,11 每月30天 if(mouth=4|mouth=6|mouth=9|mouth=11) if(day=30) day=1; mouth+; else day+; break; if(mouth=2) if(year%4=0)&(year%100!=0)|(year%400=0) if(day=29) day=1; mouth+; else day+; else if(day=28) day=1;mouth+; elseday+; break; 下面是key7279.c 和 LCD12864.c 兩個(gè)文件,分
34、別為按鍵和顯示的控制函數(shù)。其中在LCD12864.c文件中加入了兩個(gè)反向顯示函數(shù)。key7279.c文件內(nèi)容#include "c8051f020.h" #include <intrins.h>sbit HD7279_DAT=P17;sbit HD7279_CLK=P16;#define NOSELECT7279 P5 |= 0x80 /SPICS4(P57)=1#define SELECT7279 P5 &= (0x80) /SPICS4(
35、P57)=0;#define Set7279DAT HD7279_DAT=1#define Clr7279DAT HD7279_DAT=0#define Set7279CLK HD7279_CLK=1#define Clr7279CLK HD7279_CLK=0 void Delay1ms(unsigned char T);void Delay1s(unsigned char T);void Delay1us(unsigned
36、char T);void Send7279Byte(unsigned char ch) char i; SELECT7279; /置CS低電平 Delay1us(50); /延時(shí)50 for (i=0;i<8;i+) if (ch&0x80) /輸出7位到HD7279A的DATA端 Set7279DAT;
37、160; else Clr7279DAT; Set7279CLK; /置CLK高電平 ch=ch<<1; /待發(fā)數(shù)據(jù)左移 Delay1us(8); /延時(shí)8 Clr7279CLK; /置CLK低電平 Delay1us(8); /延時(shí)50 Clr7279DAT;
38、 /發(fā)送完畢,DATA端置低,返回 unsigned char Receive7279Byte(void) unsigned char i,ch; ch=0; Set7279DAT; /DATA端置為高電平,輸入狀態(tài) Delay1us(50); /延時(shí)50 for (i=0;i<8;i+) Set7279CLK; /置CLK高電平 Delay1us(
39、8); /延時(shí)8 ch=ch<<1; /接收數(shù)據(jù)左移1位 if (HD7279_DAT) ch+=1; /接收1位數(shù)據(jù) Clr7279CLK; /置CLK低電平 Delay1us(8); /延時(shí)8 Clr7279DAT; /接收完畢,DATA端重新置成低電平(輸出狀態(tài)) return ch;void FlashL
40、ED(unsigned char No) char i; Send7279Byte(0x88); /發(fā)閃爍指令 i=0x1; while (No) i=i<<1; No-; Send7279Byte(i); /1閃爍 NOSELECT7279; /置CS高電平 void MoveLeft(void) Send7279Byte(0xA1); /
41、發(fā)左移指令 NOSELECT7279; /置CS高電平 void MoveRight(void) Send7279Byte(0xA0); /發(fā)右移指令 NOSELECT7279; /置CS高電平 unsigned char code BdSeg=0x7e,0x30,0x6d,0x79, / 0 1 2 3 0x33,0x5b,0x5f,0x70, / 4 5 6 70x7f,0x7b,0x77,0x1f, / 8 9 a b0x4e
42、,0x3d,0x4f,0x47, / c d e f0x00,0x01; /*; b6; -; b1| b0 |b5; &
43、#160; - small; b2| b3 |b4; - .b7*/void DispLED(char *DispBuf,char ShowDot)/ShowDot 顯示小數(shù)點(diǎn)位 char i,ch;
44、160;ShowDot-; for (i=0;i<6;i+) ch=DispBufi; if (ch>='a') && (ch<='f') ch-='a'ch+=0xa; if (ch>='A') && (ch<='F')
45、160; ch-='A'ch+=0xa; Send7279Byte(0x90+5-i); /不譯碼 if (ch=' ') Send7279Byte(0x00); else if (ch='-') Send7279Byte(0x01); else &
46、#160; if (ShowDot=i) Send7279Byte(0x80|BdSegch&0x0f); else Send7279Byte(BdSegch&0x0f); NOSELECT7279; /置CS高電平 unsigned char GetKeyValu
47、e(void) char KeyValue; if (CPT1CN&0x40) return -1; /無鍵按下 Send7279Byte(0x15); /發(fā)讀鍵盤指令 KeyValue=Receive7279Byte(); NOSELECT7279; /置CS高電平 return KeyValue; void WaitKeyOff(void) while (!(CPT1CN&0x40);LCD12864.c函數(shù)
48、內(nèi)容#include "c8051F020.h"#include <intrins.h>#define LCD_DATA P2#define LCD_RS P30#define LCD_RW P31#define LCD_E P32#define LCD_CS1 P33#define LCD_CS2 P34#define LCD_RST P35void Delay1ms(unsigned char);#define SELECTCS 0void LCD_WaitReady1(void) /判斷LCD控制芯片KS01
49、08是否忙 LCD_DATA=0xff; _nop_(); LCD_CS2=SELECTCS; LCD_RW=1; LCD_RS=0; LCD_E=1; while (LCD_DATA&0x80); LCD_CS2=!SELECTCS;void LCD_WaitReady2(void) /判斷LCD控制芯片KS0108是否忙 LCD_DATA=0xff; _nop_(); LCD_CS1=SELECTCS; LCD_RW=1; LCD_RS=0;
50、LCD_E=1; while (LCD_DATA&0x80); LCD_CS1=!SELECTCS;void LCD_WriteCommand1(char ch) /向LCD控制芯片KS0108發(fā)送控制命令 LCD_WaitReady1(); LCD_CS2=SELECTCS; LCD_RW=0; LCD_RS=0; LCD_DATA=ch; LCD_E=1; LCD_E=0; LCD_CS2=!SELECTCS;void LCD_WriteCommand2(char ch)
51、/向LCD控制芯片KS0108發(fā)送控制命令 LCD_WaitReady2(); LCD_CS1=SELECTCS; LCD_RW=0; LCD_RS=0; LCD_DATA=ch; LCD_E=1; LCD_E=0; LCD_CS1=!SELECTCS;void LCD_WriteData1(char ch) /向LCD控制芯片KS0108發(fā)送數(shù)據(jù)命令 LCD_WaitReady1(); LCD_CS2=SELECTCS; LCD_RW=0; LCD_RS=1;
52、160;LCD_DATA=ch; LCD_E=1; LCD_E=0; LCD_CS2=!SELECTCS;void LCD_WriteData2(char ch) /向LCD控制芯片KS0108發(fā)送數(shù)據(jù)命令 LCD_WaitReady2(); LCD_CS1=SELECTCS; LCD_RW=0; LCD_RS=1; LCD_DATA=ch; LCD_E=1; LCD_E=0; LCD_CS1=!SELECTCS;void LCD_WriteHZ(char x,char y,
53、char *Dot) /顯示16*16點(diǎn)陣漢字char i; for (i=0;i<32;i+) if (x+i%16)<64) LCD_WriteCommand1(0xB8+y+i/16); LCD_WriteCommand1(0x40+x+i%16); LCD_WriteData1(Doti); else L
54、CD_WriteCommand2(0xB8+y+i/16); LCD_WriteCommand2(0x40+x-64+i%16); LCD_WriteData2(Doti); char code Number=/*- 文字: 0123456789:/ -*/0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x07,0x08,0x10,0x10,0x08,0x07,0x00,0x00,0x10,0x10,0xF8,0x
55、00,0x00,0x00,0x00,0x00,0x10,0x10,0x1F,0x10,0x10,0x00,0x00,0x00,0x30,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x18,0x14,0x12,0x11,0x10,0x18,0x00,0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x0C,0x10,0x10,0x10,0x11,0x0E,0x00,0x00,0x80,0x40,0x20,0xF8,0x00,0x00,0x00,0x00,0x03,0x02,0x12,0x1F,0x12,0x12,0x00,0x
56、00,0xF8,0x88,0x48,0x48,0x48,0x88,0x00,0x00,0x0C,0x10,0x10,0x10,0x10,0x0F,0x00,0x00,0xE0,0x10,0x88,0x88,0x98,0x00,0x00,0x00,0x0F,0x11,0x10,0x10,0x10,0x0F,0x00,0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x70,0x88,0x88,0x88,0x88,0x70,0x00,0x00,0x0E,0x11,0x10,0x
57、10,0x11,0x0E,0x00,0x00,0xF0,0x08,0x08,0x08,0x90,0xE0,0x00,0x00,0x00,0x19,0x11,0x11,0x08,0x07,0x00,0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,;void LCD_WriteChar(char x,char y,char *Do
58、t) /顯示8*16點(diǎn)陣字符char i; for (i=0;i<16;i+) if (x+i%8)<64) LCD_WriteCommand1(0xB8+y+i/8); LCD_WriteCommand1(0x40+x+i%8); LCD_WriteData1(Doti); else LCD_WriteComm
59、and2(0xB8+y+i/8); LCD_WriteCommand2(0x40+x-64+i%8); LCD_WriteData2(Doti); void LCD_WriteChar2(char x,char y,char *Dot) /顯示8*16點(diǎn)陣字符 /新添加反向顯示函數(shù)char i; for (i=0;i<16;i+) if (x+i%8)<64)
60、0;LCD_WriteCommand1(0xB8+y+i/8); LCD_WriteCommand1(0x40+x+i%8); LCD_WriteData1(Doti); else LCD_WriteCommand2(0xB8+y+i/8); LCD_WriteCommand2(0x40+x-64+i%8); LCD_WriteData2(Doti);
61、60; void LCD_DispChar(char x,char y,char ch) /128*64 取值x=0-128 y=0-8 if (ch>=0)&&(ch<=0xb) LCD_WriteChar(x,y,&Numberch*16); void LCD_DispChar2(char x,char y,char ch) /128*64 取值x=0-128 y=0-8 /新添加反向顯示函數(shù) if (ch>=0)&&a
62、mp;(ch<=0xb) LCD_WriteChar2(x,y,&Numberch*16); void InitLCD(void) /初始化LCD char i,j; LCD_RST=0; Delay1ms(1); LCD_RST=1; LCD_WriteCommand1(0xc0); LCD_WriteCommand2(0xc0); LCD_WriteCommand1(0x3f); /開顯示 LCD_Write
63、Command2(0x3f); for (j=0;j<8;j+) /清屏 LCD_WriteCommand1(0xB8+j); /清左半屏 LCD_WriteCommand1(0x40); for (i=0;i<64;i+) LCD_WriteData1(0x00); LCD_WriteCommand2(0xB8+j); /清右半屏 LCD_WriteCommand
64、2(0x40); for (i=0;i<64;i+) LCD_WriteData2(0x00); void DispBmp(char *buf) /顯示一幅位圖int i,j; for (j=0;j<8;j+) /顯示位圖 LCD_WriteCommand1(0xB8+j); LCD_WriteCommand1(0x40); for (i=0;i<64;i+)
65、; LCD_WriteData1(buf(j*2)*64+i); LCD_WriteCommand2(0xB8+j); LCD_WriteCommand2(0x40); for (i=0;i<64;i+) LCD_WriteData2(buf(j*2+1)*64+i); Clock.c內(nèi)容如下#include <c8051f020.h>unsigned char h=23,m=59,s=55;
66、60; /設(shè)定初始時(shí)間extern unsigned char ch,cm,cs; /申明鬧鐘時(shí)分秒extern unsigned int year,mouth,day;/申明年月日unsigned char key,key1,key2; /按鍵 鍵值unsigned char i=0,j=0,y1=33,k=0; /循環(huán)標(biāo)記unsigned char si6=0;
67、160; /設(shè)置模式中存儲時(shí)間設(shè)定值int rili8=3; /設(shè)置模式中存儲日歷設(shè)定值unsigned char sn6=0; /設(shè)置模式中存儲鬧鈴設(shè)定值void InitLCD(void); /初始化LCDvoid LCD_D
68、ispChar(char x,char y,char ch);void LCD_WriteHZ(char x,char y,char *Dot);void DispLED(char *DispBuf,char ShowDot);void Delay1ms(unsigned char T);unsigned char GetKeyValue(void);void WaitKeyOff(void);void LCD_DispChar2(char x,char y,char ch);/*- 文字: 時(shí) -*/char code Shi=0x00,0x00,0xFC,0x44,0x44,0xFC,0x
69、00,0x08,0x48,0x88,0x08,0xFF,0x08,0x08,0x08,0x00,0x00,0x00,0x1F,0x04,0x04,0x0F,0x00,0x00,0x00,0x11,0x20,0x1F,0x00,0x00,0x00,0x00,;/*- 文字: 鐘 -*/char code Zhong=0x00,0x60,0x38,0xE7,0x24,0x24,0x04,0x00,0xF8,0x88,0x88,0xFF,0x88,0x88,0xF8,0x00,0x00,0x01,0x01,0x3F,0x11,0x09,0x01,0x00,0x01,0x00,0x00,0x3F,0x
70、00,0x00,0x01,0x00,;/*- 文字: 鬧 -*/char code Nao=0x00,0x00,0xF9,0x12,0x90,0x92,0x96,0xFA,0x92,0x92,0x92,0x12,0x02,0xFE,0x00,0x00,0x00,0x00,0xFF,0x00,0x1F,0x00,0x00,0x7F,0x00,0x08,0x1F,0x40,0x80,0x7F,0x00,0x00,;/*- 文字: 日 -*/char code Ri=0x00,0x00,0x00,0xFE,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0xFE,0x00,0x
71、00,0x00,0x00, 0x00,0x00,0x00,0x3F,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x3F,0x00,0x00,0x00,0x00,;/*- 文字: 歷 -*/char code Li=0x00,0x00,0xFE,0x02,0x22,0x22,0x22,0x22,0xFA,0x22,0x22,0x22,0xE2,0x02,0x02,0x00, 0x40,0x30,0x0F,0x00,0x40,0x20,0x18,0x06,0x01,0x00,0x20,0x60,0x3F,0x00,0x00,0x00,;void clock (void)
72、 InitLCD();DispLED(" ",0); while(1) LCD_WriteHZ(32,0,Ri); LCD_WriteHZ(48,0,Li); LCD_WriteHZ(64,0,Shi); LCD_WriteHZ(80,0,Zhong); LCD_WriteHZ(0,2,Shi); LCD_WriteHZ(16,2,Zhong); LCD_DispChar(49,2,0xa);LCD_DispChar(73,2,0xa);LCD_WriteHZ(0,4,Ri); LCD_WriteHZ(16,4,Li);LCD_WriteHZ(0,6,Nao); LCD_W
73、riteHZ(16,6,Zhong);LCD_DispChar(33,6,ch/10); LCD_DispChar(41,6,ch%10);LCD_DispChar(49,6,0xa);LCD_DispChar(57,6,cm/10);LCD_DispChar(65,6,cm%10);LCD_DispChar(73,6,0xa);LCD_DispChar(81,6,cs/10);LCD_DispChar(89,6,cs%10); key=GetKeyValue();/獲取按鍵值,當(dāng)沒有按鍵值時(shí),key=-1;整個(gè)循環(huán)只運(yùn)行if(GetKeyValue()=-1)內(nèi)程序。 if(GetKeyValue()=-1) Delay1ms(30); LCD_DispChar(33,2,h/10);LCD_DispChar(41,2,h%10);LCD_DispChar(57,2,m/10);LCD_DispChar(65,2,m%10);LCD_DispChar(81,2,s/10);LCD_DispChar(89,2,s%10); LCD_DispChar(33,4,year/1000); LCD_DispChar(41,4,(year%1000)/100); LCD_DispChar(49,4,(year
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 校園文化建設(shè)與學(xué)校發(fā)展戰(zhàn)略
- 行為習(xí)慣與孩子未來家庭教育的長遠(yuǎn)影響
- DB6103T 80-2025獼猴桃園覆土栽培香菇技術(shù)規(guī)范
- 不可撤銷物業(yè)服務(wù)合同范例
- 中保人壽幸福家園保險(xiǎn)合同范本(A)
- 臨街旺鋪?zhàn)赓U合同樣本
- 二手車買賣合同(權(quán)威版)
- 業(yè)務(wù)拓展與培訓(xùn)合作合同
- 上海市物流運(yùn)輸合同范本
- 個(gè)人信用擔(dān)保貸款合同范文
- 橋梁建設(shè)施工組織設(shè)計(jì)方案
- (新版)中國動態(tài)血壓監(jiān)測基層應(yīng)用指南(2024年)
- 礦物加工工程基礎(chǔ)知識單選題100道及答案解析
- 2024年同等學(xué)力申碩英語考試真題
- 浙江省杭州市2024年中考語文試卷(含答案)
- 世說新語原文及翻譯-副本
- 電力通信光纜檢修標(biāo)準(zhǔn)化作業(yè)指導(dǎo)書
- 安全隱患舉報(bào)獎(jiǎng)勵(lì)制度
- 工貿(mào)行業(yè)企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化建設(shè)實(shí)施指南
- T-CACM 1560.6-2023 中醫(yī)養(yǎng)生保健服務(wù)(非醫(yī)療)技術(shù)操作規(guī)范穴位貼敷
- 2024年全國統(tǒng)一考試高考新課標(biāo)Ⅱ卷數(shù)學(xué)試題(真題+答案)
評論
0/150
提交評論