标题:
51简单电子秒表显示器
[打印本页]
作者:
橘子226
时间:
2017-11-30 18:37
标题:
51简单电子秒表显示器
51单片机实现简单的电子秒表显示器
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(12.78 KB, 下载次数: 86)
下载附件
2017-12-1 03:33 上传
0.png
(15.84 KB, 下载次数: 87)
下载附件
2017-12-1 03:32 上传
单片机源程序如下:
#include<reg51.h>
#define LED P2
char led_mod[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f}; //显示字模
sbit Ws = P3^0; //十位码管位选
sbit Wg = P3^1; //个位码管位选
bit Y = 0; //长定时溢出标记
unsigned char t = 0; //定时溢出次数
unsigned char count; //60秒计数
void Timeshow(void); //数码管显示函数声明
void delay(unsigned char time); //延时函数声明
void main()
{
TMOD = 0x01; //T0定时器方式1
TH0 = 0x3c; //装初值,定时50ms
TL0 = 0xb0;
ET0 = 1; //开定时器0中断
EA = 1; //开总中断
TR0 = 1; //启动定时器
while(1)
{
if(Y)
{
Y = 0; //清溢出标志位
count++;
if(count>=60)
count = 0; //计数至60时重新从0计起
}
Timeshow();
}
}
void Timeshow(void)
{
unsigned char shi, ge;
// unsigned char j;
shi = count/10; //计数十位
ge = count%10; //计数个位
Ws = 0;
Wg = 1; //个位数码管使能
LED = ~led_mod[ge];
delay(10);
// j = 10; //扫描间隔时间设定
// while(j--);
LED = 0xff; //数码管清零,消影作用
delay(10);
Ws = 1; //十位数码管使能
Wg = 0;
LED = ~led_mod[shi];
delay(10);
// j = 10; //扫描间隔时间设定
// while(j--);
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
电子秒表显示器.zip
(60.28 KB, 下载次数: 33)
2017-11-30 18:36 上传
点击文件名下载附件
电子秒表显示器
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1