電路很簡(jiǎn)單,我就不畫(huà)圖了,四位數碼管 通過(guò)2個(gè)74hc595連起來(lái),1個(gè)595負責段選,1個(gè)595負責位選,利用單片機的定時(shí)器中斷實(shí)現0-100數字的循環(huán)顯示.程序已經(jīng)通過(guò)本人測試通過(guò)#include#define uint unsigned int#define uchar unsigned charsbit rck=P0^0;sbit sck=P0^1;sbit si=P0^2;uchar num[]={0x80,0xed,0x42,0x48,0x2c,0x18,0x10,0xcc,0x00,0x08};uint b=0,i=0,j=0,k;void write_595(uchar x)//對595芯片進(jìn)行設初始化{for(k=0;k<8;k++) //移位寄存器{x>>=1;sck=0;si=CY;sck=1;}}void date_danpianji()//對單片機計時(shí)器進(jìn)行初始化{EA=1;//總中斷開(kāi)啟ET1=1;//定時(shí)器開(kāi)啟TMOD=0X10;//選擇定時(shí)器工作模式TH1=(65536-33333)/256;//除整賦給高八位TL1=(65536-33333)%256;//除余賦給第八位TR1=1; //啟動(dòng)定時(shí)器 }void main()//主函數{date_danpianji();//調用定時(shí)器中斷while(1)//循環(huán){ if(b==20)//檢測中斷函數是否滿(mǎn)足b==20,如果滿(mǎn)足則執行{b=0;i++;if(i==10){i=0;j++;if(j==10)j=0;}}write_595(num[j]);write_595(num[i]);rck=0;rck=1; }} void ext() interrupt 3 using 1 //定時(shí)器中斷{TH1=(65536-33333)/256;TL1=(65536-33333)%256;b++;}
評論