版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、北 华 航 天 工 业 学 院课程设计报告 实践课程名称: 单片机技术课程设计 实 践 地 点: 单片机实验室(7209) 专 业 班 级: 自动化b08222 姓 名: 学 号: 指 导 教 师: 完 成 时 间: 2011 年 4 月 22 日北华航天工业学院电子工程系课程设计任务书姓 名:专 业:自动化班 级:指导教师:职 称:副教授课程设计题目:电子秒表的设计主要课程支撑:模拟电子技术、数字电子技术、微机原理与接口技术实践目标:1 熟练掌握单片机汇编指令的使用方法2 熟练掌握行列式键盘、led显示器的控制与管理方法3 掌握a/d、/d/a的应用4掌握单片机应用系统设计方法、软硬件调试方
2、法5熟练使用单片机仿真软件基本要求:1.设计任务及要求。(1)设计电子秒表,精度为0.01秒(2)具有启动、停止、清零功能(3)每到1秒蜂鸣提示,此功能可关闭。(4)键盘按键启动、停止秒表计数2编程实现题目要求的基本功能,程序运行通过。3撰写课程实践报告(设计思路、实现方法、硬件资源分配、程序流程图、运行结果分析等),要求用a4纸打印实践报告。所需仪器设备:伟福lab6000综合实验仿真系统一台套微机一台成果验收形式:程序上机运行参考文献:lab6000综合实验仿真系统说明书时间安排(1) 7-8周:选题、方案设计(2) 第9周开始上机调试程序(3) 最后一次上机课题验收(4) 第10周上交实
3、践报告指导教师: 教研室主任: 2011年 4 月22日课程设计报告一、功能分析16位led: 595999分秒1/10秒1/100秒2按键启动、停止秒表计数,可以清零。二、硬件设计1. 硬件电路图 2. 元器件清单 伟福lab6000综合实验仿真系统一台套;微机一台;导线若干三、程序设计1.程序:outbit equ 08002h ; 位控制口outseg equ 08004h ; 段控制口in equ 08001h ; 键盘读入口ledbuf equ 60h ; 显示缓冲hour equ 40hminute equ 41hsecond equ 42hc100us equ 43hspeake
4、r equ p1.2tick equ 200t100us equ 256-50 ljmp start org 000bh ljmp t0intt0int: push psw push acc mov a, c100us+1 jnz goon0 dec c100usgoon0: dec c100us+1 mov a, c100us orl a, c100us+1 jnz exit mov c100us, #high(tick) mov c100us+1, #low(tick) inc second mov a, second cjne a, #60, exit mov second, #0 in
5、c minute call lightup mov a, minute cjne a, #60, exit mov minute, #0 inc hour mov a, hour cjne a, #24, exit mov hour, #0exit: pop acc pop psw retidelay: mov r7, #0delayloop: djnz r7, delayloop djnz r6, delayloop rettestkey: mov dptr, #outbit mov a, #0 movx dptr, a ; 输出线置为0 mov dptr, #in movx a, dptr
6、 ; 读入键状态 cpl a anl a, #0fh ; 高四位不用 retkeytable: ; 键码定义 db 16h, 15h, 14h, 0ffh db 13h, 12h, 11h, 10h db 0dh, 0ch, 0bh, 0ah db 0eh, 03h, 06h, 09h db 0fh, 02h, 05h, 08h db 00h, 01h, 04h, 07hgetkey: mov dptr, #outbit mov p2, dph mov r0, #low(in) mov r1, #00100000b mov r2, #6kloop: mov a, r1 ; 找出键所在列 cpl
7、 a movx dptr, a cpl a rr a mov r1, a ; 下一列 movx a, r0 cpl a anl a, #0fh jnz goon1 ; 该列有键入 djnz r2, kloop mov r2, #0ffh ; 没有键按下, 返回 0ffh sjmp exit3goon1: mov r1, a ; 键值 = 列 x 4 + 行 mov a, r2 dec a rl a rl a mov r2, a ; r2 = (r2-1)*4 mov a, r1 ; r1中为读入的行值 mov r1, #4loopc: rrc a ; 移位找出所在行 jc exit3 inc
8、r2 ; r2 = r2+ 行值 djnz r1, loopcexit3: mov a, r2 ; 取出键码 mov dptr, #keytable movc a, a+dptr mov r2, awaitrelease: mov dptr, #outbit ; 等键释放 clr a movx dptr, a mov r6, #10 call delay call testkey jnz waitrelease mov a, r2 retledmap: ; 八段管显示码 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7c
9、h, 39h, 5eh, 79h, 71hdisplayled: mov r0, #ledbuf mov r1, #6 ; 共6个八段管 mov r2, #00100000b ; 从左边开始显示loop: mov dptr, #outbit mov a, #0 movx dptr, a ; 关所有八段管 mov a, r0 mov dptr, #outseg movx dptr,a mov dptr, #outbit mov a, r2 movx dptr, a ; 显示一位八段管 mov r6, #1 call delay mov a, r2 ; 显示下一位 rr a mov r2, a i
10、nc r0 djnz r1, loop retlightup: jb p1.3,lightstop setb speaker mov b,#0ffhlightdelay: nop nop djnz b,lightdelay clr speakerlightstop: rettoled: mov dptr, #ledmap movc a, a+dptr retstart: mov ledbuf+0, #07ch mov ledbuf+1, #03fh mov ledbuf+2, #07fh mov ledbuf+3, #05bh mov ledbuf+4, #05bh mov ledbuf+5,
11、 #05bh call displayled call testkey jz start call getkey cjne a,#0ah,startstart1: mov tmod, #02h ; 模式2, 定时器 mov th0, #t100us mov tl0, #t100us mov ie, #10000010b mov hour, #0 mov minute, #0 mov second, #0 mov c100us, #high(tick) mov c100us+1, #low(tick) setb tr0main: jb p1.0,stop jb p1.1,clear callte
12、stkey call getkey movb,a xrla,#0bh jz stop0 mov a,b cjne a,#0ch,main2 ljmp clear0main2:mov a, hour mov b, #10 div ab call toled mov ledbuf, a mov a, b call toled orl a, #80h mov ledbuf+1, a mov a, minute mov b, #10 div ab call toled mov ledbuf+2, a mov a, b call toled orl a, #80h mov ledbuf+3, a mov
13、 a, second mov b, #10 div ab call toled mov ledbuf+4, a mov a, b call toled mov ledbuf+5, a call displayled ljmp mainstop:mov ie,#00000000b calldisplayled jb p1.0,stop movie,#10000010b jnb p1.0,main2stop0:movie,#00000000bcall displayled call testkey call getkey mov b,a xrl a,#0ch jz clear0 mova,b cj
14、ne a,#0bh,stop0 mov ie,#10000010b jmp main2clear:mov ledbuf+0, #03fh mov ledbuf+1, #03fh mov ledbuf+2, #03fh mov ledbuf+3, #03fh mov ledbuf+4, #03fh mov ledbuf+5, #03fh mov hour, #0 mov minute, #0 mov second, #0 call displayled jb p1.1,clear ljmp main2clear0:mov ledbuf+0, #03fh mov ledbuf+1, #03fh m
15、ov ledbuf+2, #03fh mov ledbuf+3, #03fh mov ledbuf+4, #03fh mov ledbuf+5, #03fh mov hour, #0 mov minute, #0 mov second, #0 call displayled call testkey jz clear0 lcall getkey xrl a,#0ah cjne a,#0,clear0 ljmp start end 2.硬件连接分配由实验箱上的接线cs0接到键盘显示,我们可以得到段口,位口,列口及位口的地址。因为实验箱的接线中,列口和位口共用一个地址口,所以程序的端口说明就声明了
16、三个地址。四、软硬件调试 首先按照硬件连接图接线,连线完毕之后打开实验箱电源,在伟福6000里选择模拟器选项仿真器仿真器设置,选择相应的参数,点击确定。打开程序,点击编译,再点击运行,之后在试验箱上进行硬件性能测试。五、设计分析总结为期一周的单片机课设已经结束了,在本次单片机课程中我组成员基本完成了应用mc51单片机和wave6000设计单片的任务,并且在原有要求上进行了一定的功能强化和改进。在初期,由于大家对单片机的了解并不是很深入,我们陷入了各种迷茫与困惑之中,虽然每天都有新的进展,但是进程缓慢,漏洞百出,经常是拆了东墙补西墙,在进行了单片机定时器和中断知识的进一步强化学习之后,我们组的进展明显加快,尤其是在老师的指导下,一些难以理解东西渐渐明朗,理清思路的我们在课设时间约一半的时候,顺利的完成了我们的课设要求。在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论