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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機如何用雙位數碼管顯示計數?目前程序總是一閃而過

[復制鏈接]
跳轉到指定樓層
樓主
如題 ,求大神幫忙修改,原想法是從1到60計數,現在個位數能正常,但十位數就是一閃而過,從閃過的數字看是想要的,但是現在怎么修改一下,不要閃,能停留到下個數更新


單片機源程序如下:
  1. #include "stc15.h"
  2. #define  uchar unsigned char
  3. #define  uint unsigned int
  4. #define  SECOND 100
  5. uchar  tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};   //定義共陽極字段碼表(1-9-0)
  6. uint count=0;
  7. uint jishu=0;
  8. uint shiwei;
  9. uint gewei;
  10. sbit L1=P3^5;
  11. sbit L2=P3^6;
  12. sbit L3=P3^7;
  13. sbit miao1=P4^0;
  14. sbit miao2=P4^1;
  15. sbit fen1=P4^2;
  16. sbit fen2=P4^3;
  17. sbit shi1=P4^4;
  18. sbit shi2=P4^5;
  19. struct time{
  20.   uchar hour;
  21.         uchar min;
  22.         uchar sec;

  23. };
  24. struct time clocktime _at_ 0x30;
  25. /***********************************延時函數*********************************************/
  26. void delay(uchar s){
  27. uchar k,z;
  28.         for(k=0;k<s;k++)
  29.         for(z=110;z>0;z--);
  30. }
  31. /************************************T0中斷函數*****************************************/
  32. timer0() interrupt 1 using 2{
  33. TH0=0xd8;
  34.         TL0=0xf0;
  35.         if(++count == SECOND){
  36.         shiwei=jishu/10;
  37.                 gewei=jishu%10;
  38.                 if(shiwei>=1){
  39.                   miao1=1;
  40.                         miao2=0;
  41.                         P2=tab[shiwei];
  42.                         delay(1000);
  43.                         miao2=1;
  44.                         miao1=0;
  45.                         P2=tab[gewei];
  46.                         delay(1000);
  47.                 }
  48.                 else{
  49.                 miao1=0;
  50.                         P2=tab[gewei];
  51. //                        delay(10);
  52.                 }

  53.                 jishu=jishu+1;
  54.                
  55.                 count=0;
  56.                 L1=~L1;

  57.                

  58.                 if(++clocktime.sec == 60){
  59.                 clocktime.sec=0;L2=~L2;
  60.                         if(++clocktime.min==60){
  61.                         clocktime.min=0;L3=~L3;
  62.                                 if(++clocktime.hour==24){
  63.                                 clocktime.hour=0;P3=0x00;
  64.                                 }
  65.                         }
  66.                 }
  67.         }
  68. }
  69. /************************************主函數*********************************************/
  70. void main(){
  71.   TMOD=0x01;
  72.         TH0=0xd8;TL0=0xf0;
  73.         IE=0x82;TR0=1;

  74.         while(1)
  75.         {

  76.         }
  77.       

  78. }
復制代碼


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

使用道具 舉報

沙發
ID:277550 發表于 2019-10-15 20:20 | 只看該作者
十位顯示后,延時一下。。。。。。。。。另外,不應該在中斷中寫較多的邏輯代碼


~~~~~~~~~~~~~~~~~~~~~~~
回復

使用道具 舉報

板凳
ID:88481 發表于 2019-10-15 22:36 | 只看該作者
delay()延時不應放在中斷內,顯示會受中斷打斷
回復

使用道具 舉報

地板
ID:624801 發表于 2019-10-16 00:12 | 只看該作者
調試的時候按Ctrl+f5
回復

使用道具 舉報

5#
ID:623789 發表于 2019-10-16 00:29 | 只看該作者
P2=tab[shiwei];
delay(1000);
miao2=1;
miao1=0;
P2=tab[gewei];
你這里P2先賦值十位,延時一陣子就賦值個位,個位把十位覆蓋了
回復

使用道具 舉報

6#
ID:123289 發表于 2019-10-16 23:15 | 只看該作者
能畫出流程圖嗎?估計你畫不出來。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩一及片 | 精品欧美一区二区在线观看视频 | 久久久91精品国产一区二区三区 | 最新免费av网站 | 国产精品午夜电影 | 在线一区 | 亚洲一区二区三区免费 | 欧美日韩中文字幕在线 | 久草视 | 久久久久亚洲精品国产 | 久久久精品一区二区三区四季av | 日本亚洲欧美 | 91精品久久久久久久久久入口 | 日本精品视频 | 黄网免费看| m豆传媒在线链接观看 | 日韩欧美网 | 亚洲精品国产成人 | 精品久久电影 | 日韩精品成人 | 久久激情网 | 国产在线播 | 日韩一区二区在线播放 | 在线国产一区 | 日韩免费高清视频 | 精品国产乱码久久久久久丨区2区 | 最新中文字幕第一页视频 | 91一区二区三区在线观看 | 精精国产xxxx视频在线 | 国产成人精品区一区二区不卡 | 韩国av电影网| 精品久久亚洲 | 视频一区 国产精品 | 国产在线高清 | 国产精品一二三区 | 久久精品99久久 | 久久综合久久综合久久 | 成人影院免费视频 | 狠狠干网站 | 综合五月| 激情毛片 |