单片机课程设计Word格式文档下载.docx
《单片机课程设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机课程设计Word格式文档下载.docx(25页珍藏版)》请在冰豆网上搜索。
(4)蜂鸣器电路的设计;
(5)LED数码管的特性及使用;
(6)按键电路的设计;
(7)初步掌握AT89C51单片机编程方法;
(8)初步掌握AT89C51系统的调试方法。
指导教师:
日期:
三、课程设计进度计划及检查情况记录表
序号
日期
计划完成内容
实际完成内容
1
6月13日
确定课题,搜集相关资料
完成
2
6月14日
绘制电路图,完成硬件部分的设计
3
6月15日
编写软件部分的程序
4
6月16日
软件部分调试,设计报告整理
5
6月17日
答辩,完善课程设计报告
6
四、成绩评定与评语
该同学在老师的指导下进行了基于AT89C51单片机的抢答器设计与实现,设计题目有一定工作量,基本涵盖了课程的大部分基础知识。
其间调试出过不少意想不到的问题,比如限时器的设计等问题,经过大量资料的查找解决了该困难,培养了独立解决问题的能力。
经过该组同学的共同努力,同时,他们在电路设计、控制程序的开发等方面有了长足的进步。
该同学在本设计过程中能够发挥自己的主观能动性,积极地查找资料,设计电路,进行试验调试计。
在进行课程设计时,能够比较积极地与老师沟通,在指导教师的指导下能够解决设计中遇到的问题。
具有一定的团队组织能力。
从报告所附程序的情况及设计结果来看基本上满足了设计任务书的要求。
所撰写的设计报告基本展示了其设计方案,大部分模块介绍的较为清楚,但个别模块介绍不够全面。
工作严谨、踏实、有效完成了计划任务。
日期:
课程设计的主动性与平时表现(20%)
独立思考能力与动手能力(40%)
课程设计完成情况(40%)
课程设计成绩
一.总体设计方案
根据系统的功能与要求,选择AT89C51芯片。
设计一个供8名选手参加的八路扫描式抢答器。
每组设计一个抢答按钮供参加者使用。
电路具有第一抢答信号的鉴别和锁定存储功能。
在主持人将系统复位并发出抢答指令后,如果参赛者在第一时间按抢答开关,则按钮指示灯灯亮并用组别电路显示出抢答者的组别。
同时扬声器发出声音。
电路应具有自锁功能,使其他组不起作用。
二.设计内容
1.MSC-51系列单片机介绍及硬件功能
MSC-51系列单片机是英特尔公司于1980年起推出的第二代产品。
与8084相比,8051的硬件结构和指令系统均有很大改进,可支持更大的存贮空间,扩充了更多的硬件功能I/O功能,速度提高了2-5倍,可完成逻辑运算等。
近年来推出的一些增强的MSC-51系统单片机,片内还集成了许多特殊功能单元,只需要加一些扩展电路及必要的通道接口即可构成各种计算机应用系统。
因MSC-51系统单片机在智能仪表、智能接口、功能模块等领域得到了非常广泛的应用。
我们这里用的单片机是MCS—51系列的AT89C51作为控制系统,它外接了八个键盘,也就是它可以为八个人同时提供抢答。
它的显示系统为两个数码显示管(共阳级接法);
另外还有一个扬声器和八个发光二极管作为提示装置。
当接通电源时,单片机将会对键盘进行扫描,当有按键按下时,单片机将会向数码显示关发出信号,于是数码显示管将显示按下键盘所对应的显示号(1—8)。
同时,单片机还会将扬声器连接的接口设置为零(低电平),而扬声器的另一端接的是+5v电压,从而将扬声器接通并发出报警声;
单片机还会将按下的按键所对应的发光二极管的接口至低电平,而发光二极管用的是共阳极接法,从而点亮发光二极管。
2.硬件电路图
(1)抢答器部分电路
(2)时序电路部分
(3)复位电路部分
(4)蜂鸣电路部分
(5)电源电路部分
3.程序流程图
主程序流程图:
设定中断方式,下降沿有效
延时程序流程图:
INT1中断服务流程图:
T0中断服务程序流程图:
T1中断服务流程图:
显示程序流程图:
4.系统程序设计
在主持人发布抢答命令之前设定抢答的时间,主持人发布抢答命令,按下S9按键后,程序开始打开,定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序。
当扫描到有人按下了键,马上关闭T0,调用显示程序,并封锁键盘。
P1.0-P1.7为八路抢答器的输入端口,数码管断选P0口,位选P2口,蜂鸣器输出为P3.6。
主程序:
BEEPBIT00H
ORG0000H
LJMPMAIN
ORG0003H;
定义四个中断的入口地址
LJMPSTART0
ORG000BH
LJMPSTART1
ORG0013H
LJMPSTART2
ORG001BH
LJMPSTART3
ORG0030H
MAIN:
MOVP1,#0FFH;
P1口全置1
SETBP3.0;
串行输入端置1
SETBP3.1;
串行输出端置1
CLRBEEP;
清零
MOVR0,#40H;
个位送“0”
MOVR1,#0FFH;
十位全灭
MOVIP,#01H
MOVIE,#8FH
LOOP:
CLRP3.6;
串行输入端清零
MOVP0,R1
LCALLDEL;
延时
SETBP3.0
CLRP3.1
MOVP0,R0
串行输出端置1
SJMPLOOP
延时部分程序:
DEL:
MOVR4,#20H;
立即数送R4
DLY1:
MOVR3,#49H;
DLY2:
DJNZR3,DLY2;
(R3)—1不为0,继续
DJNZR4,DLY1;
(R4)—1不为0,继续
RET;
返回
INT0中断服务程序:
START0:
CLREA
MOVA,P1
ML0:
CJNEA,#0FEH,ML1;
1”字符码送P0口
MOVR0,0F9H
CLRP2.0
SJMPML8
ML1:
CJNEA,#0FEH,ML2;
2字符码送P0口
MOVR0,0A4H
CLRP2.1
ML2:
CJNEA,#0FBH,ML3;
“3字符码送P0
MOVR0,0B0H
CLRP2.2
ML3:
CJNEA,#0F7H,ML4;
“4字符码送P0
MOVR0,99H
CLRP2.3
ML4:
CJNEA,#0EFH,ML5;
“5字符码送P0
MOVR0,92H
CLRP2.4
ML5:
CJNEA,#0DFH,ML6;
“6字符码送P0
MOVR0,82H
CLRP2.5
ML6:
CJNEA,#0BFH,ML7;
“7字符码送P0
MOVR0,F8H
CLRP2.6
ML7:
CJNEA,#7FH,ML8;
“8”字符码送P0
MOVR0,80H
ML8:
蜂鸣器响
RET
INT1中断服务程序:
START1:
CLREA;
关中断
MOVR7,#30;
立即数30送R7
MOVR0,#0L0H
MOVR1,#0B0H
MOVTMOD,#42H
MOVTH0,#80H;
80H送TH0
MOVTH1,#83H;
83H送TH1
MOVTL1,#00H
SETBTR0
SETBTR1
SETBEA
T0中断服务程序:
START2:
SETBP3.4;
定时/计数器0外部信号输入端置1
NOP
CLRP3.4
T1中断服务程序:
STRAT3:
DECR7;
秒减1
LCALLDISP;
调显示处理程序
MOVA,R7;
(R7)送累加器A
JZML10
CJNZR7,#00H,ML10
将83H送到TH1
MOVTL1,#00H;
将00H送到TL1
SETBEA;
开中断
LJMPML11
ML10:
CLRP3.6;
CLRTR0;
关闭定时器T0
CLRTR1;
ML11:
显示部分程序:
DISP:
MOVDPTR,#TAB
MOVA,R7;
(R7)送A,立即数10送B
MOVB,#10;
秒数分解成十位,个位
DIVAB
CJNZA,#00H,MLR
MOVA,#0AH
MLR:
MOVA,@A+DPTR
MOVR0,A;
取个位字符码送R0
TAB:
DB00H,0F9H,0A4H,0B0H,99H
DB92H,82H,0F8H,80H,90H,0FFH
5.调试与结果
软件调试是通过对用户程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。
程序运行后编辑,查看是否有逻辑的错误。
3号选手按抢答器后试验箱显示结果如下图所示:
抢答后剩余时间显示如下图所示:
三.结论、建议及课程设计体会
通过资料的收集和查询,我们对程序的流程图有一个基本的结构,结合找到的相关参考资料,以及自己对单片机知识的认识,利用Protel99进行作图仿真,结合硬件完成了抢答器的设计。
本次课程设计综合性比较强,不仅要求我们能够灵活的使用单片机的各种指令,熟练使用单片机设计抢答器,熟练编写顺序结构程序,循环结构程序以及分支结构程序,还要求对单片机的电路连接结构,对数码管管理芯片有明确清晰的了解与认识。
从这次课程设计中我学到了很多,比如面对问题要保持冷静,特别是在程序的编写这一块,要找出程序的错误一定要有一个冷静的头脑,否则很难发现错误甚至是越改越错。
另外我还认识到与他人合作的重要性,在设计中一个人掌握原理知识是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。
尤其是我作为组长,更要有统筹规划,给组员分配好任务,团结协作是我们成功的一项非常重要的保证。
并且,不懂的地方还要虚心向其他的同学学习。
最后,还要感谢在这次课程设计中周秋茜老师提供的指导和帮助。
四.参考文献
[1]胡汉才.单片机原理与接口技术.北京:
清华大学出版社,1998
[2]冯育长.单片机系统设计与实例指导.北京:
西安电子科技大学出版社,2007
[3]李光飞.单片机课程设计实例指导.北京:
北京航天航空大学出版社,2004
[4]赵辉.Protel99电子线路CAD.北京:
北京邮电大学出版社,2008
附录1:
完整源程序:
MOVP1,#0FH;
MOVR4,#20H;
“3字符码送P0口
CJNEA,#0F7H,ML4;
“4字符码送P0口
CJNEA,#0EFH,ML5;
“5字符码送P0口
“6字符码送P0口
“7字符码送P0口
CJNEA,#7FH,ML8;
“8”字符码送P0口
RETI
MOVTH0,#80H;
MOVTH1,#83H;
DECR7;
LCALLDISP;
MOVTL1,#00H;
CLRTR1;
MOVA,@A+DPTR
DB0FFH,40H,0FFH,79H,0FFH,24H
DB0FFH,30H,0FFH,19H,0FFH,12H
DB0FFH,02H,0FFH,78H,0FFH,00H
DB0FFH,10H,0F9H,40H,0F9H,79H
DB0F9H,24H,0F9H,30H,0F9H,19H
DB0F9H,12H,0F9H,02H,0F9H,18H
DB0F9H,00H,0F9H,10H,0A4H,40H
DB0A4H,79H,0A4H,24H,0A4H,30H
DB0A4H,19H,0A4H,12H,0A4H,02H
DB0A4H,78H,0A4H,00H,0A4H,10H
END.;
程序结束
附录2:
整体电路图