单片机开关控制数码管显示程序设计
版权申诉
192 浏览量
更新于2024-08-19
收藏 14KB DOCX 举报
该文档是关于使用汇编语言在单片机上实现开关控制4位数码管显示不同数字的教程。通过多个外部中断源来控制数码管显示的内容,当无开关按下时,数码管显示8888;按下开关1时,显示0000;按下开关2时,显示1111;按下开关3时,显示2222;按下开关4时,显示3333。程序中定义了四个标志位Q1~Q4用于识别不同的中断源,并通过P3口的中断源与开关连接。同时,数码管的位选信号需接地,以便所有数码管同时点亮或关闭。
在这个项目中,使用了Keil开发环境,可能涉及到PZISP编程,并且扩展了外部中断源,使得单片机能够响应来自P3口的中断请求。中断源包括外部中断0(INT0)、外部中断1(INT1)以及定时/计数器0(T0)和定时/计数器1(T1)。每个中断都有其对应的中断入口地址,如外部中断0的中断入口地址为0003H。
在程序的初始化部分,设置了堆栈指针SP的初值、中断源允许寄存器IE和中断优先级寄存器IP。同时,定时器0和定时器1被配置为工作方式2,即16位计数器模式。中断触发方式为负跳变触发,这意味着当输入信号从高电平变为低电平时,才会产生中断。接着,对定时器的初值进行了设置,这可能用于控制数码管的显示刷新频率。
在主程序的循环中,检查标志位Q1至Q4,根据这些标志位的状态来确定当前应显示的数字。例如,如果Q1为1,那么数码管的偏移量Information被设置为01H,表示将显示特定的数字。接着调用子程序Subprogram,这个子程序负责处理数码管的具体显示操作,可能包括段选和位选信号的控制,以显示相应的数字。
此外,程序还包含了判断其他开关状态的逻辑,例如,当Q2为1且P3.3为低电平时,会显示不同的数字。类似地,对于Q3和Q4,也会有相应的判断和显示更新。
这份文档详细介绍了如何使用汇编语言编程,结合中断技术和开关输入,实现单片机控制数码管显示数字的功能。它涉及到了中断处理、定时器配置、数码管驱动等关键知识点,对于学习单片机控制系统和汇编语言编程的读者来说,是非常有价值的参考资料。
2022-07-09 上传
2020-06-10 上传
2023-01-04 上传
2023-05-17 上传
2023-01-18 上传
2024-03-28 上传
2023-05-17 上传
2022-10-16 上传
2023-05-17 上传
##电气学渣
- 粉丝: 0
- 资源: 2
最新资源
- jquery-DOMwindow:最初来自http的jQuery DOMwindow插件的更新版本
- NLP_Basics:自然语言处理基本概念和高级概念
- go-clock
- [论坛社区]Google Sitemap生成器 v3.0 for phpwind 6.3.2_sitemap.rar
- 已加星标
- CentralLimit,modbusc#源码,c#
- AndroidStudioDemo
- Natural-Language-Processing-CS60075-:该存储库包含2020年秋季获得的NLP(CS60075)的已解决任务
- FireDoom::fire:动画DOOM feita em Java脚本
- Whowatch Hide Item Animation-crx插件
- dataVis
- Qt基于QGraphicsView绘图架构实现不同图形(多边形、圆形、矩形)的动态绘制(所见即所得)
- AnalyseFileData.zip
- NailPHP-master.zip
- ToolConvertEnglish
- SPINNER:使用 3 个 uicontrol 创建一个简单的微调控件。-matlab开发