数字逻辑 秒表设计

来源:百度知道 编辑:UC知道 时间:2024/06/10 01:43:53
假设目前你只有一个频率为1KHz的时钟源,要求设计一个精度为0.01s的秒表
秒表的最大量程为分钟
将秒表时间在六个数码管上显示出来,显示格式为:00.00.00
利用BCD码计数器

#include<reg51.h>
#define uchar unsigned char
unsigned char code timeshow[]={ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
unsigned char code timeshow1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0E};
sbit minshi=P2^0;
sbit minge=P2^1;
sbit secshi=P2^2;
sbit secge=P2^3;
uchar min=0,second=0;
uchar timercounter=0;
uchar AN=0;
/*延时200us程序*/
void delay200us()
{
uchar i;
for(i=100;i>0;i++);
}
void delay()
{
uchar i,j;
for(i=200;i>0;i--)
for(j=250;j>0;j--);
}
void desply(uchar min, uchar second)
{
minshi=0;
P0=timeshow[min/10];
delay200us();
minshi=1;
minge=0;
P0=timeshow1[min%10];
delay200us();
minge=1;
secshi=0;
P0=timeshow[second/10];
delay200us();
secshi=1;
secge=0;
P0=timeshow[second%10];<