/* 名称:100 000s 以内的计时程序
说明:在 6 只数码管上完成 0~99 999.9s。
*/
#include
#include
#define uchar unsigned char
#define uint unsigned int
//段码
uchar code
DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//6 只数码管上显示的数字
uchar Digits_of_6DSY[]={0,0,0,0,0,0};
uchar Count;
sbit Dot=P0^7;
//延时
void DelayMS(uint ms)
{
uchar t;
while(ms--) for(t=0;t<120;t++);
}
//主程序
void main()
{
uchar i,j;
P0=0x00;
P3=0xff;
Count=0;
TMOD=0x01;
//计数器 T0 方式 1
TH0=(65536-50000)/256; //50ms 定时
TL0=(65536-50000)%256;
IE=0x82;
TR0=1; //启动 T0
while(1)
{
j=0x7f;
//显示 Digits_of_6DSY[5]~Digits_of_6DSY[0]的内容
//前面高位,后面低位,循环中 i!=-1 亦可写成 i!=0xff
for(i=5;i!=-1;i--)
{
j=_crol_(j,1);