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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

ds1302時(shí)鐘數(shù)碼管數(shù)字顯示的很亂 怎么辦 程序也沒有錯(cuò)誤

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define MAIN_Fosc    11059200UL

  4. /*自定義類型明*/
  5. typedef unsigned char INT8U;
  6. typedef unsigned char uchar;

  7. typedef unsigned int INT16U;
  8. typedef unsigned int uint;
  9. /*聲明硬件的接口*/
  10. sbit TSCLK = P1^0;//時(shí)鐘線
  11. sbit TIO = P1^1;  //數(shù)據(jù)線
  12. sbit TRST = P1^2; //使能端

  13. sbit DU = P2^6;//段選
  14. sbit WE = P2^7;//位選
  15. /*共陽極數(shù)碼管段選碼*/
  16. uchar code table[]={
  17. //         0                1           2          3                  4                5
  18.         0xc0,  0xf9,  0xa4,  0xb0,  0x99,  0x92,  
  19. //         6                 7                8           9          .                 關(guān)顯示
  20.     0x82,  0xf8,  0x80,  0x90,  0x7f,   0xff
  21. };
  22. /*位選碼*/
  23. uchar code T_COM[] = {
  24. //1      2     3       4     5      6
  25. 0x01,  0x02,  0x04,  0x08,  0x10,  0x20
  26. };
  27. /*延時(shí)函數(shù)*/
  28. void Delay_Ms(INT16U ms)
  29. {
  30.   INT16U i;
  31.   do{
  32.             i = MAIN_Fosc/96000;
  33.           while(--i);
  34.     }while(--ms);
  35. }
  36. /*顯示函數(shù)*/
  37. void Display(uchar Hour,Min,Sec)
  38. {
  39.    //第一位數(shù)碼管 小時(shí)十位
  40.    DU = 0;
  41.    P0 = table[Hour/10];
  42.    DU = 1;
  43.    DU = 0;

  44.    WE = 0;
  45.    P0 = T_COM[0];
  46.    WE = 1;
  47.    WE = 0;
  48.    Delay_Ms(3);
  49.    //第二位數(shù)碼管 小時(shí)個(gè)位
  50.    DU = 0;
  51.    P0 = table[Hour%10] | 0x7f;// 0111 1111 顯示小數(shù)點(diǎn)
  52.    DU = 1;
  53.    DU = 0;

  54.    WE = 0;
  55.    P0 = T_COM[1];
  56.    WE = 1;
  57.    WE = 0;
  58.    Delay_Ms(3);
  59.    //第三位數(shù)碼管
  60.    DU = 0;
  61.    P0 = table[Min/10];
  62.    DU = 1;
  63.    DU = 0;

  64.    WE = 0;
  65.    P0 = T_COM[2];
  66.    WE = 1;
  67.    WE = 0;
  68.    Delay_Ms(3);
  69.    //第四位數(shù)碼管
  70.    DU = 0;
  71.    P0 = table[Min%10] | 0x7f;
  72.    DU = 1;
  73.    DU = 0;

  74.    WE = 0;
  75.    P0 = T_COM[3];
  76.    WE = 1;
  77.    WE = 0;
  78.    Delay_Ms(3);
  79.    //第五位數(shù)碼管
  80.    DU = 0;
  81.    P0 = table[Sec/10];
  82.    DU = 1;
  83.    DU = 0;
  84.    
  85.    WE = 0;
  86.    P0 = T_COM[4];
  87.    WE = 1;
  88.    WE = 0;
  89.    Delay_Ms(3);
  90.    //第六位數(shù)碼管
  91.    DU = 0;
  92.    P0 = table[Sec%10];
  93.    DU = 1;
  94.    DU = 0;

  95.    WE = 0;
  96.    P0 = T_COM[5];
  97.    WE = 1;
  98.    WE = 0;
  99.    Delay_Ms(3);
  100. }
  101. //寫DS1302
  102. void Writer_DS1302_DAT(uchar cmd,uchar dat)         //命令和數(shù)據(jù)需要給出
  103. {
  104.     uchar i;
  105.         TRST = 0;
  106.         TSCLK = 0;
  107.         TRST = 1;
  108.         for(i = 0; i < 8; i++)
  109.           {
  110.             TSCLK = 0;
  111.                 TIO = cmd & 0x01;
  112.                 TSCLK = 1;//拉高時(shí)鐘總線接收數(shù)據(jù)
  113.             dat >>= 1;//右移一位 往最低位移 左移往最高位移          從低位開始發(fā)送 需右移 把八位數(shù)據(jù)出  從高位發(fā)送需左移
  114.       }
  115.    for(i = 0; i < 8; i++)
  116.       {
  117.          TSCLK = 0;
  118.                  TIO  = dat & 0x01;
  119.                  TSCLK = 1;
  120.                  dat >>= 1;  
  121.       }
  122. }
  123. //讀DS1302數(shù)據(jù)
  124. uchar Read_DS1302_DAT(uchar cmd)
  125. {
  126.    uchar i, dat;
  127.    TRST = 0;
  128.    TSCLK = 0;
  129.    TRST = 1;
  130.    for(i = 0;i < 8; i++)// 寫入命令
  131.    {
  132.                TSCLK = 0;
  133.                 TIO = cmd & 0x01;
  134.                 TSCLK = 1;
  135.                 dat >>= 1; //
  136.    }
  137.    for(i = 0; i < 8 ; i++)// 讀八次
  138.    {
  139.        TSCLK  = 0;
  140.            dat >>= 1;
  141.            if(TIO) dat |= 0x80;
  142.            TSCLK = 1;
  143.         }
  144.         return dat;
  145. }

  146. //數(shù)據(jù)轉(zhuǎn)BCD
  147. uchar Dat_Chg_BCD(uchar dat)
  148. {
  149.      uchar dat1,dat2;
  150.          dat1 = dat / 10;
  151.          dat2 = dat % 10;
  152.          dat2 = dat2 + dat1 * 16;
  153.          return dat2;
  154. }

  155. //BCD轉(zhuǎn)數(shù)據(jù)
  156. uchar BCD_Chg_Dat(uchar dat)
  157. {
  158.     uchar dat1,dat2;
  159.         dat1 = dat / 16;
  160.         dat2 = dat % 16;
  161.         dat2 = dat2 + dat1 * 10;
  162.         return dat2;
  163. }
  164. void main()
  165. {
  166.    uchar i;
  167.    uchar Sec,Min,Hour;
  168.    Writer_DS1302_DAT(0x8e, 0);
  169.    Writer_DS1302_DAT(0x80,Dat_Chg_BCD(30));
  170.    Writer_DS1302_DAT(0x82,Dat_Chg_BCD(15));
  171.    Writer_DS1302_DAT(0x84,Dat_Chg_BCD(19));
  172.    Writer_DS1302_DAT(0x8e,0x80);
  173.    while(1)
  174.    {
  175.      Writer_DS1302_DAT(0x8e,0);
  176.          Sec = BCD_Chg_Dat(Read_DS1302_DAT(0x81));
  177.          Min = BCD_Chg_Dat(Read_DS1302_DAT(0x83));
  178.          Hour = BCD_Chg_Dat(Read_DS1302_DAT(0x85));
  179.          Writer_DS1302_DAT(0x8e,0x80);
  180.          for(i = 0;i < 50; i++)
  181.          {
  182.             Display(Hour,Min,Sec);
  183.          }
  184.      }
  185. }
復(fù)制代碼

為什么仿真的時(shí)候 數(shù)碼管顯示數(shù)字很亂

捕獲3.PNG (59.75 KB, 下載次數(shù): 46)

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

使用道具 舉報(bào)

沙發(fā)
ID:111634 發(fā)表于 2018-7-30 20:53 | 只看該作者
本帖最后由 zl2168 于 2018-7-31 09:49 編輯

實(shí)例94  模擬電子鐘(由80C51定時(shí)器產(chǎn)生秒時(shí)基)
Proteus仿真一下,確認(rèn)有效。
實(shí)例94 模擬電子鐘(由80C51定時(shí)器產(chǎn)生秒時(shí)基).rar (43.05 KB, 下載次數(shù): 6)

以上摘自張志良編著《80C51單片機(jī)仿真設(shè)計(jì)實(shí)例教程——基于Keil CProteus》清華大學(xué)出版社ISBN 978-7-302-41682-1內(nèi)有常用的單片機(jī)應(yīng)用100案例,用于仿真實(shí)驗(yàn)操作,電路與程序真實(shí)可靠可信可行。書中電路和程序設(shè)計(jì)有詳細(xì)說明,程序語句條條有注解。
回復(fù)

使用道具 舉報(bào)

板凳
ID:380969 發(fā)表于 2018-7-31 00:59 | 只看該作者
位選碼和段選碼和延遲
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人一区av偷拍 | 国产成人精品一区二区三区四区 | 在线色网站| 久久九七 | 国产免费黄网 | 国产亚洲二区 | 亚洲精品99| 日本字幕在线观看 | 97视频久久 | 国产精品视频一区二区三区 | 欧美xxxx性xxxxx高清 | 久久国产精品一区二区三区 | 欧美小视频在线观看 | 在线电影日韩 | 操久久 | 老头搡老女人毛片视频在线看 | 久久久爽爽爽美女图片 | 黄色一级大片在线免费看产 | 国产欧美一区二区三区久久人妖 | 亚洲国产成人精品女人久久久 | 国产精品久久久久久亚洲调教 | 亚洲草草视频 | 日韩在线视频网址 | 免费观看一级毛片 | 丁香五月缴情综合网 | 久久精品一区二区三区四区 | 蜜桃av一区二区三区 | 久久久久综合 | 玖玖在线免费视频 | 精品毛片视频 | 亚洲精选一区 | 中文字幕日韩欧美一区二区三区 | 亚洲精品黑人 | 超碰免费在 | 欧美一二三| 久久亚洲一区 | 澳门永久av免费网站 | 日韩在线资源 | 夫妻午夜影院 | 精品国产一区二区三区久久狼黑人 | 综合久久久久久久 |