/********头文件区域*********/
#include <STC15.H>
/*********常量定义区********/
#define P2_INIT 0xFF
#define P2M1_INIT 0x00
#define P2M0_INIT 0x00
#define P0_INIT 0x0F
#define P0M1_INIT 0x00
#define P0M0_INIT 0x00
/*********变量定义区********/
unsigned char Cnt_2ms=0,Cnt_10ms=0,Cnt_1s=0,Second=0,Minute=0;
unsigned char Scan_Cnt=0; //片选变量,该变量为0显示数码管第0位 为1显示数码管第1位 为2显示数码管第2位 为3显示数码管第3位
unsigned char const Dsp_Seg[17]={0x05,0xDD,0x46,0x54,0x9C,0x34,0x24,0x5D,0x04,0x14,0x0C,0xA4,0xE6,0xC4,0x26,0x2E,0xFF}; //数码管显示数组定义
unsigned char const Scan_Table[4]={0xF7,0xFB,0xFD,0xFE}; //显示片选端口表 按照
unsigned char Dsp_Table[4]={0,0,0,0}; //显示片选端口组织表
struct
{
unsigned char Sec_Flg :1;
unsigned char :7;
}TimeFlg;
/*********函数声明区********/
void MCU_Init();
void Delay(unsigned char);
void Dsp_LED();
void main()
{
/****初始化区****/
MCU_Init();
/******主循环*******/
while(1)
{
if(TimeFlg.Sec_Flg==1)
{
Dsp_LED();
TimeFlg.Sec_Flg=0;
}
}
}
//初始化函数
void MCU_Init()
{ /*
P0=P0_INIT;
P0M1=P0M1_INIT;
P0M0=P0M0_INIT;
P2=P2_INIT;
P2M1=P2M1_INIT;
P2M0=P2M0_INIT; */
//定时器0初始化
AUXR &=~0x80; // 定时器0为12T模式
TMOD = 0x00; // 模式0,16位自动重载
TL0 = 0x83; //设置定时初值
TH0 = 0xFF; //设置定时初值
TR0 = 1; // 开始计时
ET0 = 1; // Enable Timer0 interrupt
IE |= 0x80; //开总中断
}
//显示函数
void Dsp_LED()
{
Dsp_Table[3]=Dsp_Seg[Minute/10]; //显示秒的十
Dsp_Table[2]=Dsp_Seg[Minute%10]; //显示秒的个位和点
Dsp_Table[1]=Dsp_Seg[Second/10]; //显示微秒的百位
Dsp_Table[0]=Dsp_Seg[Second%10]; //显示微秒的十位
}
//中断函数 2ms 200ms 1s平台
void INT_Timer0() interrupt 1 //中断函数
{
Cnt_2ms++;
if(Cnt_2ms==16)
{
//2ms平台
Cnt_2ms=0;
//LED 片选切换
Scan_Cnt++;
if(Scan_Cnt>=4) Scan_Cnt=0;
P1=P1|0x0F; //关闭所有片选
P2=~Dsp_Table[Scan_Cnt]; //送段码
P1=P1&Scan_Table[Scan_Cnt]; //开启相应片选
//计时
Cnt_10ms++;
if(Cnt_10ms==5)
{
//10ms平台
Cnt_10ms=0;
Cnt_1s++;
if(Cnt_1s==100)
{
//1s平台
Cnt_1s=0;
Second++;
TimeFlg.Sec_Flg=1;
if(Second==60)
{
Second=0;
Minute++;
if(Minute>=60) Minute=0;
}
}
}
}
}
四位动态数码管中断函数,四位数码管位段分秒.rar
需积分: 0 31 浏览量
2022-12-14
18:54:41
上传
评论 1
收藏 115KB RAR 举报
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
短暂几秒雪
- 粉丝: 0
- 资源: 2
最新资源
- 是一个简单的Python脚本示例,使用Pillow库来展示基本的图像处理操作,包括打开图像、显示图像、转换图像大小、旋转图像以及
- Hbulider制作的华为云物联网APP
- 车辆检测的视频,视频来自YouTube,Los Angeles Freeway I-101 HD 30fps traffic
- [初学者必看]JavaScript 简单实际案例练习,锻炼代码逻辑思维
- 高分项目,PID-电机类-PID电机调速控制源码+参考资料+PID测速
- grafana-enterprise-11.0.0.windows-amd64.msi
- 一个简单的Go程序示例,实现了上传并读取Excel文件的功能:
- ubuntu: jdk1.8安装包(免费)
- 分别使用Java和Python实现二分查找算法
- matlab仿真源码作业.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)