文档介绍:电气工程学院
单片机课程设计
实验报告
班 级: …………
姓 名:
学 号: …………
设计题目: 四位竞赛抢答器
设计时间: …………
评定成绩:
评定教师:
目录
摘要
单片机自20世纪70年代问世以来,在电子信息、电气工程、工程自动化控制、机电一体化、智能仪器仪表、家用电器等诸多领域得到广泛应用,已对人类社会产生重大影响。
由于Intel公司的8051内核单片机获得的巨大成功,以8051内核技术为主导的单片机也是目前我国多数高校都在讲授的机型。尽管各种新型的8位、16位以及32位单片机不断推出,但在目前的应用中,8位单片机尤其是各种8051内核的单片机仍站主导地位。
本次设计利用了8051芯片、4*4矩阵键盘(仅用2*3)、串行A\D、D\A转换芯片PCF8591、8位共阴极数码管(仅用4位)、音频放大芯片LM386以及喇叭,实现四位竞赛抢答单片机系统,可同时供4名选手或4个代表队参加比赛,每队均有一个抢答按钮,同时给节目主持人“抢答开始”及“系统清除”按键。本抢答器具有编号锁存、抢答计分、时间显示和音响提示等功能。
本次课程设计让我初步掌握了竞赛抢答单片机系统的工作原理和基本思想,同时也让我对书本所学到的知识了解更加深入。
关键字:AT89C51单片机;矩阵键盘;数码管;PCF8591;LM386;Keil5软件;Proteus仿真软件
调试过程
调试详细步骤和过程
在Keil中编好程序后,点击编译运行。
图 1 编译运行结果
编译运行无错误后,还需要对项目进一步设置,以满足要求。
图 2 晶振频率设置
图 3 勾选Create HEX file
图 4 生成HEX文件
生成好HEX文件后,将其导入到Proteus里的AT89C51芯片中。
图 5 导入HEX文件至AT89C51
点击运行按钮进行软件仿真。
仿真时,显示数值与旋钮抽头电压相关,调动旋钮,按下复位键,数值改变,说明PCF8591工作正常。按下选手抢答按键,系统正常提示2s警告;主持人按下开始后,选手抢答正确计分与显示编号,程序正常;主持人按下系统清除按钮,选手编号与分数消失,显示倒计时最大时间,程序正常。
记录软件仿真结果,同时去机房进行硬件调试。
软件调试遇到的问题及解决过程说明
(1) PCF8591芯片与单片机通信发生错误,无论程序使用应答还是非应答,在I2C调试器里,都显示进行的是应答,同时发送的数据最后一位均不正确。
图 6 I2C调试器发现错误
后经过仔细排查,发现代码中的一处for循环i=1,程序出错,修改后,发送数据正确,但应答位仍然不正确。再次进行排查错误,发现是Noack程序里,sda没有设成1,修改为0后,I2C调试器显示符合预期。
仿真后,发现音响完全没声音,无论给它什么频率,都不发出声音。
图 7 使用该器件无声音
后检查电路,发现电路没有问题,想到可能是元器件的问题,后将其改为SPEAKER,发现声音正常发出,问题解决。
(3)七段数码管显示错误,发现使用了不是实验箱上的共阴极数码管,修改位7SEG-MPX4-CC-BLUE后,问题解决。
软件仿真运行和硬件实际验证的区别
Proteus仿真软件使用起来十分顺手,但是在程序比较复杂,定时器溢出频率高时,仿真容易卡、慢。Proteus仿真软件进行仿真时,不需要画晶振电路和复位电路,是有效减少工作量,还可以使用虚拟示波器、I2C调试器等器件进行问题查找、结果确认,十分方便与快捷。但其仅仅运行在理想的条件下,缺少了现实里的许多因素影响,容易导致我们思考问题简单化。
硬件实际验证时,发现了很多软件仿真时没发现的问题,执行程序时,速度比仿真软件快很多,反应十分迅速,无论定时器溢出频率多高,都不会卡、慢,相比之下,结果更舒适。硬件实际验证时,需要考虑到硬件的局限性,进行程序与实际晶振频率的匹配,I/O口与相应模块的连线,总体需要考虑更多因素,不再是理想情况。
运行效果
Proteus电路图
图 8 Proteus接线图
滑动变阻器在0%时,倒计