標(biāo)題:
單片機數(shù)碼顯示學(xué)號的程序
[打印本頁]
作者:
yzb813169284
時間:
2019-7-1 09:48
標(biāo)題:
單片機數(shù)碼顯示學(xué)號的程序
掌握74LS164驅(qū)動數(shù)碼管顯示和用C51編寫顯示函數(shù)的方法。能夠使數(shù)碼管上顯示的數(shù)據(jù)以左移的方式顯示出自己學(xué)號的全部(每隔1S鐘左移一位)
0e2442a7d933c89568cd82bbd31373f0830200ba.png
(25.17 KB, 下載次數(shù): 54)
下載附件
2019-7-1 09:48 上傳
單片機源程序如下:
#include <reg51.h> //頭文件
#define uchar unsigned char
#define uint unsigned int //宏定義
uchar disbuf[12];
uchar aa,bb;
void sx(void);
void delay(uint z) //延時1ms函數(shù)
{
uint i,j;
for(i=0;i<z;i++)
for(j=0;j<121;j++);
}
void intimer1(void) interrupt 2 //外部中斷1中斷服務(wù)函數(shù)
{
for(aa=0;aa<12;aa++)
{
disbuf[aa]=17;
} //清顯示
}
void display(void) //顯示函數(shù)
{
uchar s,n;
code uchar tab[]={0x88,0Xbe,0Xc4,0X94,0Xb2,0X91,0X81,0Xbc,0X80,0X90,
0xa0,0x83,0xc9,0x86,0xc1,0xe1,0xa2,0xff}; //數(shù)碼管顯示數(shù)據(jù)字型碼表
for(s=0;s<=11;s++)
{
SBUF=tab[disbuf[s]]; //送顯示數(shù)據(jù)
for(n=0;n<4;n++)
delay(250); //軟件延時1s鐘
}
}
void main(void)
{
EA=1;
EX1=1;
do
{
for(bb=0;bb<12;bb++)
{
disbuf[bb]=17;
} //將顯示數(shù)據(jù)清零
delay(2); //延時2MS
sx(); //送顯示函數(shù)
display(); //顯示函數(shù)
}while(1);
}
void sx(void) //送顯示函數(shù)
{
disbuf[0]=0; //顯示數(shù)據(jù)的第1位
disbuf[1]=9; //顯示數(shù)據(jù)的第2位
disbuf[2]=1; //顯示數(shù)據(jù)的第3位
disbuf[3]=0; //顯示數(shù)據(jù)的第4位
disbuf[4]=1; //顯示數(shù)據(jù)的第5位
disbuf[5]=0; //顯示數(shù)據(jù)的第6位
disbuf[6]=1; //顯示數(shù)據(jù)的第7位
disbuf[7]=3; //顯示數(shù)據(jù)的第8位
disbuf[8]=2; //顯示數(shù)據(jù)的第9位
disbuf[9]=17;
disbuf[10]=17;
disbuf[11]=17; //最后三位用于與下一次顯示數(shù)據(jù)區(qū)分開
}
復(fù)制代碼
作者:
176565
時間:
2020-9-17 15:04
你這個程序不亮啊
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1