|
/************************************************ 跳線設(shè)置:默認(rèn) 顯示效果:012345 這幾個(gè)數(shù)字在51hei板子的后6個(gè)數(shù)碼管中滾動(dòng)顯示 ************************************************/ #include<reg52.h> //頭文件 #include<intrins.h> #define uchar unsigned char uchar code table[]={0x3f,0x06,0x5b,//數(shù)碼管顯示的數(shù)值 0x4f,0x66,0x6d,0x00,0x00,0x00,0x00, 0x00,0x00,0x3f,0x06,0x5b,0x4f,0x66}; sbit DUAN=P2^6; //74HC573的LE端 U1 LED的段選端 sbit WEI=P2^7; //74HC573的LE端 U2 LED的位選端 uchar flag; //定義標(biāo)志位 void main() //主函數(shù) { uchar i,j,k,h,cnt;//定義局部變量 TH0=0XF7; //裝入初始值,時(shí)間約為2.5ms TL0=0X00; ET0=1; //開分控 EA=1; //開總控 TR0=1; //啟動(dòng)定時(shí)器 while(1) { j=cnt+6; //控制循環(huán)的數(shù)值 for(k=0;k<150;k++) // 延時(shí) { h=0xfb; //準(zhǔn)備點(diǎn)亮數(shù)碼管 for(i=cnt;i<j;i++) { WEI=1; //讓位選的這個(gè)74hc573處于直通狀態(tài),也就是輸入0,輸出也是0,輸入1輸出也是1 P0=h; //點(diǎn)亮對應(yīng)的數(shù)碼管 WEI=0; //鎖存 也就是保持74hc573現(xiàn)在這個(gè)時(shí)刻的輸出狀態(tài)一直不變
DUAN=1; //同上哦 P0=table; //顯示對應(yīng)的數(shù)值 DUAN=0; while(!flag); //延時(shí)2.5ms flag=0; //標(biāo)志位清零,準(zhǔn)備下次顯示 DUAN=1; P0=0x00; //關(guān)閉數(shù)碼管,消隱 DUAN=0; h=_crol_(h,1); //循環(huán)左移 } } cnt++; //加1,確定哪些數(shù)值顯示 if(cnt==12) //移位的次數(shù) cnt=0; //清零,準(zhǔn)備下次顯示 } } void time() interrupt 1 //定時(shí)器0 { TH0=0XF7; //裝入初值 TL0=0X00; flag=1; //標(biāo)志位置1 }
下載地址:http://www.raoushi.com/ziliao/51hei-5/數(shù)碼管_滾動(dòng).rar |