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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4149|回復: 0
打印 上一主題 下一主題
收起左側

單片機八位數碼管做的秒表,開機顯示hello 適合初學者

[復制鏈接]
跳轉到指定樓層
樓主
   日常小玩具,數碼管一共有八位,改著改著就只用了5位,ms級別的目前用不上; 具有 開機動畫,暫停,清零,關屏等功能;歡迎各路大神觀看,時間倉促,如有不足之處,還請輕噴!!! 感謝各位;
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include "reg51.h"
  2. #include "timer.h"

  3. sbit k1 = P1^0;
  4. sbit k2 = P1^1;
  5. sbit k3 = P1^2;
  6. sbit le = P1^7;

  7. unsigned char cp,ms,sec=58,min=29;
  8. unsigned char key1 = 0,key2 = 0,key3 = 0;
  9. unsigned char key22 = 0;
  10. unsigned char  seg[] = {0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0xff};
  11. unsigned char  seg_dot[] = {0X40,0X79,0X24,0X30,0X19,0X12,0X02,0X78,0X00,0X10};
  12. unsigned char  seg_buff[] = {0,0,0,0,0,0,0,0};
  13. unsigned char  seg_init[] ={0x89,0x86,0xC7,0xc0};
  14. void Delay10ms()                //@12.000MHz
  15. {
  16.         unsigned char i, j;

  17.         i = 20;
  18.         j = 113;
  19.         do
  20.         {
  21.                 while (--j);
  22.         } while (--i);
  23. }

  24. void t0_init()
  25. {
  26.   TMOD = 0X02;
  27.         TH0 = 0X9C;
  28.         TL0 = 0X9C;
  29.         EA = 1;
  30.         ET0 = 1;
  31. //        TR0 = 1;
  32. }

  33. void delay(unsigned int t)
  34. {                        unsigned char i;
  35.                         for(i=0;i<t;i++)
  36.                         {
  37.                         Delay10ms();
  38.                         }
  39. }

  40. void SEG_duan(unsigned char pos,unsigned char dat)
  41. {


  42.                         P0 = 0XFF;
  43.                         P0  = dat;
  44.                         P2 = 0X80 >> pos;

  45. }

  46. void seg_init1(void)
  47. {
  48.                 le = 1;
  49.                 SEG_duan(0,seg_init[0]);
  50.                 delay(1);
  51.                 SEG_duan(1,seg_init[1]);
  52.                 delay(1);
  53.                 SEG_duan(2,seg_init[2]);
  54.                 delay(1);
  55.                 SEG_duan(3,seg_init[2]);
  56.                 delay(1);
  57.                 SEG_duan(4,seg_init[3]);
  58.                 delay(1);
  59.                 SEG_duan(5,0XBF);
  60.                 delay(1);
  61.                 SEG_duan(6,0XBF);
  62.                 delay(1);
  63.                 SEG_duan(7,0XBF);
  64.                 delay(1);

  65. }

  66. void tran_seg()
  67. {
  68.         seg_buff[0] = min/10;
  69.         seg_buff[1] = min%10;
  70.         seg_buff[2] = 0xbf;
  71.         seg_buff[3] = sec/10;
  72.         seg_buff[4] = sec%10;
  73.         seg_buff[5] = 0xff;

  74. }

  75. void  Dis_p()  //時間顯示
  76. {                       
  77.                        
  78.                  tran_seg();
  79.                  SEG_duan(0,seg[seg_buff[0]]);
  80.                  delay(1);
  81.                  SEG_duan(1,seg[seg_buff[1]]);
  82.                  delay(1);
  83.                  SEG_duan(2,seg_buff[2]);
  84.                  delay(1);
  85.                  SEG_duan(3,seg[seg_buff[3]]);
  86.                  delay(1);
  87.                  SEG_duan(4,seg[seg_buff[4]]);
  88.                  delay(1);               
  89. }



  90. void  Dis_p1()  //關閉數碼管;
  91. {                       
  92.                        
  93.                        
  94.                  SEG_duan(0,seg[10]);
  95.                  delay(1);
  96.                  SEG_duan(1,seg[10]);
  97.                  delay(1);
  98.                  SEG_duan(2,seg[10]);
  99.                  delay(1);
  100.                  SEG_duan(3,seg[10]);
  101.                  delay(1);
  102.                  SEG_duan(4,seg[10]);
  103.                  delay(1);               
  104. }

  105. void t0_isr(void) interrupt 1
  106. {
  107.         cp++; //100us
  108.         if(cp==50)
  109.         {
  110.         ms++;
  111.         cp = 0;
  112.         }
  113.         if(ms == 200)
  114.         {
  115.         sec++;
  116.         ms = 0;
  117.         }
  118.         if(sec > 59)
  119.         {
  120.         sec = 0;
  121.         min++;
  122.         }
  123.         if(min > 59)
  124.          min = 0;
  125. }
  126. //============按鍵按下第一次時,選擇
  127. void scanf_key1()
  128. {
  129.                 if(k1 == 0)   
  130.                 key1 = 1;
  131.                 if(k1 == 1 && key1 == 1)  //暫停;
  132.                 {
  133.                        
  134.                         TR0 = ~ TR0;
  135.                         key1 = 0;
  136.                        
  137.                 }
  138.                
  139.                
  140.                 if(k2 == 0)          // 清零  瞬時性
  141.                 key2 = 1;
  142.                 if(k2 == 1 && key2 == 1)
  143.                 {       
  144.                         TR0 =  1;
  145.                         SEG_duan(0,min = 0);       
  146.                         SEG_duan(2,sec = 0);       
  147.                         SEG_duan(4,ms = 0);       
  148.                        
  149.                         key2 = 0;
  150.                         key22 = 1;
  151.                
  152.                 }       
  153.                
  154.                 if(k3 == 0)           // ka
  155.                 key3 = 1;
  156.                 if(k3 == 1 && key3 == 1)
  157.                 {       
  158.                         TR0 = 0;
  159.                         key22 = 2;
  160. ……………………

  161. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
2.23.rar (62.64 KB, 下載次數: 51)



評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜精品久久久久久久久久久久久 | 国产欧美日韩综合精品一区二区 | 国产亚洲精品一区二区三区 | 中文字幕一二三 | 国产视频福利一区 | 欧美在线a| 91精品国产综合久久福利软件 | 一级毛片播放 | 亚洲人成人一区二区在线观看 | 天天草天天 | 精品一区二区在线看 | 91在线精品秘密一区二区 | 久久久久久亚洲国产精品 | 国产高清视频在线观看播放 | 日本欧美国产在线 | 日韩欧美中文 | 在线观看深夜视频 | 久久一二 | 麻豆精品国产91久久久久久 | 国产精品不卡视频 | 99re在线视频免费观看 | 成人高清在线视频 | 全免费a级毛片免费看视频免 | 一本岛道一二三不卡区 | 精品久久99 | 91黄色免费看 | 国产免费va| 成人激情视频在线播放 | 精品一区二区三区在线观看国产 | 在线国产中文字幕 | 视频精品一区二区三区 | 中文字幕成人在线 | 亚洲人成在线播放 | 羞羞视频在线网站观看 | 国产男女猛烈无遮掩视频免费网站 | 青草青草久热精品视频在线观看 | 在线观看免费av网 | 日日操夜夜操视频 | 涩在线 | 欧美大片久久久 | 中文字幕一区二区三区在线观看 |