標(biāo)題:
51單片機(jī)74hc164數(shù)碼管動態(tài)顯示程序與Proteus仿真圖
[打印本頁]
作者:
13028461206
時間:
2022-1-11 13:46
標(biāo)題:
51單片機(jī)74hc164數(shù)碼管動態(tài)顯示程序與Proteus仿真圖
這是51單片機(jī)驅(qū)動的74hc164數(shù)碼管動態(tài)顯示,給大家分享一下,是個新手小白,代碼有點(diǎn)粗糙。求大神指導(dǎo)下面獻(xiàn)上代碼
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif
(82.16 KB, 下載次數(shù): 43)
下載附件
2022-1-11 20:37 上傳
單片機(jī)源程序如下:
#include<reg52.h>
#include<intrins.h>
#include<math.h>
#define LED P1
#define u8 unsigned char
#define u16 unsigned int
sbit A1=P2^0;
sbit CLK1=P2^1;
sbit WEI1=P3^6;
sbit A2=P3^2;
sbit CLK2=P3^3;
sbit WEI2=P3^7;
sbit A3=P0^0;
sbit CLK3=P0^1;
sbit WEI3=P3^5;
sbit k=P2^2;
sbit ii=P2^3;
u16 time=0;
u16 temp;
void Timer0Init()
{
TMOD|=0X01;//選擇為定時器0模式,工作方式1,僅用TR0打開啟動。
TH0=0XFC; //給定時器賦初值,定時1ms
TL0=0X18;
ET0=1;//打開定時器0中斷允許
EA=1;//打開總中斷
TR0=1;//打開定時器
}
void Time_baiwei()
{
switch(time/100)
{
case(0):
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
break;
case(1):
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
break;
case(2):
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
break;
case(3):
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
break;
case(4):
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
break;
case(5):
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
break;
case(6):
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
break;
case(7):
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
break;
case(8):
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
break;
case(9):
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=0;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
A3=1;CLK3=1;_nop_();CLK3=0;_nop_();
break;
}
}
void Time_shiwei()
{
switch((time/10)%10)
{
case(0):
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
break;
case(1):
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
break;
case(2):
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
break;
case(3):
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
break;
case(4):
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
break;
case(5):
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
break;
case(6):
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
break;
case(7):
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
break;
case(8):
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
break;
case(9):
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=0;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
A1=1;CLK1=1;_nop_();CLK1=0;_nop_();
break;
}
}
void Time_gewei()
{
switch(time%10)
{
case(0):
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
break;
case(1):
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
break;
case(2):
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
break;
case(3):
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
break;
case(4):
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
break;
case(5):
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
break;
case(6):
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
break;
case(7):
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
break;
case(8):
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
break;
case(9):
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=0;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
A2=1;CLK2=1;_nop_();CLK2=0;_nop_();
break;
}
}
void main(void)
{
ii=0;
WEI1=0;
WEI2=0;
WEI3=0;
temp=0xfe;
Timer0Init();
Time_baiwei();
Time_shiwei();
Time_gewei();
while(1)
{
if(k==0)
{
_nop_();_nop_();_nop_();_nop_();_nop_();
if(k==0)
{
ii=~ii;
}
while(!k);
}
}
}
void Timer0() interrupt 1
{
static u16 i;
TH0=0XFC; //給定時器賦初值,定時1ms
TL0=0X18;
i++;
if(i==1000)
{
time++;
i=0;
P1=temp;
if(time%2==0)
{
temp=_crol_(temp,2);
}
if(time%2==1)
{
temp=_cror_(temp,1);
}
Time_baiwei();
Time_shiwei();
Time_gewei();
}
if(time==999)
{
time=0;
}
}
復(fù)制代碼
所有資料51hei附件下載:
74hc164數(shù)碼管動態(tài)顯示.7z
(84.39 KB, 下載次數(shù): 31)
2022-1-11 20:38 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
herui2128
時間:
2022-3-23 21:58
謝謝分享,我想兩個芯片驅(qū)動2個2位的數(shù)碼管
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1