找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索

單片機(jī)控制74hc595數(shù)碼管靜態(tài)顯示會(huì)閃?

查看數(shù): 4551 | 評(píng)論數(shù): 7 | 收藏 1
關(guān)燈 | 提示:支持鍵盤翻頁(yè)<-左 右->
    組圖打開中,請(qǐng)稍候......
發(fā)布時(shí)間: 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[ ...

回復(fù)

ID:476644 發(fā)表于 2019-4-5 14:58
延時(shí)函數(shù)可以調(diào)到100微秒
ID:366559 發(fā)表于 2019-4-5 10:36
有時(shí)候proteus因?yàn)榉抡嫠俣鹊膯栴}會(huì)把實(shí)際情況下不會(huì)閃爍的動(dòng)態(tài)掃描顯示成閃爍的
ID:164604 發(fā)表于 2019-4-4 20:30
wulin 發(fā)表于 2019-3-19 09:53
程序沒有大毛病,是語(yǔ)句排序錯(cuò)誤導(dǎo)致閃爍和亂碼。你對(duì)比一下就知道哪里錯(cuò)了。

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



  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. }
復(fù)制代碼



ID:96682 發(fā)表于 2019-3-18 22:12
樓主是不是發(fā)錯(cuò)了?

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

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

快速回復(fù) 返回頂部 返回列表