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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5392|回復: 2
收起左側

利用數碼管的動態顯示實現時鐘Proteus仿真程序(注釋很詳細)

[復制鏈接]
ID:841707 發表于 2020-11-13 16:43 | 顯示全部樓層 |閱讀模式
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png

單片機源程序如下:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit wei=P2^7;
  5. sbit duan=P2^6;
  6. sbit P33=P3^3;
  7. sbit P32=P3^2;
  8. int count=0;
  9. uchar smg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};  //數碼管的段碼值,0xbf對應”—“
  10. uchar weixuan[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};         //數碼管的位選信號
  11. uchar tab[8]={0,0,10,0,0,10,0,0}; //8數碼管顯示值的8個值,10是對用顯示— ;
  12. void zhuanhuan(uchar shi,uchar fen,uchar miao);

  13. void delay_ms(uint i)  //延時
  14. {
  15.   uint j;
  16.   for(;i>0;i--)
  17.   for(j=120;j>0;j--);
  18. }

  19. void main()
  20. { uchar i=0,count=0; //count用來計量1S的時間
  21.   uchar moshi=0;
  22.   uchar shi=23,fen=59,miao=55;         //定義時、分、秒變量
  23.   bit flag=0;        //正常走時,flag=0;調節時分秒時,flag=1;
  24.   while(1)
  25.   {
  26.     zhuanhuan(shi,fen,miao);  //從時分秒中分出十位,個位
  27.     for(i=0;i<8;i++)                   //數碼管動態掃描顯示
  28.         { P0=weixuan[i];wei=1;wei=0;
  29.           P0=~smg[tab[i]];duan=1;duan=0;delay_ms(1);
  30.         }
  31.         
  32.         //時分秒根據時間變化
  33.         if(flag==0) count++;   //count記錄while循環的次數,通過指令可以推斷出一次需要多少時間,次數乘以單次時間,以此計算1秒的時間
  34.         if(count==105) {miao++;count=0;} //當count==次時,時間為1秒
  35.         if(miao==60) {fen++;miao=0;}         //60秒1分鐘,60分鐘1小時,24小時歸零。
  36.     if(fen ==60) {shi++;fen=0;}
  37.     if(shi==24)         {shi=0;}
  38.         
  39.         //按鍵調節時分秒
  40.         if(P32==0)           //10ms延時,消抖處理
  41.         {delay_ms(10);
  42.          if(P32==0) {moshi++;flag=1;}        //模式1對應調時,模式2對應調分,模式3對應調秒
  43.         }
  44.         if(P33==0)          //10ms延時,消抖處理
  45.         {delay_ms(10);
  46.          if((P33==0)&(moshi==1)) shi++;        //模式1對應調時。P33按鍵只做加法運算
  47.            if((P33==0)&(moshi==2)) fen++;        //模式2對應調分
  48.          if((P33==0)&(moshi==3)) miao++;//模式3對應調秒
  49.         }
  50.         if(moshi==4) {moshi=0;flag=0;}//第四次按下模式鍵,模式歸零
  51.         while((P32==0)|(P33==0)); //等待按鍵釋放
  52. }
  53. }

  54. void zhuanhuan(uchar shi,uchar fen,uchar miao)
  55. {
  56.   tab[0]=shi/10;
  57.   tab[1]=shi%10;
  58.   tab[3]=fen/10;
  59.   tab[4]=fen%10;
  60.   tab[6]=miao/10;
  61.   tab[7]=miao%10;
  62. }
復制代碼

所有資料51hei提供下載:
利用數碼管的動態顯示實現時鐘.rar (85.69 KB, 下載次數: 77)

評分

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

查看全部評分

回復

使用道具 舉報

ID:937858 發表于 2021-6-15 22:44 | 顯示全部樓層
互相學習,很好的例子
回復

使用道具 舉報

ID:938891 發表于 2021-6-19 13:25 | 顯示全部樓層
非常棒的例子,值得學習
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 81精品国产乱码久久久久久 | 久久免费观看一级毛片 | 亚洲成人精品 | h片免费在线观看 | 欧美日韩亚洲三区 | 免费成人av | 久在线观看 | 午夜合集| 91精品一区 | 久久久久久久久国产成人免费 | 91在线观看 | 91亚洲精选 | 美女天天操 | 久久久久久久av麻豆果冻 | 久久精品国产久精国产 | 久久亚洲国产精品 | 精精国产xxxx视频在线播放 | 99精品久久久国产一区二区三 | 99re热精品视频 | 久久69精品久久久久久久电影好 | 国产成人jvid在线播放 | 天天综合干 | 在线视频99 | 理论片87福利理论电影 | 精品国产乱码久久久 | 成年人视频在线免费观看 | 在线欧美一区二区 | 国产一区精品在线 | a黄毛片 | 欧美性猛交一区二区三区精品 | 欧洲视频一区 | 精品久久久久久一区二区 | 韩国电影久久 | 亚洲欧美成人影院 | 欧美一区二区三区视频在线观看 | 黄色a三级| 日韩视频一区二区 | 日韩欧美大片 | 日韩一区二区三区四区五区 | 欧美一级α片 | 性做久久久久久免费观看欧美 |