标题:
PC机控制的单片机倒计时秒表设计
[打印本页]
作者:
BriefMeteor
时间:
2020-6-24 10:34
标题:
PC机控制的单片机倒计时秒表设计
基本功能:PC机通过串口以字符方式向单片机发送一1位十进制数值(仿真时串口发送器的显示设置为Echo T),波特率为9600,单片机收到后将其显示到数码管上,当P3.2引脚按键按下时开始做秒表倒计时(这里使用的是定时器),数值减到0停止,P3.5端口的LED灯闪烁三下
发挥部分:在基本功能基础上,PC机通过串口向单片机发送一2位十进制数值
我把基本功能做出来了,有需要的下载即可,另外有没有大佬指点一下发挥部分应该怎样写?
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
E%(EEPI`(E37QSL5L9]0MYV.png
(93.42 KB, 下载次数: 72)
下载附件
仿真图
2020-6-24 10:32 上传
单片机源程序如下:
#include <reg52.h>
sbit key = P3^2;
sbit led = P3^5;
typedef unsigned char uchar;
typedef unsigned int uint;
uchar smg[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x00};
uchar num[2];
uchar time,tt=0,over = 0;
char s = 0;
/*****************************************
延时函数
*****************************************/
void delay(uint x)
{
uchar y;
for(x;x>0;x--)
for(y=110;y>0;y--);
}
/*****************************************
数码管显示函数
*****************************************/
void smg_show(char num_[])
{
char i;
num_[0] = 0;
//num_[1] = 2;
for(i=6;i<=7;i++)
{
P1=(0x01<<i);
P0=~smg[num_[i-6]];
delay(1);
P0=0xff;
delay(1);
}
}
void time_uart_init()
{
TMOD = 0x21;//选择为定时器0模式,工作方式1,仅用TR0打开启动。
SCON = 0x50;
TH0=0XFC; //给定时器赋初值,定时1ms
TL0=0X18;
TH1 = 0xfd;
TL1 = 0xfd;
ET0=1;//打开定时器0中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
TR1 = 1;
ES = 1;
}
void main()
{
uchar j = 0;
time_uart_init();
while(1)
{
// time = num[0]
num[0] = 0;
num[1] = time;
smg_show(num);
if(key == 0)
{
s = 1;
while(!key);
}
if(over)
{
for(j = 0;j<6;j++)
{
led = ~led;
delay(1000);
}
over = 0;
}
}
}
/*****************************************
定时器0中断函数
*****************************************/
void Timer0() interrupt 1
{
static uint i;
TH0=0XFC; //给定时器赋初值,定时1ms
TL0=0X18;
i++;
if(i==1000)
{
if(s)
{
time--;
if(time<=0)
{
time = 0;
over = 1;
s = 0;
}
// over = 1;
}
i = 0;
}
}
void serve() interrupt 4
{
uchar temp;
if(RI)
{
RI = 0;
temp = SBUF-0x30;
time = temp;
num[tt] = temp;
tt++;
if(tt==2)
tt = 0;
}
}
复制代码
所有资料51hei提供下载:
PC机控制的倒计时秒表.zip
(25.43 KB, 下载次数: 20)
2020-6-24 10:33 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
1954422694
时间:
2023-4-1 21:10
copy 一下
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1