///利用動(dòng)態(tài)掃描和定時(shí)器1在數(shù)碼管上顯示出從765432開(kāi)始以1/10秒的速度往下遞減直至765398并保持顯示此數(shù) //,與此同時(shí)利用定時(shí)器0以500MS速度進(jìn)行流水燈從上至下移動(dòng),當(dāng)數(shù)碼管上數(shù)減到停止時(shí) //,實(shí)驗(yàn)板上流水燈也停止然后全部開(kāi)始閃爍,3秒后(用T0定時(shí))流水燈全部關(guān)閉 //、數(shù)碼管上顯示出“HELLO”。到此保持住。
//以上的是題目
#include <reg52.h> #define uchar unsigned char #define uint unsigned int uchar code TAB[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};///數(shù)碼管顯示的數(shù)字 uchar code TA[]={0xfe,0xfd,0xfb,0xf7};///選擇第幾個(gè)數(shù)碼管亮 uchar code TAB1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};///流水燈 uchar code TAB2[]={0x76,0x79,0x3f,0x38};///顯示HELO uchar i; uint j,n,k,m,f; int a,b,c,d,x; void delay(); void xiajieduan(); void helo(); void main() { i=0;j=0;k=0;n=0; TMOD=0x22; TL0=0X47;//定時(shí)0.2毫秒 TH0=0x47; TR0=1; ET0=1; TL1=0X47;//定時(shí)0.2毫秒 TH1=0x47; TR1=1; ET1=1; EA=1; a=2;b=3;c=4;d=5; while(1) {
if(d==5&&c==3&&b==9&&a==8)//當(dāng)達(dá)到指定數(shù)字時(shí) { TR1=0;k=0; xiajieduan(); } P2=0XFF; if(j==0)P0=TAB[a]; if(j==1)P0=TAB; if(j==2)P0=TAB[c]; if(j==3)P0=TAB[d]; P2=TA[j];//數(shù)碼管顯示 j++; if(j>=4)j=0;
if(k>=2500)//流水燈 { k=0;f++; if(f==8)f=0; P1=TAB1[f]; } } } void jishi0() interrupt 1 {
k++; if(k==15000){P1=0XFF;helo();} } void jishi1() interrupt 3 { n++; if(n==1000){n=0;a--;}//計(jì)時(shí)器向下遞減的轉(zhuǎn)化 if(a==-1){b--;a=9;} if(b==-1){c--;b=9;} if(c==-1){d--;c=9;} if(d==-1){a=9;b=9;c=9;d=9;}
} void delay() { for(x=0;x<5000;x++)
{ P2=0XFF; if(j==0)P0=TAB[a]; if(j==1)P0=TAB; if(j==2)P0=TAB[c]; if(j==3)P0=TAB[d]; P2=TA[j];//數(shù)碼管顯示 j++; if(j>=4)j=0; } } void xiajieduan() { while(1) { P1=0X00; delay(); P1=0xff; delay(); } }
void helo() { while(1) { P2=0XFF; if(j==0)P0=TAB2[3]; if(j==1)P0=TAB2[2]; if(j==2)P0=TAB2[1]; if(j==3)P0=TAB2[0]; P2=TA[j];//數(shù)碼管顯示 j++; if(j>=4)j=0; } }
///利用動(dòng)態(tài)掃描和定時(shí)器1在數(shù)碼管上顯示出從765432開(kāi)始以1/10秒的速度往下遞減直至765398并保持顯示此數(shù) //,與此同時(shí)利用定時(shí)器0以500MS速度進(jìn)行流水燈從上至下移動(dòng),當(dāng)數(shù)碼管上數(shù)減到停止時(shí) //,實(shí)驗(yàn)板上流水燈也停止然后全部開(kāi)始閃爍,3秒后(用T0定時(shí))流水燈全部關(guān)閉 //、數(shù)碼管上顯示出“HELLO”。到此保持住。
|