基于51單片機(jī)的液晶萬年歷畢業(yè)設(shè)計(jì)_第1頁
已閱讀1頁,還剩13頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  摘要</b></p><p>  在寒假期間我用一周時(shí)間完成了這個(gè)液晶萬年歷,它可以顯示年月日、時(shí)分秒、以及溫度(可上下限報(bào)警),可以對(duì)時(shí)間進(jìn)行加一或減一調(diào)整,并加入了閏、平年時(shí)間調(diào)整,方便可行,已經(jīng)調(diào)試成功??紤]到成本和方便,本作品采用了STC89c52和DS18B20,計(jì)時(shí)用的是51單片機(jī)自帶的十六位定時(shí)器/計(jì)數(shù)器T0,盡管對(duì)時(shí)間進(jìn)行了誤差調(diào)整但是還是有一定

2、的誤差,考慮到學(xué)校后改用DS1302時(shí)鐘芯片,進(jìn)一步減小誤差。溫度顯示精度達(dá)到0.1攝氏度。</p><p>  關(guān)鍵詞: 單片機(jī) DS18B20 萬年歷 溫度</p><p><b>  硬件工作介紹</b></p><p> ?。?)上電自動(dòng)復(fù)位及手動(dòng)復(fù)位電路</p><p>  STC89c52單片機(jī)的RS

3、T端外部復(fù)位有兩種操作方式:上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位。本設(shè)計(jì)用上電自動(dòng)復(fù)位以及手動(dòng)復(fù)位下結(jié)合的方式外接電路(見附圖)。</p><p><b>  (2)時(shí)鐘振蕩電路</b></p><p>  作品中采用12M晶振,其連接方法如圖所示,其中電容的值都為22pF。</p><p> ?。?)1602液晶顯示接口</p><

4、p>  1602采用標(biāo)準(zhǔn)的16腳接口(見附圖),其中:</p><p>  第1腳:GND為地電源</p><p>  第2腳:VCC接5V正電源</p><p>  第3腳:V0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對(duì)比度</p><p>

5、  第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。</p><p>  第5腳:RW為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和RW共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平RW為低電平時(shí)可以寫入數(shù)據(jù)。</p><p>  第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令

6、。</p><p>  第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。 </p><p><b>  第15腳:VCC</b></p><p><b>  第16:GND</b></p><p><b> ?。?)鍵盤</b></p><p>  鍵盤是通過

7、S3(P3.2),S4(p3.3),S5(p3.4)對(duì)時(shí)鐘進(jìn)行調(diào)整,其S3選擇要調(diào)整的對(duì)象如時(shí),分,日,月等等,并在液晶屏上顯示所選的對(duì)象。S4對(duì)所選中的對(duì)象進(jìn)行加一調(diào)整,而S5對(duì)所選對(duì)象進(jìn)行減一調(diào)整。</p><p><b> ?。?)蜂鳴器</b></p><p>  對(duì)溫度進(jìn)行測(cè)量,高低溫超限報(bào)警,正常溫度在15.0-36.0攝氏度,超過最高或低于最低溫度就會(huì)鳴

8、叫報(bào)警。</p><p><b>  軟件工作介紹</b></p><p>  由于C語言功能豐富,表達(dá)能力和可移植能力強(qiáng),而且操作方便,簡(jiǎn)單易懂,因此軟件部分由C語言編寫,程序的重點(diǎn)和難點(diǎn)是閏月的時(shí)間調(diào)整以及鍵盤對(duì)時(shí)間的調(diào)整,本程序還不是太完善,溫度顯示有規(guī)律性的微微閃爍,懇請(qǐng)老師指正。</p><p>  否

9、 否</p><p>  是 是 是</p><p>  否 否</p><p>  是 是

10、 是</p><p><b>  主程序流程圖</b></p><p><b>  設(shè)計(jì)總結(jié)</b></p><p>  在制作的過程中,因?yàn)榘遄邮窃趯W(xué)校自己動(dòng)手做的最小系統(tǒng)板,接插線還是比較簡(jiǎn)單的,難的是硬件的調(diào)試,因?yàn)槔碚撆c實(shí)踐總是存在著差距,想出來的東西沒有經(jīng)過實(shí)踐的檢驗(yàn)是不可靠的,任何一個(gè)小小的疏忽大意都能導(dǎo)

11、致失敗。</p><p>  比如說對(duì) hour, min , sec,day, moth的定義,一開始我用的unsigned char ,但是在調(diào)試減一時(shí),減到零時(shí)再按下鍵盤就會(huì)出現(xiàn)亂碼,幾經(jīng)調(diào)試,終于發(fā)現(xiàn)問題地所在并及時(shí)地解決了問題,之后再一次對(duì)硬件進(jìn)行調(diào)試,終于成功了。從這一方面來說,我認(rèn)識(shí)到做要比說難得多,做的過程中必定有很多的阻礙,但是一定要慢慢來,一點(diǎn)一點(diǎn)地找出問題,再一點(diǎn)一點(diǎn)地解決它,這樣的話,到達(dá)

12、成功的彼岸也就僅僅是時(shí)間的問題了。我通過這次設(shè)計(jì),特別是通過對(duì)程序的編寫,深層了解了單片機(jī)內(nèi)部結(jié)構(gòu)和外圍器件的應(yīng)用。我學(xué)到的不僅僅是電子方面的知識(shí),更重要的是,我學(xué)到了作為一名電子設(shè)計(jì)者所必需的心理素質(zhì),那就是——決心加上耐心!</p><p><b>  附錄1:程序代碼:</b></p><p>  #include <reg51.h></p&g

13、t;<p>  #define Lcd_Data P0 //定義數(shù)據(jù)端口</p><p>  #define _TH0_TL0_ (65536 - 50000) </p><p>  #define HI (_TH0_TL0_ / 256) //給高8位賦值</p><p>  #define LO (_TH0_TL0_ %

14、256) //給低8位賦值</p><p>  #define M 20 //(1000/50)1秒要20個(gè)中斷的累計(jì)</p><p>  char hour = 0, min = 0, sec = 0,N=0,day=1,moth=1,week=7;</p><p>  //初始化要顯示的值</p><p&g

15、t;  unsigned char SEG_TAB[] = {0x30,0x31,0x32, 0x33, 0x34, 0x35, 0x36, 0x37,0x38, 0x39};//0-9數(shù)字</p><p>  unsigned int year=8;</p><p>  sbit RS = P2^ 5; //定義和LCD的連接端口</p><p>  sbit

16、 RW = P2^ 4;</p><p>  sbit E = P2^ 3;</p><p>  sbit Busy = P0^ 7;</p><p>  sbit S3 = P3^2;//定義開關(guān)s3選擇鍵</p><p>  sbit S4 = P3^3;//s4加一鍵</p><p>  sbit S

17、5 = P3^4;//s5減一鍵</p><p>  sbit DQ = P2^0;//DS18B20</p><p>  sbit speak = P2^1; //蜂鳴器警報(bào)</p><p>  /***************************************************************************/<

18、;/p><p>  void delay1(unsigned int num)//短延時(shí)函數(shù)</p><p><b>  {</b></p><p>  while( num-- );</p><p><b>  }</b></p><p>  /****************

19、**************************************************************/</p><p>  void Delay(unsigned char t)//長(zhǎng)延時(shí)函數(shù),延時(shí) 1MS*t S</p><p><b>  {</b></p><p>  unsigned char a;</p&

20、gt;<p>  while(--t != 0)</p><p><b>  {</b></p><p>  for(a = 0; a < 125; a++);</p><p><b>  }</b></p><p><b>  }</b></p>

21、;<p>  /*******************************************************************/</p><p>  void Timer0Init(void) //初始化定時(shí)器0程序</p><p><b>  {</b></p><p>  TMOD = 0x01; /

22、/設(shè)置模式1 定時(shí)器0 工作方式0</p><p>  TH0 = HI; //給TH0,TL0賦初始值</p><p><b>  TL0 = LO;</b></p><p>  TR0 = 1; //啟動(dòng)定時(shí)器0</p><p>  ET0 = 1; //定時(shí)器中斷開</p><p>  

23、EA = 1;//總中斷開</p><p><b>  }</b></p><p>  /******************************************************************************/</p><p>  void Read_Busy(void)//讀忙信號(hào)判斷</p>

24、;<p><b>  {</b></p><p><b>  do{</b></p><p>  Lcd_Data = 0xff;</p><p><b>  RS = 0;</b></p><p><b>  RW = 1;</b><

25、/p><p><b>  E = 0;</b></p><p><b>  Delay(2);</b></p><p><b>  E = 1;</b></p><p>  }while(Busy);</p><p><b>  }</b&g

26、t;</p><p>  /******************************************************************************/ </p><p>  void Write_Comm(unsigned char lcdcomm) //寫指令函數(shù)</p><p><b>  {</b>&

27、lt;/p><p>  Lcd_Data = lcdcomm;</p><p><b>  RS = 0;</b></p><p><b>  RW = 0;</b></p><p><b>  E = 0;</b></p><p>  Read_Busy(

28、);</p><p><b>  E = 1;</b></p><p><b>  }</b></p><p>  /******************************************************************************/</p><p>  v

29、oid Write_Data(unsigned char lcddata)//寫數(shù)據(jù)函數(shù)</p><p><b>  {</b></p><p>  Lcd_Data = lcddata;</p><p><b>  RS = 1;</b></p><p><b>  RW = 0;&l

30、t;/b></p><p><b>  E = 0;</b></p><p>  Read_Busy();</p><p><b>  E = 1;</b></p><p><b>  }</b></p><p>  /**************

31、****************************************************************/</p><p>  void Init_LCD(void)//初始化LCD</p><p><b>  {</b></p><p>  Delay(400); //稍微延時(shí),等待LCD進(jìn)入工作狀態(tài)</p&

32、gt;<p>  Write_Comm(0x01);//清顯示</p><p>  Write_Comm(0x02);//光標(biāo)歸位</p><p>  Write_Comm(0x38);//8位2行5*8</p><p>  Write_Comm(0x06);//文字不動(dòng),光標(biāo)右移</p><p>  Write_Comm(0x

33、0c);//顯示開/關(guān),光標(biāo)開閃爍開</p><p>  Write_Comm(0x18);//左移</p><p><b>  }</b></p><p>  /*******************************************************************************/</p>

34、<p>  Init_DS18B20(void)//初始化ds1820</p><p><b>  {</b></p><p>  unsigned char x = 0;</p><p>  DQ = 1; //DQ復(fù)位</p><p>  delay1(8); //稍做延時(shí)</p>

35、<p>  DQ = 0; //單片機(jī)將DQ拉低</p><p>  delay1(80); //精確延時(shí) 大于 480us</p><p>  DQ = 1; //拉高總線</p><p>  delay1(14);</p><p>  x = DQ; //稍做延時(shí)后 如果x=0則初始化成功 x=1則初始化失

36、敗</p><p>  delay1(20);</p><p><b>  }</b></p><p>  /**********************************************************************************/</p><p>  ReadOneChar(

37、void)//讀一個(gè)字節(jié)</p><p><b>  {</b></p><p>  unsigned char i = 0;</p><p>  unsigned char dat = 0;</p><p>  for (i = 8; i > 0; i--)</p><p><b&g

38、t;  {</b></p><p>  DQ = 0; // 給脈沖信號(hào)</p><p>  dat >>= 1;</p><p>  DQ = 1; // 給脈沖信號(hào)</p><p><b>  if(DQ)</b></p><p>  dat |= 0x80;</

39、p><p>  delay1(4);</p><p><b>  }</b></p><p>  return (dat);</p><p><b>  }</b></p><p>  /**********************************************

40、************************************/</p><p>  WriteOneChar(unsigned char dat)//寫一個(gè)字節(jié)</p><p><b>  {</b></p><p>  unsigned char i = 0;</p><p>  for (i = 8; i

41、 > 0; i--)</p><p><b>  {</b></p><p><b>  DQ = 0;</b></p><p>  DQ = dat&0x01;</p><p>  delay1(5);</p><p><b>  DQ = 1;&l

42、t;/b></p><p><b>  dat>>=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /**********************************************

43、************************************/</p><p>  Read_Disp_Temperature(void)//讀取并顯示溫度</p><p><b>  {</b></p><p>  unsigned int a = 0, b = 0, c = 0, t = 0;</p><p&

44、gt;  float tt = 0;</p><p>  Init_DS18B20();</p><p>  WriteOneChar(0xCC); // 跳過讀序號(hào)列號(hào)的操作</p><p>  WriteOneChar(0x44); // 啟動(dòng)溫度轉(zhuǎn)換</p><p>  Init_DS18B20();</p><p&

45、gt;  WriteOneChar(0xCC); //跳過讀序號(hào)列號(hào)的操作</p><p>  WriteOneChar(0xBE); //讀取溫度寄存器</p><p>  a = ReadOneChar();</p><p>  b = ReadOneChar();</p><p><b>  t = b;</b>&

46、lt;/p><p><b>  t <<= 8;</b></p><p>  t = t | a;</p><p>  tt = t * 0.0625;</p><p>  t = tt * 10 + 0.5; //放大10倍輸出并四舍五入</p><p>  a = t / 100;

47、 //十位</p><p>  b = t / 10 - a * 10; //個(gè)位 </p><p>  c = t - a * 100 - b * 10; //小數(shù)位</p><p>  if((t>=360)||(t<=150)) //溫度報(bào)警范圍 </p><p>  { speak=0;

48、</p><p><b>  }</b></p><p>  else speak=1;</p><p>  Write_Comm(0x8d); //lcd顯示溫度</p><p>  Write_Data( SEG_TAB[a]);</p><p>  Write_Data( SEG_TAB

49、[b]);</p><p>  Write_Data( '.');</p><p>  Write_Data( SEG_TAB[c]);</p><p><b>  }</b></p><p>  /*****************************************************

50、*************************/</p><p>  void main(void)//主函數(shù)--數(shù)字讀取和計(jì)算</p><p><b>  {</b></p><p>  Init_LCD(); //初始化 LCD</p><p>  Timer0Init();//初始化定時(shí)器0

51、 </p><p>  Write_Comm(0x83); //寫入":"字符 </p><p>  Write_Data(':');</p><p>  Write_Comm(0x86);</p><p>  Write_Data(':');</p><p&g

52、t;  Write_Comm(0x89);//溫度提示字符</p><p>  Write_Data('T');</p><p>  Write_Data('e');</p><p>  Write_Data('m');</p><p>  Write_Data('p');<

53、;/p><p>  Write_Comm(0xc1);//第二行首地址</p><p>  //寫入"20 - -"字符</p><p>  Write_Data('2');</p><p>  Write_Data('0');</p><p>  Write_Comm

54、(0xc5);</p><p>  Write_Data('-');</p><p>  Write_Comm(0xc8);</p><p>  Write_Data('-');</p><p>  Write_Comm(0xcb);</p><p>  Write_Data('

55、-');</p><p><b>  while(1)</b></p><p><b>  { </b></p><p>  Read_Disp_Temperature(); //溫度</p><p><b>  if(S3==0)</b></p><

56、;p><b>  {</b></p><p>  delay1(10); </p><p><b>  if(S3==0)</b></p><p><b>  N++;</b></p><p>  if(N>6) {N=0;}</p><p>

57、;  while(S3==0);</p><p>  Write_Comm(0xcf); </p><p>  Write_Data(SEG_TAB[N]); //顯示切換鍵位所示的位置 N</p><p>  //0:秒,1:分,2:時(shí),3:日,4:月,5:年 6:星期</p><p><b>  }</b><

58、/p><p>  if(S4==0)//時(shí)間調(diào)整--加</p><p><b>  {</b></p><p>  delay1(10); </p><p>  if(S4==0) </p><p><b>  { </b></p><p><

59、b>  if(N==1)</b></p><p><b>  {</b></p><p><b>  min++;</b></p><p>  if(min==60) min=0; </p><p>  Write_Comm(0x84);</p><p>

60、  Write_Data(SEG_TAB[min/10]);</p><p>  Write_Comm(0x85);</p><p>  Write_Data(SEG_TAB[min%10]);</p><p><b>  }</b></p><p><b>  if(N==2)</b></p

61、><p><b>  {</b></p><p><b>  hour ++;</b></p><p>  if(hour==24) hour=0;</p><p>  Write_Comm(0x81);</p><p>  Write_Data(SEG_TAB[hour/10]

62、);</p><p>  Write_Comm(0x82);</p><p>  Write_Data(SEG_TAB[hour%10]); </p><p><b>  }</b></p><p><b>  if(N==3)</b></p><p><b>  

63、{</b></p><p><b>  day++;</b></p><p>  if(moth==2&&(year%4==0)&&day==30)day=1; //閏年2月天數(shù)計(jì)算 </p><p>  if(moth==2&&(year%4!=0)&&day==29

64、)day=1; //平年2月</p><p>  if((moth==4||moth==6||moth==9||moth==11)&&day==31)day=1;//4,6,9,11月計(jì)算</p><p>  if(day==32)day=1;//1,3,5,7,8,10,12月天數(shù)計(jì)算</p><p>  Write_Comm(0xC9);<

65、;/p><p>  Write_Data(SEG_TAB[day/10]);</p><p>  Write_Comm(0xCa);</p><p>  Write_Data(SEG_TAB[day%10]);</p><p><b>  }</b></p><p><b>  if(N==

66、4)</b></p><p><b>  {</b></p><p><b>  moth++;</b></p><p>  if(moth==13)moth=1;</p><p>  Write_Comm(0xc6);</p><p>  Write_Data(

67、SEG_TAB[moth/10]);</p><p>  Write_Comm(0xc7);</p><p>  Write_Data(SEG_TAB[moth%10]);</p><p><b>  }</b></p><p><b>  if(N==5)</b></p><p

68、><b>  {</b></p><p><b>  year++;</b></p><p>  if(year==51)year=0;</p><p>  Write_Comm(0xc3);</p><p>  Write_Data(SEG_TAB[year/10]);</p>

69、<p>  Write_Comm(0xc4);</p><p>  Write_Data(SEG_TAB[year%10]);</p><p><b>  }</b></p><p><b>  if(N==6)</b></p><p><b>  {</b><

70、;/p><p><b>  week++;</b></p><p>  if(week==8) week=1;</p><p>  Write_Comm(0xcc);</p><p>  Write_Data(SEG_TAB[year/10]);</p><p><b>  }</b&

71、gt;</p><p>  while(S4==0);</p><p><b>  }</b></p><p><b>  } </b></p><p>  if(S5==0)//時(shí)間調(diào)整--減</p><p><b>  {</b></p&g

72、t;<p>  delay1(10);</p><p><b>  if(S5==0)</b></p><p><b>  { </b></p><p><b>  if(N==1)</b></p><p><b>  {</b></p

73、><p>  min--;if(min<0) {min=59;}</p><p>  Write_Comm(0x84);</p><p>  Write_Data(SEG_TAB[min/10]);</p><p>  Write_Comm(0x85);</p><p>  Write_Data(SEG_TAB[mi

74、n%10]);</p><p><b>  }</b></p><p><b>  if(N==2)</b></p><p>  { hour--;if(hour<0){hour=23;}</p><p>  Write_Comm(0x81);</p><p>  Wr

75、ite_Data(SEG_TAB[hour/10]);</p><p>  Write_Comm(0x82);</p><p>  Write_Data(SEG_TAB[hour%10]);</p><p><b>  }</b></p><p><b>  if(N==3)</b></p&g

76、t;<p>  { day--; </p><p>  if(moth==2&&(year%4==0)&&day<1)day=29; </p><p>  if(moth==2&&(year%4!=0)&&day<1)day=28;</p><p>  if((

77、moth==4||moth==6||moth==9||moth==11)&&day<1)day=30;</p><p>  if(day<1)day=31;</p><p>  Write_Comm(0xC9);</p><p>  Write_Data(SEG_TAB[day/10]);</p><p>  Wr

78、ite_Comm(0xCa);</p><p>  Write_Data(SEG_TAB[day%10]);</p><p><b>  }</b></p><p><b>  if(N==4)</b></p><p><b>  { moth--;</b></p>

79、<p>  if(moth==0){moth=12;}</p><p>  Write_Comm(0xc6);</p><p>  Write_Data(SEG_TAB[moth/10]);</p><p>  Write_Comm(0xc7);</p><p>  Write_Data(SEG_TAB[moth%10]);&l

80、t;/p><p><b>  }</b></p><p><b>  if(N==5)</b></p><p><b>  { year--;</b></p><p>  if(year<0){year=50;}</p><p>  Write_Com

81、m(0xc3);</p><p>  Write_Data(SEG_TAB[year/10]);</p><p>  Write_Comm(0xc4);</p><p>  Write_Data(SEG_TAB[year%10]);</p><p><b>  }</b></p><p><

82、b>  if(N==6)</b></p><p><b>  {</b></p><p><b>  week--;</b></p><p>  if(week==0) week=7;</p><p>  Write_Comm(0xcc);</p><p>

83、  Write_Data(SEG_TAB[week]);</p><p><b>  }</b></p><p>  while(S5==0);</p><p><b>  }</b></p><p><b>  }</b></p><p><

84、b>  }</b></p><p><b>  }</b></p><p>  /**************************************************************************/</p><p>  void IsrTimer0(void) interrupt 1 usin

85、g 1 //定時(shí)器0中斷服務(wù)程序</p><p><b>  {</b></p><p>  static unsigned char count = 0;//定義靜態(tài)變量count</p><p>  TR0 = 0; //時(shí)間誤差調(diào)整</p><p>  TL0 += (_TH0_

86、TL0_ + 9) % 256;</p><p>  TH0 += (_TH0_TL0_ + 9) / 256 + (char)CY;</p><p><b>  TR0 = 1;</b></p><p><b>  count++;</b></p><p>  if(count == M)//1秒

87、種時(shí)間到</p><p><b>  {</b></p><p>  count = 0;</p><p><b>  sec++;</b></p><p>  if(sec == 60)//1分鐘時(shí)間到</p><p><b>  {</b>&l

88、t;/p><p><b>  min++;</b></p><p><b>  sec = 0;</b></p><p>  if(min == 60)//1小時(shí)時(shí)間到</p><p><b>  {</b></p><p><b>  hour+

89、+;</b></p><p><b>  min = 0;</b></p><p>  if(hour == 24)//24小時(shí)時(shí)間到</p><p>  { day++;</p><p><b>  week++;</b></p><p><b>

90、;  hour = 0;</b></p><p><b>  min = 0;</b></p><p><b>  sec = 0;</b></p><p>  if(week==8)</p><p>  { week=1;</p><p><b>

91、;  }</b></p><p>  if((moth==2&&(year%4==0)&&day==30)||(moth==2&&(year%4!=0)&&day==29)||((moth==4||moth==6||moth==9||moth==11)&&day==31)||(day==32))</p>&l

92、t;p>  { //一個(gè)月到</p><p><b>  moth++;</b></p><p><b>  day=1;</b></p><p>  if(moth==13) //一年到</p><p&g

93、t;  { year++; </p><p><b>  moth=1;</b></p><p><b>  } </b></p><p><b>  } </b></p><p><b>  }</b></p><p>&l

94、t;b>  }</b></p><p><b>  }</b></p><p><b>  } </b></p><p>  Write_Comm(0x81); //時(shí)間顯示 </p><p>  Write_Data(S

95、EG_TAB[hour/10]);</p><p>  Write_Comm(0x82);</p><p>  Write_Data(SEG_TAB[hour%10]);</p><p>  Write_Comm(0x83);</p><p>  Write_Data(':');</p><p>  W

96、rite_Comm(0x84);</p><p>  Write_Data(SEG_TAB[min/10]);</p><p>  Write_Comm(0x85);</p><p>  Write_Data(SEG_TAB[min%10]);</p><p>  Write_Comm(0x86);</p><p> 

97、 Write_Data(':');</p><p>  Write_Comm(0x87);</p><p>  Write_Data(SEG_TAB[sec/10]);</p><p>  Write_Comm(0x88);</p><p>  Write_Data(SEG_TAB[sec%10]);</p>&

98、lt;p>  Write_Comm(0x8f);</p><p>  Write_Data( '.');</p><p>  Write_Comm(0xc3);</p><p>  Write_Data(SEG_TAB[year/10]);</p><p>  Write_Comm(0xc4);</p>&

99、lt;p>  Write_Data(SEG_TAB[year%10]);</p><p>  Write_Comm(0xc5);</p><p>  Write_Data('-');</p><p>  Write_Comm(0xc6);</p><p>  Write_Data(SEG_TAB[moth/10]);&l

100、t;/p><p>  Write_Comm(0xc7);</p><p>  Write_Data(SEG_TAB[moth%10]);</p><p>  Write_Comm(0xc8);</p><p>  Write_Data('-');</p><p>  Write_Comm(0xc9);<

101、;/p><p>  Write_Data(SEG_TAB[day/10]);</p><p>  Write_Comm(0xca);</p><p>  Write_Data(SEG_TAB[day%10]);</p><p>  Write_Comm(0xcb);</p><p>  Write_Data('-&

102、#39;);</p><p>  Write_Comm(0xcc);</p><p>  Write_Data(SEG_TAB[week]);</p><p>  Write_Comm(0xcd); </p><p>  Write_Data(0xfe);</p><p>  Write_Comm(0xce); &

103、lt;/p><p>  Write_Data(0xfe);</p><p>  Write_Comm(0xcf+1); </p><p>  Write_Data(0xfe);</p><p><b>  }</b></p><p><b>  附錄2:電路圖</b></

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論