标题:
我的单片机秒表倒数99秒的程序
[打印本页]
作者:
galaxy@
时间:
2018-10-11 08:25
标题:
我的单片机秒表倒数99秒的程序
这是我上个月做的秒表课题
用了一天的时间
附件里面包含了秒表的单片机源代码
和proteus仿真工程文件
请大家多多采纳多多指教
本人还有其他代码,但是也不算太多
可以加qq1515422315获取
或者联系我发表
单片机源程序如下:
/************************************************************************************** /**************************************************************************************
*功能:秒表(99倒计时) *
*说明:数码管显示99秒的倒计时
*硬件连接:在J4处插上跳线帽 第一位数码管 位引脚-->P2.0 *
* 第二位数码管 位引脚-->P2.1 *
* 第三位数码管 位引脚-->P2.2 *
* 第四位数码管 位引脚-->P2.3 *
* 所有的数码管 段引脚-->P0
*作者:研发中心 *
*公司:科睿电子产品有限公司 *
*电话:0530-2897239 15192459227 *
*地址:菏泽市开发区广州路与淮河路交叉口科睿电子产品有限公司 *
***************************************************************************************/
#include <reg52.h>
typedef unsigned int uint;
typedef unsigned char uchar;
uint count,count_ms=100;
// 0 1 2 3 4 5 6 7 8 9 10
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};
sbit P2_0 = P2^0;
sbit P2_1 = P2^1;
sbit P2_2 = P2^2;
sbit P2_3 = P2^3;
/*
* 延时函数 毫秒级
*/
void delay(uint z)
{
uint x,y;
for(x=z;z>0;z--)
for(y=110;y>0;y--)
;
}
/********************************************************************
* 名称 : Timer1Init()
* 功能 : 定时器1初始化
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Timer1Init(void) //10毫秒@11.0592MHz
{
// AUXR &= 0xBF; //定时器时钟12T模式
TMOD &= 0x0F; //设置定时器模式
TL1 = 0x00; //设置定时初值
TH1 = 0xDC; //设置定时初值
TF1 = 0; //清除TF1标志
TR1 = 1; //定时器1开始计时
ET1 = 1; //enable timer1 interrupt
EA = 1; //open global interrupt switch
}
/********************************************************************
* 名称 : display()
* 功能 : 数码管显示函数
* 输入 : Dis_data1,Dis_data2,Dis_data3,Dis_data4
* 输出 : 无
***********************************************************************/
void display(uint Dis_data1,uint Dis_data2,uint Dis_data3,uint Dis_data4)
{
P0=table[Dis_data1];
P2_0 = 0;
delay(2);
P2_0 = 1;
P0=table[Dis_data2];
P2_1 = 0;
delay(2);
P2_1 = 1;
P0=table[Dis_data3];
P2_2 = 0;
delay(2);
P2_2 = 1;
P0=table[Dis_data4];
P2_3 = 0;
delay(2);
P2_3 = 1;
}
/********************************************************************
* 名称 : main()
* 功能 : 主函数
* 输入 : 无
* 输出 : 无
***********************************************************************/
void main()
{
Timer1Init();
count=100;
count_ms=1000;
while(1)
{
display(10,count%100/10,count%10,10);
}
}
/********************************************************************
* 名称 : void tm1_isr() interrupt 3 using 1
* 功能 : 定时器1中断服务函数
* 输入 : 无
* 输出 : 无
***********************************************************************/
void tm1_isr() interrupt 3 using 1
{
TL1 = 0x00; //设置定时初值
TH1 = 0xDC; //设置定时初值
if (count_ms-- == 0) //1ms * 1000 -> 1s
{
count_ms=1000;
if(count==0)
{
count=100;
}
count --; //reset counter
}
}
复制代码
所有资料51hei提供下载:
11.秒表(99倒计时).zip
(21.25 KB, 下载次数: 24)
2018-10-11 08:21 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
admin
时间:
2018-10-11 16:23
补全原理图或者详细说明一下电路连接即可获得100+黑币
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1