汇编语言设计四路抢答器

1 关于keil编译器的问题(就是为什么编译器会一直自动的重复运行main函数) keil编译器自动在主程序后面加上一条跳转指令, 但是不一定会跳转到什么地方, 一般程序小的时候基本是跳转到我们没有使用的地方..然后接着运行至ffff(这个是视程序所存在的ROM大小而定), 再跳回main函数的开始继续运行..所以在编程过程中如果想使程序停止,则要加上while(1); 如果是让程序反复运行某个部分, 则要自己加上无限的循环, 一般最好不要利用编译器的那个反复运行main函数的特点. 《汇编语言设计四路抢答器》是一个关于嵌入式系统编程的实践项目,主要涉及到了使用汇编语言编写微控制器程序,以及在Keil编译器中的注意事项。在这个项目中,开发者需要设计一个四通道抢答系统,能够处理四位参赛者的抢答信号,并在适当的时间触发响应。 我们要理解Keil编译器的工作机制。Keil编译器在编译程序时,会在主函数`main`末尾自动添加跳转指令,使得程序在执行完`main`后会继续执行一段代码,通常是未使用的内存空间。如果程序较小,这可能导致程序运行到ROM的最高地址,如FFFF,然后返回到`main`的开头再次运行。因此,为了控制程序的执行流程,开发者需要在合适的地方加入自己的循环结构,如`while(1)`,以实现程序的停止或特定区域的无限循环。依赖编译器的默认行为可能会导致不可预期的结果。 在硬件接口方面,项目提到了P1口位的顺序。在AT89C51这种8位单片机中,P1口是一个8位双向数据口,其位数顺序从P0^0到P0^7。当P1口的状态为10101010时,其对应的二进制表示为01010101,注意这里的顺序是相反的。开发者需要理解这种位顺序,以便正确地读取和设置端口状态。 项目中还定义了一些自定义宏,如`LED_BEGIN`、`LED_FOUL`等,用于控制数码管的显示。这些宏简化了对显示设备的编程,使得代码更易读且易于维护。此外,还定义了数据类型,如`Byte`、`Word`和`Bool`,以增强代码的可读性和通用性。 在硬件控制方面,项目可能使用了MAX7219这样的串行输入/并行输出的驱动芯片,用于驱动数码管显示。`REG_NO_OP`、`DIG_1`到`DIG_8`等定义了与MAX7219交互的寄存器,这些寄存器用于指定数码管的显示模式和数据。 在抢答器的设计中,还需要处理参赛者抢答的逻辑和判断,比如检测抢答信号、计时器管理、犯规判断等。这部分逻辑通常会涉及到中断服务子程序,以及时准确地响应外部事件。同时,可能还需要一个用户界面,如数码管或LED灯,以显示当前状态(如抢答成功、犯规、计时等)。 这个项目涵盖了单片机编程、嵌入式系统设计、硬件接口编程和汇编语言应用等多个方面的知识。开发者需要对AT89C51单片机的内部结构、汇编指令集、Keil开发环境以及外围设备的控制有深入的理解,才能成功地设计并实现一个四路抢答器。通过这样的实践,可以提升对嵌入式系统的综合设计能力。












剩余14页未读,继续阅读

- 无知己2013-10-03正在做四人抢答的课程设计,很好的参考资料,谢啦

- 粉丝: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- ASP.NET-WebForm中.doc
- 介绍光纤通信概述教学案例.ppt
- LS_PLC应用案例 PPT.ppt
- 基于PLC自动门控制系统的设计论文c.doc
- 2023年计算机试题及答案.doc
- GIS技术在供水行业中的运用及发展.docx
- 基于LabVIEW软件平台的通信仿真系统开发的研究.docx
- 《计算机应用》中MicrosoftExcel2010的高级应用.docx
- 医院档案信息化建设的现状与对策初探.docx
- c语言中指针用法 ppt.pptx
- 平地机CAD系统研究的开题报告.docx
- 基于矢量水听器的海洋环境噪声测量装置及分析软件设计的开题报告.docx
- 刍议如何促进无线电通信技术发展.docx
- 汽车ABS控制器的计算机模拟检测的开题报告.docx
- 基于工作流的软件过程建模研究的开题报告.docx
- 民政职业学院计算机技能测试题.docx


