单片机实训指导书_第1页
单片机实训指导书_第2页
单片机实训指导书_第3页
单片机实训指导书_第4页
单片机实训指导书_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机实训指导书一、实训的性质、目的及任务:1、课程性质:本课程属专业技能实操课。2、课程目的:使学生熟悉单片机实用技术的开发过程,提高汇编语言的编写能力,提高对汇编语言的编辑、汇编、调试运行等技能,通过实际应用和亲身体验,加深对所学知识的理解,增强动手能力3、 课程任务:通过本课程实训使学生熟悉单片机的基本知识,能利用单片机技术制作简单电子技术产品,培养和锻炼学生进行调试、检测和分析的能力。二、适合专业: 电子信息技术/生产过程自动化三、主要仪器设备:单片机仿真器一台、电脑一台、导线等。四、实训项目与内容提要附表:单片机原理与应用课程实训项目名称及时间安排序号实训项目名称 实训项目的内容提要

2、时间 1彩灯的制作通过并行I/O口控制8个发光二极管,输出两种或三种节日灯,并利用外中断,在两种或三种状态之间切换。根据题目,编写汇编程序。编辑、汇编、连接、装载程序,调试运行,直至成功。1.52电子钟的制作用单片机实现由LED数码管显示的秒表,并设置清零键或者暂停键。根据题目,编写汇编程序。编辑、汇编、连接、装载程序,调试运行,校准时间。23动态显示器的制作用单片机实验1616矩阵LED的显示,要求:动态显示完整的英文/中文字符和图形。根据题目,编写汇编程序。编辑、汇编、连接、装载程序,调试运行,直至成功。1.5五、成绩评定:实训结束,由实训指导教师按如下几点对学生进行考核。出勤,占总成绩的

3、20%;认真程度,占总成绩的20%;实训报告,占总成绩的30%;考核,占总成绩的30%。评定等级分为优、良、中、合格、不合格五种。实训参考资料任务一:单片机上电,单灯按1HZ频率循环,一旦按下P3.2所接的按键,发光二极管按双灯循环,松开此键,单灯继续原来的循环。控制程序ORG 0000H LJMP MAIN ORG 0003H LJMP INT_0 ORG 001BH LJMP DELAYMAIN: SETB IT0 MOV TMOD,#01H MOV TL0,#00H MOV TH0,#4CH SETB PT0 SETB EA SETB EX0 SETB ET0 MOV B,#20 SET

4、B TR0 MOV A,#0FEHBEGIN: MOV P1,A CJNE B,#00,$ MOV B,#20 RL A SJMP BEGININT_0: PUSH ACCMOV A,#0FBHLOOP: MOV P1,ACJNE B,#00,$ MOV B,#20 RL A JNB P3.2,LOOP POP ACC RETIDELAY: MOV TL0,#00H MOV TH0,#4CH DJNZ B,LOOP1 LOOP1: RETI END任务二:51单片机秒表程序,以8位LED右边2位显示秒,左边6位显示0,实现秒表计时显示。以44矩阵键盘的KE0、KE1、KE2等3键分别实现启动、

5、停止、清零等功能。方法:用单片机定时器T0中断方式,实现1秒定时;利用单片机定时器1方式3计数,实现60秒计数。用动态显示方式实现秒表计时显示,用键盘扫描方式取得KE0、KE1、KE2的键值,用键盘处理程序实现秒表的启动、停止、清零等功能。按照上述思路可编制源程序如下: ORG 0000H AJMPMAIN ORG000BH AJMPCONT ;主程序 ;初始化程序MAIN:MOVTMOD,#61H;置T0方式1定时,T1方式2计数 MOVTH0,#3CH;T0置初值 MOVTL0,#0B0H MOVTH1,#0C4H;T1置初值 MOVTL1,#0C4H MOVDPTR,#4400H;815

6、5控制口地址送DPTR MOVA,#43H;设置8155工作方式字 MOVXDPTR,A;设置PA、PB口输出,PC口输入 MOV20H,#00H;60秒计数单元置初值 MOV21H,#14H ;50ms计数单元置初值 MOVSP,#3FH;堆栈指针置初值 MOVR2,#08H;LED待显示位数送R2 MOVR0,#30H ;显示缓冲区首址送R0 STAR:MOVR0,#00H;显示缓冲区清零 INCR0 DJNZR2,STAR CLRA;累加器清零 ;键盘查询程序 KEY: ACALLKS;调按键查询子程序判是否有键按下 JNZK1;有键按下转移 ACALLDISP;无键按下,调显示子程序延

7、时 AJMPKEY;继续查询按键 ;键盘扫描程序 K1: ACALLDISP;键盘去抖延时 ACALLDISP ACALLKS;再次判别是否有键按下 JNZK2;有键按下转移 AJMPKEY;无按键,误读,继续查询按键 K2: MOVR3,#0FEH;首列扫描字送R3 MOVR4,#00H;首列号送R4 K3: MOVDPTR,#4401H;PA口地址送DPTR,开始列扫描 MOVA,R3 MOVXDPTR,A;列扫描字送PA口 INCDPTR;指向PC口 INCDPTR MOVXA,DPTR;读取行扫描值 JBACC.0,L1;第0行无键按下,转查第1行 MOVA,#00H;第0行有键按下,

8、行首键号送A AJMPLK;转求键号 L1: JBACC.1,L2;第1行无键按下,转查第2行 MOVA,#08H;第1行有键按下,行首键号送A AJMPLK;转求键号 L2: JBACC.2,L3;第2行无键按下,转查第3行 MOVA,#10H;第2行有键按下,行首键号送A AJMPLK;转求键号 L3: JBACC.3,NEXT;第3行无键按下,转查下一列 MOVA,#18H;第3行有键按下,行首键号送A AJMPLK LK: ADDA,R4;形成键码送A PUSHACC;键码入栈保护 K4: ACALLDISP ACALLKS;等待键释放 JNZK4;未释放,等待 POPACC;键释放,

9、弹栈送A AJMPPR;转键盘处理程序 NEXT:INCR4;修改列号 MOVA,R3 JNBACC.3,KEY;4列扫描完返回按键查询状态 RLA;未扫描完,改为下列扫描字 MOVR3,A;扫描字暂存R3 AJMPK3;转列扫描程序 ;键盘处理程序 PR: CJNEA,#00H,PR01;不是KE0键码,转KE1键 AJMPKE0;转KE0键处理程序 PR01:CJNEA,#01H,PR02;不是KE1键码,转KE2键 AJMPKE1;转KE1键处理程序 PR02:CJNEA,#02H,PR03;不是KE2键码,返回按键查询 AJMPKE2;转KE2键处理程序 PR03:AJMPKEY KE

10、0: SETBTR0;启动定时器T0 SETBTR1;启动定时器T1 SETBET0;允许定时器T0中断 SETBEA;开中断 AJMPKEY;返回键盘查询状态 KE1: CLREA;关中断 CLRET0;禁止定时器T0中断 CLRTR1;关定时器T1 CLRTR0;关定时器T0 AJMPKEY KE2: CLREA;关中断 AJMPMAIN;返回主程序进行初始化 ;按键查询子程序 KS: MOVDPTR,#4401H;置8155PA口地址 MOVA,#00H MOVXDPTR,A;全扫描字#00H送PA口 INCDPTR;指向PC口 INCDPTR MOVXA,DPTR;读入PC口状态 CP

11、LA;变正逻辑,高电平表示有键按下 ANLA,#0FH;屏蔽高4位 RET;返回,A0表示有键按下 ;LED动态显示子程序 DISP:PUSHACC;A入栈保护 SETBRS0;保护第0组工作寄存器,启用第1组工作寄存器 MOVR2,#08H ;LED待显示位数送R2 MOVR1,#00H;设定显示时间 MOVR3,#7FH;选中最右端LED MOVR0,#30H;显示缓冲区首址送R0 MOVA,R0;秒显示个位送A DISP1:MOVDPTR,#TAB;指向字形表首址 MOVCA,A+DPTR;查表取得字形码 MOVDPTR,#4402H;指向8155PB口(段码口) MOVXDPTR,A;

12、字形码送PB口 MOVA,R3;取位选字 MOVDPTR,#4401H;指向8155PA口(位选口) MOVXDPTR,A;位码送PA口 DJNZR1,$;延时0.5ms DJNZR1,$;延时0.5ms RRA;位选字移位 MOVR3,A;移位后的位选字送R3 INCR0;指向下一位缓冲区地址 MOVA,R0;缓冲区数据送A DJNZR2,DISP1;未扫描完,继续循环 CLRRS0;恢复第0组工作寄存器 POPACC;A弹栈,恢复现场 RET TAB:DB3FH,06H,5BH,4FH,66H;共阴极LED字形表 DB6DH,7DH,07H,7FH,6FH ;定时器中断服务程序 CONT:

13、PUSH ACC;保护现场 MOV TH0,#3CH;定时器T1重置初值 MOV TL0,#0B0H MOV A,20H;秒计数器送A AJMP CONT1REN:AJMP REN1 CONT1:DJNZ21H,REN;1秒定时未到,中断返回 MOV21H,#14H;重置50ms计数初值 CLRP3.5;软件产生定时器T1计数脉冲 NOP NOP SETBP3.5 INCA;1秒计数值加1 DAA;换算为10进制计数 JBCTF1,CONT2;60秒到,转清零 CONT3:MOV20H,A;计数值送60秒计数单元20H ANLA,#0FH;屏蔽高4位 MOV30H,A;秒表个位待显示数据送显示

14、缓冲区 MOVA,20H SWAPA;60秒计数单元高、低4位数据互换 ANLA,#0FH;屏蔽高4位 MOV31H,A;秒表十位待显示数据送显示缓冲区 AJMPREN1 CONT2:MOVA,#00H AJMPCONT3 REN1:POPACC;恢复现场 RET;中断返回 END任务三:由点阵显示汉字并轮回滚动,显示程序字库中的汉字 杭州西湖,浙江天煌!库中的汉字代码,显示不同的汉字。接线:最小系统的P0口接JD15,P3口接JD14,P1.0P1.3分别接AD ORG 0000H START: MOV A,#0FFH ;开机初始化,清除画面 MOV P0,A ;清除P0口 ANL P3,#

15、00 ;清除P2口 MOV R2,#200 D1: MOV R3,#248 ;延时 DJNZ R3,$ DJNZ R2,D1 MOV 20H,#00H ;取码指针的初值L1: MOV R1,#100 ;每个字的停留时间L2: MOV R6,#16 ;每个字16个码 MOV R4,#00H ;扫描指针清零 MOV R0,20H ;取码指针存入R0L3: MOV A,R4 ;扫描指针存入A MOV P1,A ;开三极管扫描输出 INC R4 ;扫描下一个 MOV A,R0 MOV DPTR,#TABLE ;取数据代码上半部分 MOVC A,A+DPTR MOV P0,A ;查表送P0口 INC R

16、0 MOV A,R0 MOV DPTR,#TABLE ;取数据代码下半部分 MOVC A,A+DPTR MOV P3,A ;查表送P2口 INC R0 MOV R3,#02 D2: MOV R5,#248 DJNZ R5,$ DJNZ R3,D2 MOV A,#00H MOV P0,A ANL P3,#00H DJNZ R6,L3 ;16个码是否完成? DJNZ R1,L2 ;每个字的停留时间是否到了? MOV 20H,R0 CJNE R0,#0FFH,L1 ;8个字的256个码检测是否送完 ? JMP START TABLE: DB 08H,20H,08H,0C0H,0BH,00H,0FFH

17、,0FFH ;杭 DB 09H,01H,08H,82H,10H,04H,13H,0F8H DB 92H,00H,72H,00H,12H,00H,17H,0FCH DB 32H,02H,10H,02H,00H,0EH,00H,00H DB 01H,00H,0EH,02H,00H,0CH,0FFH,0F0H ;州 DB 00H,00H,08H,00H,06H,00H,00H,00H DB 7FH,0FCH,00H,00H,08H,00H,06H,00H DB 00H,00H,0FFH,0FFH,00H,00H,00H,00H DB 20H,00H,23H,0FFH,22H,02H,22H,0AH

18、;西 DB 22H,12H,3FH,0E2H,22H,02H,22H,02H DB 22H,02H,3FH,0E2H,22H,12H,22H,12H DB 22H,02H,67H,0FFH,22H,00H,00H,00H DB 08H,20H,84H,3FH,46H,40H,68H,80H ;湖 DB 09H,0FEH,09H,04H,0FFH,04H,09H,04H DB 0BH,0FDH,09H,02H,7FH,0FCH,44H,42H DB 44H,41H,0FFH,0FEH,40H,00H,00H,00H DB 08H,20H,44H,20H,26H,7FH,30H,80H ;浙 DB 09H,42H,08H,41H,0FFH,0FEH,08H,82H DB 09H,04H,3FH,0F8H,22H,00H,22H,00H DB 43H,0FFH,46H,00H,02H,00H,00H,00H DB 08H,20H,84H,20H,46H,7FH,60H,80H ;江 DB 01H,04H,20H,04H,20H,04H,20H,04H DB 20H,04H,3FH,0FCH,20H,04H,20H,04H DB 60H,04H,20H,0CH,00H,04H,00H,00H

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论