1,目標(biāo)
? ? ? ? 使用51單片機控制8位數(shù)碼管,分別滾動顯示單個數(shù)字0~7,程序運行之后,單片機先控制最左邊的第一位數(shù)碼管顯示0,其他的熄滅,延時一段時間之后,控制左邊第二個數(shù)碼管顯示1,其它熄滅,以此類推,反復(fù)循環(huán)上述過程。
2,設(shè)計方式
? ? ? ? 使用P0輸出段碼,P2輸出位碼,因為單片機的電流不足以點亮數(shù)碼管,因此,我們可以通過使用由8個NPN型三極管組成的位驅(qū)動電路來對數(shù)碼管進行位驅(qū)動和位控制掃描,話不多說,上程序
3,代碼如下
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code dis_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};//共陽數(shù)碼管段碼表 01234567
//0xf8,0x82,0x92,0x99,0xb0,0xa4,0xf9,0xc0 7~0
void delay(uint t) //延時子函數(shù)
{
uchar i;
while(t--) for(i=0;i<200;i++);
}
void main()
{
uchar i,j=0x80;//10000000
while(1)
{
for(i=0;i<8;i++)
{
j=_crol_(j,1); //_crol_(j,1)——將j循環(huán)左移1位
P0=dis_code[i]; //P0口輸出段碼
P2=j; //P2口輸出位控碼
delay(200);
P0=0x00;
}
}
}
4,仿真圖如下
5,小結(jié)文章來源:http://www.zghlxwxcb.cn/news/detail-534044.html
? ? ? ? 由于數(shù)碼管的余暉和人眼的“視覺暫留”,只要控制好數(shù)碼管的顯示時間并減小延時時間,即可實現(xiàn)8位數(shù)碼管“同時點亮”的效果。文章來源地址http://www.zghlxwxcb.cn/news/detail-534044.html
到了這里,關(guān)于三、51單片機 使用Proteus仿真實現(xiàn)8位數(shù)碼管滾動顯示(仿真及代碼)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!