第4题:
设计一个2位LED数码管显示的秒表?
#include #define uint unsigned int#define uchar unsigned charuchar code disp_reg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};void Init() //T0初始化{ TMOD=0X01; //定时器0工作在方式1,定时功能,软件启动 TR0=1; //开启定时器0}void delay1s( ){ uint i;for(i=0;i {TH0=(65536-1000)/256; //定时1ms TL0=(65536-1000)%256; //定时1ms while(TF0==0); //等待定时溢出 TF0=0; //定时器溢出,TF0=1,需要重新置0开始定时; }} void display(uint x) //显示数值{ P1=disp_reg[x/10] ; //显示十位 P2=disp_reg[x%10] ; //显示个位} void main(){ uchar miao=0; Init(); //定时器初始化 while(1) { display(miao); //显示秒 delay1s(); //调用秒延时程序 miao++; //秒计数 if(miao>59)miao=0; //59秒后回到0 } }答案仅供参考,不是唯一的。