欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機控制74hc595數碼管靜態顯示會閃?

查看數: 4570 | 評論數: 7 | 收藏 1
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2019-3-18 07:51

正文摘要:

#include<reg51.h> #define uchar unsigned char #define uint unsigned int uchar count,second,min; sbit lclk=P1^0; sbit sclk=P1^1; sbit Data=P1^2; uchar dis[4]; uchar code displayhex[ ...

回復

ID:476644 發表于 2019-4-5 14:58
延時函數可以調到100微秒
ID:366559 發表于 2019-4-5 10:36
有時候proteus因為仿真速度的問題會把實際情況下不會閃爍的動態掃描顯示成閃爍的
ID:164604 發表于 2019-4-4 20:30
wulin 發表于 2019-3-19 09:53
程序沒有大毛病,是語句排序錯誤導致閃爍和亂碼。你對比一下就知道哪里錯了。

謝謝,非常感謝!
ID:485458 發表于 2019-3-19 21:20
延時調小一點
ID:424598 發表于 2019-3-19 16:12
閃爍的話,調整下延時,我之前有遇到同樣的問題
ID:213173 發表于 2019-3-19 09:53
程序沒有大毛病,是語句排序錯誤導致閃爍和亂碼。你對比一下就知道哪里錯了。



  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar count,second,min;
  5. sbit lclk=P1^0;
  6. sbit sclk=P1^1;
  7. sbit Data=P1^2;
  8. uchar dis[4];
  9. uchar code displayhex[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
  10.                  0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
  11. /*
  12. void delay(uint z)
  13. {
  14.    uint x,y;
  15.    for(x=z;x>0;x--)
  16.       for(y=100;y>0;y--);
  17. }*/
  18. void send595(uchar *pdat)
  19. {
  20.         uchar i,j;
  21.         j=0x80;
  22.         for(i=0;i<8;i++)
  23.         {
  24.                 if((*pdat)&j) Data=1;
  25.                 else Data=0;
  26. //                sclk=0;
  27.                 sclk=1;
  28.                 sclk=0;
  29.                 j>>=1;
  30.         }
  31. }
  32. void display595( uchar *pdat)
  33. {
  34.         uchar i;
  35.         for(i=0;i<4;i++)
  36.         {
  37. //                lclk=0;
  38.                 send595(&displayhex[*(pdat+i)]);
  39.         }
  40.         lclk=0;
  41.         lclk=1;
  42. }
  43. void init()
  44. {
  45.         TMOD=0X01;
  46.         TH0=(65536-50000)/256;
  47.         TL0=(65536-50000)%256;
  48.         EA=1;
  49.         ET0=1;
  50.         TR0=1;
  51. }
  52. void main()
  53. {
  54.         init();
  55.         while(1)
  56.         {
  57.                 if(count==20)
  58.                 {
  59.                         count=0;
  60.                         second++;
  61.                         if(second==60)
  62.                         {
  63.                                 second=0;
  64.                                 min++;
  65.                                 if(min==24)
  66.                                 {
  67.                                         min=0;
  68.                                 }
  69.                         }
  70.                         dis[0]=second%10;
  71.                         dis[1]=second/10;
  72.                         dis[2]=min%10;
  73.                         dis[3]=min/10;
  74. //                        display595(dis);
  75. //                        delay(50);
  76.                 }
  77.                 display595(dis);
  78.         }
  79. }

  80. void timer0() interrupt 1
  81. {
  82.         TH0=(65536-50000)/256;
  83.         TL0=(65536-50000)%256;
  84.         count++;
  85. }
復制代碼



ID:96682 發表于 2019-3-18 22:12
樓主是不是發錯了?

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表