实验五、60秒定时器
P2驱动两位数7段LED数码管模块,而P1.0与P1.1为两位数7段LED数码管模块的扫描信号。在此将利用Timer 0作为定时装置,两个7段LED数码管从59开始显示,每一秒减1,到达00后,再从59开始,也就是60s的定时器。
U?19XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161718XTAL29RST293031PSENALEEA12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7ATC51 //========60秒==定时器======= #include #define count_M1 50000 #define TH_M1 (65636-count_M1)/256 #define TL_M1 (65636-count_M1)%256 int count_T0; #define count_M2 250 #define TH_M2 (256-count_M2) #define TL_M2 (256-count_M2) char count_T1=0; char TAB[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; char disp[2]={0x92,0x90}; char seconds=59; char scan=0; main() { IE=0x8a; } TMOD=0x21; TH0=TH_M1;TL0=TL_M1; TR0=1; TH1=TH_M2;TL1=TL_M2; TR1=1; while(1); void T0_1s(void)interrupt 1 { } TH0=TH_M1;TL0=TL_M1; if(++count_T0==20) { count_T0=0; seconds--; if(seconds==0) seconds=59; } disp[0]=TAB[seconds/10]; disp[1]=TAB[seconds%10]; void T1_8ms(void)interrupt 3 { } if(++count_T1==32) { } count_T1=0; if(++scan==3)scan=1; SEG=0xff; SCANP=~scan; SEG=disp[scan-1]; U?19XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161718XTAL29RST293031PSENALEEA12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7ATC51 U?19XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161718XTAL29RST293031PSENALEEA12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7ATC51 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务