久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4719|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

基于51單片機系列89C52單片機的設(shè)計

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:71870 發(fā)表于 2015-1-17 11:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. //************1602液晶顯示程序************

  2. #include<reg52.h>

  3. #include <intrins.h>


  4. #define uchar unsigned char

  5. #define  uint unsigned  int


  6. uchara,miao,shi,fen,ri,yue,nian,week,flag1,key1n,temp;

  7. #define yh 0x80                              

  8. #define er 0x80+0x40


  9. //DS1302時鐘芯片與C51之間的引腳連接定義

  10. sbit IO=P1^1;

  11. sbit SCLK=P1^0;

  12. sbit RST=P1^2;


  13. sbit ACC0=ACC^0;

  14. sbit ACC7=ACC^7;


  15. //校時按鍵與C51的引腳連接定義

  16. sbit key1=P1^5;                             //設(shè)置鍵

  17. sbit key2=P1^6;                             //加鍵

  18. sbit key3=P1^7;                             //減鍵

  19. //sbit buzzer=P1^3;                            //蜂鳴器,通過三極管9012驅(qū)動,端口低電平響                        


  20. typedef unsigned char BYTE;

  21. typedef unsigned int WORD;

  22. typedef bit BOOL ;

  23. extern GetTemp(void);

  24. extern unsigned int  idata Temperature;

  25. extern Init18b20 ();


  26. //unsigned char  a,b,c;


  27. sbit   lcden=P2^7;      //液晶使能位

  28. sbit   lcdrw=P2^5;     //液晶讀寫位

  29. sbit   lcdrs=P2^6;      //數(shù)據(jù)命令選擇位

  30.   uchar code tab1[]={"2011-07-12 "};             //年顯示的固定字符

  31.   uchar code tab2[]={"19:50:00"};                //時間顯示的固定字符

  32.   

  33. void w_cmd(uint date);

  34. void w_data(uint date);


  35. /************定時器1子函數(shù)***********/

  36. void system_Ini()

  37. {

  38.    TMOD|= 0x11;

  39.    TH1=0x8e; //11.0592M

  40.    TL1=0x33;     

  41.        IE= 0x8A;     

  42.    TR1  = 1;


  43. }


  44. /************延時子函數(shù)***********/

  45. void delay(uchar x)

  46. {

  47. uchar y,z;

  48.    for(y=x;y>0;y--)

  49.          for(z=110;z>0;z--);

  50. }


  51. /*************** 液晶初始化和寫命令及數(shù)據(jù)命令********************/

  52. void lcd_init()                                    

  53. {

  54.    lcden=0;               //初始使能端

  55.    lcdrw=0;                 // 寫數(shù)據(jù)選擇

  56.        w_cmd(0x38);                      //設(shè)置液晶工作模式,意思:16*2行顯示,5*7點陣,8位數(shù)據(jù)

  57.        w_cmd(0x01);                      //清顯示

  58.    w_cmd(0x0c);                     //開顯示不顯示光標(biāo)

  59.        w_cmd(0x06);                      //整屏不移動,光標(biāo)自動右移


  60.        w_cmd(yh+1);                      //日歷顯示固定符號從第一行第1個位置之后開始顯示

  61.        for(a=0;a<14;a++)

  62.        {

  63.        w_data(tab1[a]);                      //向液晶屏寫日歷顯示的固定符號部分

  64.        delay(3);

  65.        }

  66.        w_cmd(er+2);                       //時間顯示固定符號寫入位置,從第2個位置后開始顯示

  67.        for(a=0;a<8;a++)

  68.        {

  69.        w_data(tab2[a]);                      //寫顯示時間固定符號,兩個冒號

  70.        delay(3);

  71.        }


  72. }



  73. void w_cmd(uint date)     //“寫”命令子程序

  74. {

  75.        lcdrs=0;

  76.        P0=date;

  77.        delay(5);

  78.        lcden=1;

  79.        delay(5);

  80.        lcden=0;

  81. }


  82. void w_data(uint date) //”寫“數(shù)據(jù)子程序

  83. {

  84.    lcdrs=1;

  85.        P0=date;

  86.        delay(3);

  87.        lcden=1;

  88.        delay(5);

  89.        lcden=0;

  90. }


  91. /***************DS1302有關(guān)子函數(shù)********************/


  92. void write_byte(uchar dat)//寫一個字節(jié)

  93. {

  94.        ACC=dat;

  95.        RST=1;

  96.        for(a=8;a>0;a--)

  97.        {

  98.               IO=ACC0;

  99.               SCLK=0;

  100.               SCLK=1;

  101.               ACC=ACC>>1;

  102.        }

  103. }

  104. uchar read_byte()                                   //讀一個字節(jié)

  105. {

  106.        RST=1;

  107.        for(a=8;a>0;a--)

  108.        {

  109.               ACC7=IO;

  110.               SCLK=1;

  111.               SCLK=0;

  112.               ACC=ACC>>1;


  113.        }

  114.        return(ACC);

  115. }

  116. //----------------------------------------

  117. void write_1302(uchar add,uchar dat)                   //向1302芯片寫函數(shù),指定寫入地址,數(shù)據(jù)

  118. {


  119.        RST=0;

  120.        SCLK=0;

  121.        RST=1;

  122.        write_byte(add);

  123.        write_byte(dat);

  124.        SCLK=1;

  125.        RST=0;

  126. }

  127. uchar read_1302(uchar add)                          //從1302讀數(shù)據(jù)函數(shù),指定讀取數(shù)據(jù)來源地址

  128. {

  129.        uchartemp;

  130.        RST=0;

  131.        SCLK=0;

  132.        RST=1;

  133.        write_byte(add);

  134.        temp=read_byte();

  135.        SCLK=1;

  136.        RST=0;

  137.        return(temp);

  138. }

  139. uchar BCD_Decimal(uchar bcd)                //BCD碼轉(zhuǎn)十進(jìn)制函數(shù),輸入BCD,返回十進(jìn)制

  140. {

  141. uchar Decimal;

  142. Decimal=bcd>>4;

  143. return(Decimal=Decimal*10+(bcd&=0x0F));

  144. }

  145. //--------------------------------------

  146. void ds1302_init()                           //1302芯片初始化子函數(shù)(2010-01-07,12:00:00,week4)

  147. {

  148. RST=0;

  149. SCLK=0;


  150. write_1302(0x8e,0x00);                      //允許寫,禁止寫保護(hù)

  151. write_1302(0x80,0x00);                     //向DS1302內(nèi)寫秒寄存器80H寫入初始秒數(shù)據(jù)00

  152. write_1302(0x82,0x53);                     //向DS1302內(nèi)寫分寄存器82H寫入初始分?jǐn)?shù)據(jù)00

  153. write_1302(0x84,0x19);                     //向DS1302內(nèi)寫小時寄存器84H寫入初始小時數(shù)據(jù)12

  154. write_1302(0x8a,0x02);                     //向DS1302內(nèi)寫周寄存器8aH寫入初始周數(shù)據(jù)4

  155. write_1302(0x86,0x12);                     //向DS1302內(nèi)寫日期寄存器86H寫入初始日期數(shù)據(jù)07

  156. write_1302(0x88,0x07);                     //向DS1302內(nèi)寫月份寄存器88H寫入初始月份數(shù)據(jù)01

  157. write_1302(0x8c,0x11);                     //向DS1302內(nèi)寫年份寄存器8cH寫入初始年份數(shù)據(jù)10

  158. write_1302(0x8e,0x80);                      //打開寫保護(hù)


  159. }


  160. /********溫度顯示子函數(shù)*********/

  161. void write_temp(uchar add,uchar dat)            //向LCD寫溫度數(shù)據(jù),并指定顯示位置

  162. {

  163.        uchargw,sw;

  164.        gw=dat%10;                            //取得個位數(shù)字

  165.        sw=dat/10;                             //取得十位數(shù)字

  166.        w_cmd(er+add);                  //er是頭文件規(guī)定的值0x80+0x40

  167.        w_data(0x30+sw);                 //數(shù)字+30得到該數(shù)字的LCD1602顯示碼

  168.        w_data(0x30+gw);                 //數(shù)字+30得到該數(shù)字的LCD1602顯示碼

  169.    w_data(0xdf);                     //顯示溫度的小圓圈符號,0xdf是液晶屏字符庫的該符號地址碼

  170.       w_data(0x43);                   //顯示"C"符號,0x43是液晶屏字符庫里大寫C的地址碼         

  171. }            

  172. /******** 時間顯示子函數(shù)*********/

  173. void write_sfm(uchar add,uchar dat)           //向LCD寫時分秒,有顯示位置加、現(xiàn)示數(shù)據(jù),兩個參數(shù)

  174. {

  175.        uchargw,sw;

  176.        gw=dat%10;                          //取得個位數(shù)字

  177.        sw=dat/10;                           //取得十位數(shù)字

  178.        w_cmd(er+add);                //er是頭文件規(guī)定的值0x80+0x40

  179.        w_data(0x30+sw);               //數(shù)字+30得到該數(shù)字的LCD1602顯示碼

  180.        w_data(0x30+gw);               //數(shù)字+30得到該數(shù)字的LCD1602顯示碼

  181.                            

  182. }


  183. /********年、月、日顯示子函數(shù)*********/

  184. void write_nyr(uchar add,uchar dat)           //向LCD寫年月日,有顯示位置加數(shù)、顯示數(shù)據(jù),兩個參數(shù)

  185. {

  186.        uchargw,sw;

  187.        gw=dat%10;                         //取得個位數(shù)字

  188.        sw=dat/10;                          //取得十位數(shù)字

  189.        w_cmd(yh+add);               //設(shè)定顯示位置為第一個位置+add

  190.        w_data(0x30+sw);               //數(shù)字+30得到該數(shù)字的LCD1602顯示碼

  191.        w_data(0x30+gw);               //數(shù)字+30得到該數(shù)字的LCD1602顯示碼

  192.       

  193. }

  194. /*******寫星期子函數(shù)*********/

  195. void write_week(uchar week)                //寫星期函數(shù)

  196. {

  197.        w_cmd(yh+0x0c);              //星期字符的顯示位置

  198.        switch(week)

  199.        {

  200.               case 1:w_data('M');          //星期數(shù)為1時,顯示

  201.                         w_data('O');

  202.                         w_data('N');

  203.                         break;

  204.          

  205.               case 2:w_data('T');           //星期數(shù)據(jù)為2時顯示

  206.                         w_data('U');

  207.                         w_data('E');

  208.                         break;

  209.               

  210.               case 3:w_data('W');           //星期數(shù)據(jù)為3時顯示

  211.                         w_data('E');

  212.                         w_data('D');

  213.                         break;

  214.               

  215.               case 4:w_data('T');            //星期數(shù)據(jù)為4是顯示

  216.                         w_data('H');

  217.                         w_data('U');

  218.                         break;

  219.               

  220.               case 5:w_data('F');            //星期數(shù)據(jù)為5時顯示

  221.                         w_data('R');

  222.                         w_data('I');

  223.                         break;

  224.               

  225.               case 6:w_data('S');            //星期數(shù)據(jù)為6時顯示

  226.                         w_data('T');

  227.                         w_data('A');

  228.                         break;

  229.               

  230.               case 7:w_data('S');            //星期數(shù)據(jù)為7時顯示

  231.                         w_data('U');

  232.                         w_data('N');

  233.                         break;


  234. }


  235. }

  236.                

  237.                /*******鍵盤掃描有關(guān)函數(shù)*********/

  238. void keyscan()

  239. {

  240.        if(key1==0)                          //key1為功能鍵(設(shè)置鍵)

  241.        {

  242.        delay(9);                            //延時,用于消抖動

  243.        if(key1==0)                          //延時后再次確認(rèn)按鍵按下

  244.        {

  245. //  buzzer=0;                          //蜂鳴器短響一次

  246. //  delay(20);

  247. //  buzzer=1;

  248.        while(!key1);

  249.        key1n++;

  250.        if(key1n==9)

  251.               key1n=1;                      //設(shè)置按鍵共有秒、分、時、星期、日、月、年、返回,8個功能循環(huán)

  252.        switch(key1n)

  253.        {

  254.       

  255.        case1: TR0=0;                          //關(guān)閉定時器

  256.                      //TR1=0;

  257.                      w_cmd(er+0x09);         //設(shè)置按鍵按動一次,秒位置顯示光標(biāo)

  258.                    w_cmd(0x0f);            //設(shè)置光標(biāo)為閃爍

  259.                    temp=(miao)/10*16+(miao)%10;    //秒數(shù)據(jù)寫入DS1302

  260.                    write_1302(0x8e,0x00);

  261.                    write_1302(0x80,0x80|temp);//miao

  262.                  write_1302(0x8e,0x80);

  263.                    break;

  264.        case2:  w_cmd(er+6);             //按2次fen位置顯示光標(biāo)

  265.                      

  266.                   //write_1602com(0x0f);

  267.                      break;

  268.        case3: w_cmd(er+3);               //按動3次,shi

  269.                   //write_1602com(0x0f);

  270.                      break;

  271.        case4: w_cmd(yh+0x0e);           //按動4次,week

  272.                   //write_1602com(0x0f);

  273.                      break;

  274.        case5: w_cmd(yh+0x0a);           //按動5次,ri

  275.                   //write_1602com(0x0f);

  276.                      break;

  277.        case6: w_cmd(yh+0x07);           //按動6次,yue

  278.                   //write_1602com(0x0f);

  279.                      break;

  280.        case7: w_cmd(yh+0x04);           //按動7次,nian

  281.                   //write_1602com(0x0f);

  282.                      break;

  283.        case8:

  284.                      w_cmd(0x0c);             //按動到第8次,設(shè)置光標(biāo)不閃爍

  285.                      TR0=1;//打開定時器

  286.         temp=(miao)/10*16+(miao)%10;

  287.                 write_1302(0x8e,0x00);

  288.                 write_1302(0x80,0x00|temp);//miao數(shù)據(jù)寫入DS1302

  289.                 write_1302(0x8e,0x80);

  290.            break;                                                                                                      

  291.                      

  292.        }


  293.        }


  294.        }

  295. //------------------------------加鍵key2----------------------------         

  296.        if(key1n!=0)                     //當(dāng)key1按下以下。再按以下鍵才有效(按鍵次數(shù)不等于零)

  297.        {


  298.        if(key2==0)                     //上調(diào)鍵

  299.        {

  300.        delay(10);

  301.        if(key2==0)

  302.        {

  303. //  buzzer=0;                      //蜂鳴器短響一次

  304. //  delay(20);

  305. //  buzzer=1;

  306.        while(!key2);

  307.        switch(key1n)

  308.        {

  309.        case1:miao++;                  //設(shè)置鍵按動1次,調(diào)秒

  310.               if(miao==60)

  311.                      miao=0;           

  312.                      write_sfm(0x08,miao);   

  313.                      temp=(miao)/10*16+(miao)%10;

  314.                    write_1302(0x8e,0x00);

  315.                    write_1302(0x80,temp);   

  316.                    write_1302(0x8e,0x80);

  317.                      w_cmd(er+0x09);

  318.                      //write_1602com(0x0b);

  319.                      break;

  320.        case2:fen++;

  321.               if(fen==60)

  322.                      fen=0;

  323.                      write_sfm(0x05,fen);         

  324.                      temp=(fen)/10*16+(fen)%10;  

  325.                    write_1302(0x8e,0x00);      

  326.                    write_1302(0x82,temp);      

  327.                    write_1302(0x8e,0x80);      

  328.                      w_cmd(er+6);     

  329.                      break;

  330.        case3:shi++;

  331.               if(shi==24)

  332.                      shi=0;

  333.                      write_sfm(2,shi);            

  334.                      temp=(shi)/10*16+(shi)%10;   

  335.                    write_1302(0x8e,0x00);      

  336.                    write_1302(0x84,temp);     

  337.                    write_1302(0x8e,0x80);      

  338.                      w_cmd(er+3);      

  339.                      break;

  340.        case4:week++;

  341.               if(week==8)

  342.                      week=1;

  343.            w_cmd(yh+0x0C) ;   

  344.                      write_week(week);      

  345.            temp=(week)/10*16+(week)%10;

  346.                    write_1302(0x8e,0x00);      

  347.                    write_1302(0x8a,temp);      

  348.                    write_1302(0x8e,0x80);      

  349.                      w_cmd(yh+0x0e);

  350.                      break;

  351.        case5:ri++;

  352.               if(ri==32)

  353.                      ri=1;

  354.                      write_nyr(9,ri);            

  355.                      temp=(ri)/10*16+(ri)%10;   

  356.                    write_1302(0x8e,0x00);     

  357.                    write_1302(0x86,temp);      

  358.                    write_1302(0x8e,0x80);      

  359.                      w_cmd(yh+10);      

  360.                      break;

  361.        case6:yue++;

  362.               if(yue==13)

  363.                      yue=1;

  364.                      write_nyr(6,yue);            

  365.                      temp=(yue)/10*16+(yue)%10;  

  366.                    write_1302(0x8e,0x00);      

  367.                    write_1302(0x88,temp);      

  368.                    write_1302(0x8e,0x80);      

  369.                      w_cmd(yh+7);      

  370.                      break;

  371.        case7:nian++;

  372.                if(nian==100)

  373.                      nian=0;

  374.                      write_nyr(3,nian);            

  375.            temp=(nian)/10*16+(nian)%10;  

  376.                    write_1302(0x8e,0x00);      

  377.                    write_1302(0x8c,temp);

  378.                    write_1302(0x8e,0x80);      

  379.                      w_cmd(yh+4);      

  380.                      break;

  381.                      


  382.        }


  383.        }


  384.        }

  385.        //------------------減鍵key3,各句功能參照'加鍵'注釋---------------

  386.        if(key3==0)

  387.        {

  388.        delay(10);                        //調(diào)延時,消抖動

  389.        if(key3==0)

  390.        {

  391. //   buzzer=0;                       //蜂鳴器短響一次

  392. //   delay(20);

  393. //   buzzer=1;

  394.        while(!key3);

  395.        switch(key1n)

  396.        {

  397.               case 1:miao--;

  398.                  if(miao==-1)

  399.                          miao=59;

  400.                          write_sfm(0x08,miao);

  401.                 temp=(miao)/10*16+(miao)%10;

  402.                        write_1302(0x8e,0x00);     

  403.                        write_1302(0x80,temp);   

  404.                        write_1302(0x8e,0x80);   

  405.                          w_cmd(er+0x09);   

  406.                          //write_1602com(0x0b);

  407.                          break;

  408.               case 2:fen--;

  409.                      if(fen==-1)

  410.                             fen=59;

  411.                          write_sfm(5,fen);

  412.                          temp=(fen)/10*16+(fen)%10;

  413.                        write_1302(0x8e,0x00);

  414.                        write_1302(0x82,temp);

  415.                         write_1302(0x8e,0x80);

  416.                          w_cmd(er+6);

  417.                          break;

  418.               case 3:shi--;

  419.                       if(shi==-1)

  420.                             shi=23;

  421.                      write_sfm(2,shi);

  422.                      temp=(shi)/10*16+(shi)%10;

  423.                    write_1302(0x8e,0x00);

  424.                    write_1302(0x84,temp);

  425.                    write_1302(0x8e,0x80);

  426.                      w_cmd(er+3);

  427.                      break;

  428.               case 4:week--;

  429.                             if(week==0)

  430.                                    week=7;

  431.            w_cmd(yh+0x0C);

  432.                  write_week(week);

  433.                      temp=(week)/10*16+(week)%10;

  434.                    write_1302(0x8e,0x00);

  435.                    write_1302(0x8a,temp);

  436.                    write_1302(0x8e,0x80);

  437.                      w_cmd(yh+0x0e);

  438.                      break;

  439.               case 5:ri--;

  440.                             if(ri==0)

  441.                                    ri=31;

  442.                      write_nyr(9,ri);

  443.                      temp=(ri)/10*16+(ri)%10;//十進(jìn)制轉(zhuǎn)換成DS1302要求的DCB碼

  444.                    write_1302(0x8e,0x00);//允許寫,禁止寫保護(hù)

  445.                    write_1302(0x86,temp);//向DS1302內(nèi)寫日期寄存器86H寫入調(diào)整后的日期數(shù)據(jù)BCD碼

  446.                    write_1302(0x8e,0x80);//打開寫保護(hù)

  447.                      w_cmd(yh+10);//因為設(shè)置液晶的模式是寫入數(shù)據(jù)后,指針自動加一,所以需要光標(biāo)回位

  448.                      break;

  449.               case 6:yue--;

  450.                             if(yue==0)

  451.                                    yue=12;

  452.                      write_nyr(6,yue);

  453.                      temp=(yue)/10*16+(yue)%10;//十進(jìn)制轉(zhuǎn)換成DS1302要求的DCB碼

  454.                    write_1302(0x8e,0x00);//允許寫,禁止寫保護(hù)

  455.                    write_1302(0x88,temp);//向DS1302內(nèi)寫月份寄存器88H寫入調(diào)整后的月份數(shù)據(jù)BCD碼

  456.                    write_1302(0x8e,0x80);//打開寫保護(hù)

  457.                      w_cmd(yh+7);//因為設(shè)置液晶的模式是寫入數(shù)據(jù)后,指針自動加一,所以需要光標(biāo)回位

  458.                      break;     

  459.               case 7:nian--;

  460.                if(nian==-1)

  461.                      nian=99;

  462.                      write_nyr(3,nian);

  463.         temp=(nian)/10*16+(nian)%10;//十進(jìn)制轉(zhuǎn)換成DS1302要求的DCB碼

  464.                    write_1302(0x8e,0x00);//允許寫,禁止寫保護(hù)

  465.                    write_1302(0x8c,temp);//向DS1302內(nèi)寫年份寄存器8cH寫入調(diào)整后的年份數(shù)據(jù)BCD碼

  466.                    write_1302(0x8e,0x80);//打開寫保護(hù)

  467.                      w_cmd(yh+4);//因為設(shè)置液晶的模式是寫入數(shù)據(jù)后,指針自動加一,所以需要光標(biāo)回位

  468.                      break;

  469.                      

  470.                            

  471.        }


  472.        }


  473.        }


  474.        }


  475. }

  476. /***************"TO中斷"初始********************/

  477. void intrupt()                  //"TO中斷"初始

  478. {

  479. TMOD=0x01;                             //選擇16位定時器0x01

  480. EA=1;                                        //開總中斷

  481. ET0=1;                                      //開“T0”中斷允許位

  482. TH0=(65536-50000)/256;

  483. TL0=(65536-50000)%256;           //定時器裝初值

  484. TR0=1;

  485. }

  486. /*void init()                             //定時器、計數(shù)器設(shè)置函數(shù)

  487. {

  488.        TMOD=0x11;                      //指定定時/計數(shù)器的工作方式為3

  489.        TH0=0;                           //定時器T0的高四位=0

  490.        TL0=0;                           //定時器T0的低四位=0

  491.        EA=1;                            //系統(tǒng)允許有開放的中斷

  492.        ET0=1;                           //允許T0中斷

  493.        TR0=1;                           //開啟中斷,啟動定時器


  494. }*/

  495. /***************主函數(shù)********************/

  496. void main()

  497. {

  498.        lcd_init();                          //調(diào)用液晶屏初始化子函數(shù)

  499.        ds1302_init();                      //調(diào)用DS1302時鐘的初始化子函數(shù)

  500.        intrupt();

  501. //   system_Ini();

  502. //     led=0;                            //打開LCD的背光電源

  503. //   buzzer=0;                        //蜂鳴器長響一次

  504. //    delay(80);

  505. //   buzzer=1;

  506.        while(1)                          //無限循環(huán)下面的語句:

  507.        {

  508.                      

  509.    keyscan();                        //調(diào)用鍵盤掃描子函數(shù)

  510.       

  511.     }

  512. }


  513. void timer0() interrupt 1                 //取得并顯示日歷和時間

  514. {

  515.       

  516.   Init18b20();

  517.   system_Ini();

  518.   GetTemp();           //溫度傳感器DS18b2初始化子函數(shù),在頭文件中

  519.   flag1=Temperature;

  520. //  flag=ReadTemperature();      //將18b2頭文件運行返回的函數(shù)結(jié)果送到變量flag中,用于顯示

  521.   //讀取秒時分周日月年七個數(shù)據(jù)(DS1302的讀寄存器與寫寄存器不一樣):

  522.    miao = BCD_Decimal(read_1302(0x81));

  523.        fen= BCD_Decimal(read_1302(0x83));

  524.        shi  = BCD_Decimal(read_1302(0x85));

  525.        ri  = BCD_Decimal(read_1302(0x87));

  526.        yue= BCD_Decimal(read_1302(0x89));

  527.        nian=BCD_Decimal(read_1302(0x8d));

  528.        week=BCD_Decimal(read_1302(0x8b));


  529.        //顯示溫度、秒、時、分?jǐn)?shù)據(jù):

  530.    

  531.   write_temp(12,flag1);//顯示溫度,從第二行第12個字符后開始顯示

  532.   write_sfm(8,miao);//秒,從第二行第8個字后開始顯示(調(diào)用時分秒顯示子函數(shù))

  533.        write_sfm(5,fen);//分,從第二行第5個字符后開始顯示

  534.        write_sfm(2,shi);//小時,從第二行第2個字符后開始顯示

  535.       

  536.        //顯示日、月、年數(shù)據(jù):

  537.        write_nyr(9,ri);//日期,從第二行第9個字符后開始顯示

  538.   write_nyr(6,yue);//月份,從第二行第6個字符后開始顯示

  539.        write_nyr(3,nian);//年,從第二行第3個字符后開始顯示

  540.        write_week(week);


  541. }
復(fù)制代碼


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的積分獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2015-1-17 13:20 來自手機 | 只看該作者
謝謝分享,這是一個用1602號液晶屏顯示的,1302時鐘程序吧
回復(fù)

使用道具 舉報

板凳
ID:71870 發(fā)表于 2015-1-17 18:43 | 只看該作者
admin 發(fā)表于 2015-1-17 13:20
謝謝分享,這是一個用1602號液晶屏顯示的,1302時鐘程序吧

似的
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区二区日韩 | 欧美精品在线免费观看 | 天天宗合网 | 国产高清视频一区 | 欧美一级二级视频 | 天堂国产 | 香蕉婷婷 | 国产一级在线 | 国产9久| 亚洲女人天堂成人av在线 | 欧美精品一区三区 | 黄a免费网络| aaa国产大片 | 精品不卡| 国产精品视频区 | 日韩欧美国产一区二区三区 | 婷婷毛片 | 亚洲看片| 中文字幕国产视频 | 99久久精品国产麻豆演员表 | 久久久久久国产精品 | 国产精品美女一区二区 | 成人亚洲精品久久久久软件 | 亚洲精品久久久久中文字幕二区 | 精品国产高清一区二区三区 | 亚洲欧美在线一区 | 久久精品av| 九九久久免费视频 | 五月天激情综合网 | 精品国产一二三区 | 精品自拍视频在线观看 | 免费视频久久久久 | 特级做a爰片毛片免费看108 | 狠狠亚洲 | 国产高清精品一区二区三区 | 国产成人精品一区二 | 欧美日韩一区二区三区四区 | 亚洲视频三区 | 久草资源网站 | 天天看片天天干 | 中文字幕一区二区三区精彩视频 |