黑龙江科技学院
单片机综合设计性实验
实验项目名称 生产车间流水线自动控制模拟
所属课程名称 单片机
实 验 日 期 2010.9.18~22
班 级 电气08-6班
姓 名 于安洲
学 号 32号
成 绩
北 华 航 天 工 业 学 院
课程设计报告
实 践 地 点: 专 业 班 级: 姓 名: 学 号: 指 导 教 师: 完 成 时 间: 年日 实践课程名称:
北华航天工业学院电子工程系
课程设计任务书
指导教师:李叶紫 教研室主任:李叶紫
20xx年 4 月22日
- 1 -
课程设计报告
一、功能分析
1
二、硬件设计
1. 硬件电路图
2
2. 元器件清单
伟福Lab6000综合实验/仿真系统一台套;微机一台;导线若干
三、程序设计
1.程序:
OUTBIT equ 08002h ; 位控制口 OUTSEG equ 08004h ; 段控制口 IN equ 08001h ; 键盘读入口 LEDBuf equ 60h ; 显示缓冲 Hour equ 40h
Minute equ 41h
- 2 -
Second equ 42h
C100us equ 43h
Speaker equ P1.2
Tick equ 200
T100us equ 256-50
ljmp Start
org 000bh
ljmp T0Int
T0Int:
push PSW
push ACC
mov a, C100us+1 jnz Goon0
dec C100us
Goon0:
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 inc Minute
call lightup
mov a, Minute
cjne a, #60, Exit
mov Minute, #0 inc Hour
mov a, Hour
cjne a, #24, Exit
mov Hour, #0
Exit:
pop ACC
pop PSW
reti
Delay:
mov r7, #0
DelayLoop:
djnz r7, DelayLoop
- 3 -
djnz r6, DelayLoop
ret
TestKey:
mov dptr, #OUTBIT
mov a, #0
movx @dptr, a ; 输出线置为0 mov dptr, #IN
movx a, @dptr ; 读入键状态 cpl a
anl a, #0fh ; 高四位不用
ret
KeyTable: ; 键码定义
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, 07h
GetKey:
mov dptr, #OUTBIT
mov P2, dph
mov r0, #Low(IN)
mov r1, #00100000b
mov r2, #6
KLoop:
mov a, r1 ; 找出键所在列 cpl 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 Exit3
Goon1:
mov r1, a ; 键值 = 列 X 4 + 行 mov a, r2
dec a
rl a
rl a
- 4 -
mov r2, a ; r2 = (r2-1)*4
mov a, r1 ; r1中为读入的行值 mov r1, #4
LoopC:
rrc a ; 移位找出所在行 jc Exit3
inc r2 ; r2 = r2+ 行值 djnz r1, LoopC
Exit3:
mov a, r2 ; 取出键码 mov dptr, #KeyTable
movc a, @a+dptr
mov r2, a
WaitRelease:
mov dptr, #OUTBIT ; 等键释放 clr a
movx @dptr, a
mov r6, #10
call Delay
call TestKey
jnz WaitRelease
mov a, r2
ret
LEDMAP: ; 八段管显示码
db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h DisplayLED:
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
- 5 -
mov r2, a
inc r0
djnz r1, Loop
ret
LIGHTUP:
jb p1.3,lightstop
setb Speaker
mov b,#0ffh
LIGHTDELAY:
nop
nop
djnz b,lightdelay
clr speaker
LIGHTSTOP:
ret
ToLED:
mov dptr, #LEDMap movc a, @a+dptr ret
START:
mov LEDBuf+0, #07ch
mov LEDBuf+1, #03fh mov LEDBuf+2, #07fh mov LEDBuf+3, #05bh mov LEDBuf+4, #05bH mov LEDBuf+5, #05bH call displayled
call testkey
jz start
call getkey
cjne a,#0ah,start
START1:
mov TMOD, #02h 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 TR0
MAIN:
JB P1.0,stop
- 6 - ; 模式2, 定时器
JB P1.1,clear Call testkey call getkey mov b,a
xrl a,#0bh jz stop0 mov a,b
cjne a,#0ch,main2 ljmp clear0 MAIN2:
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 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 MAIN STOP:
mov ie,#00000000b call displayled jb p1.0,stop
mov ie,#10000010b jnb p1.0,main2
- 7 -
STOP0:
mov ie,#00000000b
call displayled
call testkey call getkey mov b,a
xrl a,#0ch
jz clear0
mov a,b
cjne a,#0bh,stop0 mov ie,#10000010b jmp main2
CLEAR:
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 main2
CLEAR0:
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 call testkey
jz clear0
lcall getkey
xrl a,#0ah
cjne a,#0,clear0 ljmp start
end
- 8 -
2.硬件连接分配
由实验箱上的接线cs0接到键盘显示,我们可以得到段口,位口,列口及位口的地址。因为实验箱的接线中,列口和位口共用一个地址口,所以程序的端口说明就声明了三个地址。
- 9 -
四、软硬件调试
首先按照硬件连接图接线,连线完毕之后打开实验箱电源,在伟福6000里选择模拟器选项仿真器——仿真器设置,选择相应的参数,点击确定。打开程序,点击编译,再点击运行,之后在试验箱上进行硬件性能测试。
五、设计分析总结
为期一周的单片机课设已经结束了,在本次单片机课程中我组成员基本完成了应用mc51单片机和wave6000设计单片的任务,并且在原有要求上进行了一定的功能强化和改进。在初期,由于大家对单片机的了解并不是很深入,我们陷入了各种迷茫与困惑之中,虽然每天都有新的进展,但是进程缓慢,漏洞百出,经常是拆了东墙补西墙,在进行了单片机定时器和中断知识的进一步强化学习之后,我们组的进展明显加快,尤其是在老师的指导下,一些难以理解东西渐渐明朗,理清思路的我们在课设时间约一半的时候,顺利的完成了我们的课设要求。 在一周的课程设计与实践中,我们组的四位成员经历了从对单片机的基本了解到能独立完成简单程序设计的过程,并且深入巩固了单片机的定时器,中断等基础知识。为以后的学习和工作打下了一定的基础。
六、参考文献
1.《单片机原理与应用》 胡辉,李叶紫,胡丽平 主编 中国水利水电出版社 2.《单片机原理与接口技术》 牛昱光 主编 电子工业出版社
3.《单片机系统设计与应用实例》 韩志军 主编 机械工业出版社
- 10 -
成 绩 评 定 表
- 11 -
重庆科技学院课程设计成果院系电气与信息工程学院班级电自普1002班学生姓名邹锋学号20xx441603设计地点单位逸夫科技大楼I3…
单片机总结报告IC卡小组成员刘绍凯06291043刘永欢06291044一实验设备二实验原理刘中芳06291045如硬件连接图所示…
姓名学号实验一1存储块置全1源代码汇编语言源程序ORG00HSTARTEQU30H起始地址MOVR1STARTMOVR032Rn中…
目录一概述11设计制作产品的背景目的意义12设计制作产品的设计要求13分工情况工作计划及本人所总结工作14本课题的基本内容重点及难…
电气与信息工程学院实践基地实验报告黑龙江科技学院单片机综合设计性实验实验项目名称生产车间流水线自动控制模拟所属课程名称单片机实验日…
题目单片机组成原理实验报告学院计算机科学与工程学院专业信息安全姓名学号20xx年12月8日实验一输入输出接口编程一实验目的1掌握K…
西南科技大学学生实验报告实验课程名称单片机原理及接口技术开课实验室CADCAM计算机实验室学院制造学院专业成型班级学生姓名学号开课…
桂林电子科技大学职业技术学院单片机实训报告红外遥控学院系电子信息工程系专业电子信息工程技术学号1212220xx7学生姓名李建军指…
目录一概述11设计制作产品的背景目的意义12设计制作产品的设计要求13分工情况工作计划及本人所总结工作14本课题的基本内容重点及难…
西南科技大学20xx级微机原理与接口技术课题名称姓名学号系部专业指导教师课程设计报告微机原理与接口技术制造科学与工程学院20xx年…