我想用定时器定时数码管每隔1s显示0——9
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar a,s1;
uchar code s[10]={0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,};
void main(){
TMOD=0x05;
EA=1;
ET0=1;
TR0=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(a==20){
a=0;
P2=0xfe;
for(s1=0;s1<10;s1++) {
P0=s[s1];
s1=s1++;
if(s1==10)
s1=0;
}} }
void dsq() interrupt 1{
a=a++; }
1.你的是使用定时器计数方式,最好是改成中断方式;
2.中断程序中应当重装初值;
3.判断是不是到了一秒的时间的程序最好也放到中断程序里;
4.主程序进行显示,建议用个while语句就行。
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |