单片机源程序如下:
#include "reg51.h"
#include "intrins.h"
#define GPIO_DIG P2 //数据端
#define uchar unsigned char //重命名关键字
#define uint unsigned int //重命名关键字
sbit K1=P3^0; //开始
sbit K2=P3^1; //暂停
sbit K3=P3^2; //复位
sbit L1=P1^4; //数码管1位选
sbit L2=P1^5; //数码管2位选
sbit L3=P1^6; //数码管3位选
sbit L4=P1^7; //数码管4位选
sbit beep=P1^0;
unsigned char code DIG_CODE[10] = {
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
//0、1、2、3、4、5、6、7、8、9的显示码
unsigned char code DIG_CODE2[10] = {
0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,
0xff,0xef};
//0、1、2、3、4、5、6、7、8、9带小数点的显示码
unsigned char DisplayData[4];
//用来存放要显示的8位数的值
uchar i,m; //定义变量
uchar min=0;
long int k=0;
uint Second_Counts; //定义变量
void DigDisplay() //数码管显示子函数
{
unsigned int j; //定义变量
L1=0; //位选
L2=1;
L3=1;
L4=1;
GPIO_DIG = DisplayData[0]; //发送段码
j = 1000; //扫描间隔时间设定
while(j--);
L1=1; //消隐
L2=1;
L3=1;
L4=1;
L1=1;
L2=0; //位选
L3=1;
L4=1;
GPIO_DIG = DisplayData[1]; //发送段码
j = 1000; //扫描间隔时间设定
while(j--);
L1=1; //消隐
L2=1;
L3=1;
L4=1;
L1=1;
L2=1;
L3=0; //位选
L4=1;
GPIO_DIG = DisplayData[2]; //发送段码
j = 1000; //扫描间隔时间设定
while(j--);
L1=1; //消隐
L2=1;
L3=1;
L4=1;
L1=1;
L2=1;
L3=1;
L4=0; //位选
GPIO_DIG = DisplayData[3]; //发送段码
j = 1000; //扫描间隔时间设定
while(j--);
L1=1; //消隐
L2=1;
L3=1;
L4=1;
}
void main()
{
// Second_Counts=570;
// min=9;
GPIO_DIG = 0x00; //初始化数据口
TMOD=0x01; //定时器0方式1
TH0=(65536-50000)/256; //定时器0:50ms
TL0=(65536-50000)%256;
TH1=(65536-2000)/256;
TL1=(65536-2000)%256;
EA=1;
// ET1=1;
// TR1=1;
while (1)
{
if(K1==0)
{
ET0=1;
TR0=1; //开启定时器
}
if(K2==0)
{
ET0=0;
TR0=0; //关闭定时器
}
if(K3==0) //复位按键按下时
{
ET0=0;
TR0=0; //关闭定时器
DisplayData[0] = DIG_CODE2[0]; //清零显示
DisplayData[1] = DIG_CODE[0]; //清零显示
DisplayData[2] = DIG_CODE2[0]; //清零显示
DisplayData[3] = DIG_CODE[0]; //清零显示
i=0; //清零计数
Second_Counts=0; //清零秒
}
if((Second_Counts>0)&&(m==0))
{
ET1=1;
TR1=1;
}
if((min==9)&&(Second_Counts==599))
{
ET0=0;
TR0=0; //关闭定时器
ET1=1;
TR1=1;
}
DigDisplay(); //执行数码管显示函数
}
}
//T0中断函数
void DSY_Refresh() interrupt 1
{
TH0=(65536-50000)/256; //恢复定时器0初值
TL0=(65536-50000)%256;
上一篇:基于NRF24L01的DS18B20温度无线传输单片机源码
下一篇:单片机四层电梯控制系统设计最终版(含仿真+报告+程序源码)
推荐阅读最新更新时间:2024-11-12 06:44
设计资源 培训 开发板 精华推荐
- 等你报名做客黑科技直播间:基于 TI DLP®技术的工业创新应用介绍
- ADI & WT ·世健 MCU 痛点问题探索季 ——第一站:征集 | 使用 MCU ,哪些问题最令你头大?
- ADI有奖下载活动之22:针对电子测试和测量的RF和微波解决方案
- TI携您共创未来乘驾新体验——初步学习: TI 汽车专题任务打卡
- 有奖直播|ADI多参数光水质分析平台
- 用心分享,一起成长!EEWORLD月月有奖优秀主题/回复第28期开始啦~
- ST直播主题:高度灵活的、易用的、可定制化的协议栈--BlueNRG-LP 协议栈介绍
- 4月26日上午10:00邀您观看 基于TI Sitara™AM5708的工业派开源平台介绍 有奖直播
- 【主题月活动】二极管,你了解多少