单片机实训指导书
一、实训的性质、目的及任务:
1、课程性质:本课程属专业技能实操课。
2、课程目的:使学生熟悉单片机实用技术的开发过程,提高汇编语言的编写能力,提高对汇编语言的编辑、汇编、调试运行等技能,通过实际应用和亲身体验,加深对所学知识的理解,增强动手能力
3、 课程任务:通过本课程实训使学生熟悉单片机的基本知识,能利用单片机技术制作简单电子技术产品,培养和锻炼学生进行调试、检测和分析的能力。
二、适合专业: 电子信息技术/生产过程自动化
三、主要仪器设备:单片机仿真器一台、电脑一台、导线等。
四、实训项目与内容提要
1、课程性质:本课程属专业技能实操课。
2、课程目的:使学生熟悉单片机实用技术的开发过程,提高汇编语言的编写能力,提高对汇编语言的编辑、汇编、调试运行等技能,通过实际应用和亲身体验,加深对所学知识的理解,增强动手能力
3、 课程任务:通过本课程实训使学生熟悉单片机的基本知识,能利用单片机技术制作简单电子技术产品,培养和锻炼学生进行调试、检测和分析的能力。
二、适合专业: 电子信息技术/生产过程自动化
三、主要仪器设备:单片机仿真器一台、电脑一台、导线等。
四、实训项目与内容提要
附表:《单片机原理与应用》课程实训项目名称及时间安排
序号 | 实训项目名称 | 实训项目的内容提要 | 时间 |
1 | 彩灯的制作 | 通过并行I/O口控制8个发光二极管,输出两种或三种 节日灯,并利用外中断,在两种或三种状态之间切换。 根据题目,编写汇编程序。编辑、汇编、连接、装载程序,调试运行,直至成功。 | 1.5 |
2 | 电子钟的制作 | 用单片机实现由LED数码管显示的秒表,并设置清零键或者暂停键。根据题目,编写汇编程序。编辑、汇编、连接、装载程序,调试运行,校准时间。 | 2 |
3 | 动态显示器的制作 | 用单片机实验16×16矩阵LED的显示,要求:动态显示完整的英文/中文字符和图形。根据题目,编写汇编程序。编辑、汇编、连接、装载程序,调试运行,直至成功。 | 1.5 |
五、成绩评定:
实训结束,由实训指导教师按如下几点对学生进行考核。出勤,占总成绩的20%;认真程度,占总成绩的20%;实训报告,占总成绩的30%;考核,占总成绩的30%。评定等级分为优、良、中、合格、不合格五种。
实训参考资料
任务一:单片机上电,单灯按1HZ频率循环,一旦按下P3.2所接的按键,发光二极管按双灯循环,松开此键,单灯继续原来的循环。
控制程序
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INT_0
ORG 001BH
LJMP DELAY
MAIN: SETB IT0
MOV TMOD,#01H
MOV TL0,#00H
MOV TH0,#4CH
SETB PT0
SETB EA
SETB EX0
SETB ET0
MOV B,#20
SETB TR0
MOV A,#0FEH
BEGIN: MOV P1,A
CJNE B,#00,$
MOV B,#20
RL A
SJMP BEGIN
INT_0: PUSH ACC
MOV A,#0FBH
LOOP: MOV P1,A
CJNE B,#00,$
MOV B,#20
RL A
JNB P3.2,LOOP
POP ACC
RETI
DELAY: MOV TL0,#00H
MOV TH0,#4CH
DJNZ B,LOOP1
LOOP1: RETI
END
任务二:51单片机秒表程序,以8位LED右边2位显示秒,左边6位显示0,实现秒表计时显示。以4×4矩阵键盘的KE0、KE1、KE2等3键分别实现启动、停止、清零等功能。方法:用单片机定时器T0中断方式,实现1秒定时;利用单片机定时器1方式3计数,实现60秒计数。用动态显示方式实现秒表计时显示,用键盘扫描方式取得KE0、KE1、KE2的键值,用键盘处理程序实现秒表的启动、停止、清零等功能。
按照上述思路可编制源程序如下:
ORG 0000H
AJMP MAIN
ORG 000BH
AJMP CONT
;主程序
;――――――――――初始化程序―――――――――――
MAIN: MOV TMOD,#61H ;置T0方式1定时,T1方式2计数
MOV TH0,#3CH ;T0置初值
MOV TL0,#0B0H
MOV TH1,#0C4H ;T1置初值
MOV TL1,#0C4H
MOV DPTR,#4400H ;8155控制口地址送DPTR
MOV A,#43H ;设置8155工作方式字
MOVX @DPTR,A ;设置PA、PB口输出,PC口输入
MOV 20H,#00H ;60秒计数单元置初值
MOV 21H,#14H ;50ms计数单元置初值
MOV SP,#3FH ;堆栈指针置初值
MOV R2,#08H ;LED待显示位数送R2
MOV R0,#30H ;显示缓冲区首址送R0
STAR: MOV @R0,#00H ;显示缓冲区清零
INC R0
DJNZ R2,STAR
CLR A ;累加器清零
;―――――――――――键盘查询程序――――――――――
汇编语言指导书 KEY: ACALL KS ;调按键查询子程序判是否有键按下
JNZ K1 ;有键按下转移
ACALL DISP ;无键按下,调显示子程序延时
AJMP KEY ;继续查询按键
;―――――――――――键盘扫描程序――――――――――
K1: ACALL DISP ;键盘去抖延时
ACALL DISP
ACALL KS ;再次判别是否有键按下
JNZ K2 ;有键按下转移
AJMP KEY ;无按键,误读,继续查询按键
K2: MOV R3,#0FEH ;首列扫描字送R3
MOV R4,#00H ;首列号送R4
K3: MOV DPTR,#4401H ;PA口地址送DPTR,开始列扫描
MOV A,R3
MOVX @DPTR,A ;列扫描字送PA口
INC DPTR ;指向PC口
INC DPTR
MOVX A,@DPTR ;读取行扫描值
JB ACC.0,L1 ;第0行无键按下,转查第1行
MOV A,#00H ;第0行有键按下,行首键号送A
AJMP LK ;转求键号
L1: JB ACC.1,L2 ;第1行无键按下,转查第2行
MOV A,#08H ;第1行有键按下,行首键号送A
AJMP LK ;转求键号
L2: JB ACC.2,L3 ;第2行无键按下,转查第3行
MOV A,#10H ;第2行有键按下,行首键号送A
AJMP LK ;转求键号
L3: JB ACC.3,NEXT ;第3行无键按下,转查下一列
MOV A,#18H ;第3行有键按下,行首键号送A
AJMP LK
LK: ADD A,R4 ;形成键码送A
PUSH ACC ;键码入栈保护
K4: ACALL DISP
ACALL KS ;等待键释放
JNZ K4 ;未释放,等待
POP ACC ;键释放,弹栈送A
AJMP PR ;转键盘处理程序
NEXT: INC R4 ;修改列号
MOV A,R3
JNB ACC.3,KEY ;4列扫描完返回按键查询状态
RL A ;未扫描完,改为下列扫描字
MOV R3,A ;扫描字暂存R3
AJMP K3 ;转列扫描程序
;―――――――――――键盘处理程序―――――――――――――――
PR: CJNE A,#00H,PR01 ;不是KE0键码,转KE1键
AJMP KE0 ;转KE0键处理程序
PR01: CJNE A,#01H,PR02 ;不是KE1键码,转KE2键
AJMP KE1 ;转KE1键处理程序
PR02: CJNE A,#02H,PR03 ;不是KE2键码,返回按键查询
AJMP KE2 ;转KE2键处理程序
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论