题解:简易秒表设计(单片机C51)(内部中断)

这篇博客介绍了如何使用C51单片机设计一个秒表,通过定时中断每秒使共阳极数码管自加1。主要内容包括头文件定义、主函数、全局变量初始化、中断相关寄存器设置(IE、IP、TCON、TMOD)、中断子程序的编写,以及最后的仿真和实际效果展示。
摘要由CSDN通过智能技术生成

设计需求:

        秒表(定时中断)设计需求:使用定时器中断,实现每秒共阳极数码管自加1。


流程:

1.代码

1.1定义头文件

1.2定义主函数

1.3定义全局量与初始化

1.4定义中断

1.4.1IE寄存器(中断允许控制)(interrupt enable)

1.4.2IP寄存器

1.4.3定时控制寄存器TCON ( Timer control register )

1.4.42.定时/计数器工作方式控制寄存器TMOD

1.4.5真-定义中断

1.4.6定义中断子程序

1.5显示与重置

1.6完整代码

2.仿真

3.效果


1.代码

1.1定义头文件

        首先我们定义单片机头文件<reg51.h>

//单片机头文件
#include<reg51.h>

1.2定义主函数

     因为是单片机,所以不需要返回值,所以用void main定义主函数

//主函数
void main()
{
}

1.3定义全局量与初始化

        定义我们需要的两个变量与一个存放0~15共阳极数码管字符码的字符组

//定义一个记次数-5毫秒一次
int time_sum = 0;
//定义一个显示数0~15
int number = 0;
//定义0~15共阳极数码管字符码
const unsigned char led[] = { 0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0X88,0X83,0XC6,0XA1,0X86,0X8E };

1.4定义中断

         首先我们先了解亿点点中断知识

1.4.1IE寄存器(中断允许控制)(interrupt enable)

EXO(IE.0) 外部中断0允许位;(interrupt controller of external interrupt)
ETO(IE.1) 定时/计数器TO中断允许位 (interrupt controller of Timer0 interrupt)
EX1(IE.2) 外部中断0允许位
ET1(IE.3) 定时/计数器T1中断允许位
ES (IE.4)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值