




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.单片机实验指导书(实验源程序)实验二、三 I/O接口实验1、 输出实验例1:ORG0000HAJMPSTART;跳转到初始化程序ORG0033H;- 主程序开始 -START:MOV P1,#0FFH ;是所有LED熄灭ACALL DELAY ;调用延时子程序CLR P1.0 ;P1.0输出低电平,使LED3点亮 ACALL DELAY ;调用延时子程序 SETB P1.0 ;P1.0输出高电平,使LED3熄灭 CLR P1.1 ;P1.1输出低电平,使LED4点亮 ACALL DELAY ;调用延时子程序 SETB P1.1 ;P1.1输出高电平,使LED4熄灭 CLR P1.2 ;P1.
2、2输出低电平,使LED5点亮 ACALL DELAY ;调用延时子程序 SETB P1.2 ;P1.2输出高电平,使LED5熄灭 CLR P1.3 ;P1.3输出低电平,使LED6点亮 ACALL DELAY ;调用延时子程序 MOV P1, #0F0H ;LED3LED6全部发光ACALL DELAY ;调用延时子程序AJMP START ;返回到标号START处再循环;- 延时子程序 -DELAY: MOV R5,#10LOOP: MOV R6,#200LOOP1: MOV R7,#250LOOP2: DJNZ R7,LOOP2 DJNZ R6,LOOP1 DJNZ R5,LOOP RET
3、例2:ORG0000HAJMPSTART ;跳转到初始化程序ORG0033H;- 主程序开始 -START:MOV P1,#0FFH ;是所有LED熄灭ACALL DELAY ;调用延时子程序MOVACC,#0FEH ;ACC中先装入LED3亮的数据(二进制的11111110) MOV P1,ACC ;将ACC的数据送P1口 ACALL DELAY ;调用延时子程序MOV R0,#03H ;上句送到P1口的数据就点亮了LED1,所以将数据再移动3次就完成一个4位流水过程 LOOP3: RL A ;将ACC中的数据左移一位 MOV P1,A ;把ACC移动过的数据送p1口显示 ACALL DEL
4、AY ;调用延时子程序 DJNZ R0,LOOP3 ;没有移动够4次继续移动 MOV P1, #0F0H ;LED3LED6全部发光ACALL DELAY ;调用延时子程序AJMP START ;返回到标号START处再循环;- 延时子程序 -DELAY: MOV R5,#10LOOP: MOV R6,#200LOOP1: MOV R7,#250LOOP2: DJNZ R7,LOOP2 DJNZ R6,LOOP1 DJNZ R5,LOOP RET2、 输入实验例1:;*;* K1控制LED3亮灭交替 *;*org 0star: mov p1,#0h mov p3,#0ffhst1: jb p3
5、.2,$ jnb p3.2,$ cpl p1.0 sjmp st1 end例2:;*;* 按压实验板上的按钮K1,控制P1.0的LED亮灭 *;* 按压K1,LED点亮,再次按压K1,LED熄灭 *;* 程序没有进行按键消抖动处理,控制结果会因为按键抖动而出错 *;* 按压K1十次,大概有35次输出会因为按键抖动而发生错误 *;* 实验时请多按几次,观察一下效果,加深对按键消抖动重要性的认识 *;*ORG0000HAJMPSTART;跳转到初始化程序ORG0033HSTART:MOVSP,#60H;SP初始化MOVP3,#0FFH;端口初始化MAIN:JBP3.2,MAIN;检测按键K1有没有
6、按下 CPLP1.0;执行按键命令,改变P1.0指示灯状态 JNBP3.2,$;等待按键K1释放 AJMPMAIN;返回重新检测按键 END例3:;*;* 按压实验板上的按钮K1,控制P1.0的LED亮灭 *;* 按压K1,LED点亮,再次按压K1,LED熄灭 *;* 程序进行了按键消抖动处理,不会出现控制结果出错的现象 *;* 由此可以看出按键软件消抖动的功效 *;*ORG0000HAJMPSTART;跳转到初始化程序ORG0033HSTART: MOVSP,#60H;SP初始化MOVP3,#0FFH;端口初始化MAIN:JBP3.2,MAIN;检测按键P3.2有没有按下ACALLYS20m
7、s;消前沿抖动延时,实现软件去抖动JBP3.2,MAIN;再次检测按键,如果为高电平,则是抖动CPLP1.0;执行按键命令,改变P1.0指示灯状态JNBP3.2,$;等待按键释放AJMPMAIN;返回重新检测按键YS20ms:MOVR7,#40;延时20ms子程序YS1: MOVR6,#229 DJNZR6,$ DJNZR7,YS1 RET实验四 多级外部中断控制实验例程:;*;* INT0,INT1为边沿触发方式,INT1为高级中断 *;* 主程序中8个LED轮流闪烁 *;* 外中断程序0中,8个指示灯同时闪烁8次 *;* 外中断程序1中,左右4个指示灯交替闪烁 *;* 因为INT1为高级中
8、断,所以INT1中断可以中断INT0中断程序 *;* 即当按压K1进入外中断0时,8个LED同时闪烁,此时按压K2可以中断 *;* TIN0的执行。相反,当INT1中断后,按压K1则不能中断INT1的执行 *;* ORG 0000H AJMP START ORG 0003H JMP PGINT0 ORG 0013H JMP PGINT1 ORG 0033HSTART: MOV P0,#0FFH MOV P1,#0FFH MOV P2,#0FFH MOV P3,#0FFHMAIN: MOV IE,#10000101B;INT0,INT1中断使能 MOV IP,#00000100B;INT1中断优
9、先 MOV TCON,#00000000B;INT0,INT1为电平触发 MOV SP,#60H MOV A,#0FEHLOOP: MOV P1,A CALL DELAY RL A JMP LOOP JMP MAIN PGINT0: PUSH ACC MOV R2,#8LOOP0: MOV P1,#00H CALL DELAY MOV P1,#0FFH CALL DELAY DJNZ R2,LOOP0 POP ACC RETI PGINT1: PUSH ACC MOV R3,#8LOOP1: MOV P1,#0FH CALL DELAY MOV P1,#0F0H CALL DELAY DJNZ
10、 R3,LOOP1 POP ACC RETI ;* 延时子程序 *DELAY:MOVR4,#80D1:MOVR5,#10D2:MOVR6,#228DJNZR6,$DJNZR5,D2DJNZR4,D1RETEND实验五 定时器/计数器实验程序一:ORG0000HAJMPSTARTORG000BH ;定时器0的中断向量地址AJMPTIME0;跳转到真正的定时器程序处ORG0030HSTART:MOVP1,#0FFH ;关所有灯MOVTMOD,#00000001B ;定时/计数器0工作于方式1MOVTH0,#15HMOVTL0,#0A0H ;即数5536SETBEA;开总中断允许SETBET0;开定
11、时/计数器0允许SETBTR0 ;定时/计数器0开始运行LOOP:AJMPLOOP;真正工作时,这里可写任意程序TIME0:;定时器0的中断处理程序PUSHACC PUSHPSW;将PSW和ACC推入堆栈保护CPLP1.0MOVTH0,#15HMOVTL0,#0A0H;重置定时常数POPPSWPOPACCRETIEND程序二:ORG 0000HAT0: MOV P1,#0FFH MOV TMOD,#61H ;设置T1为计数器,工作于方式2;设置T0为定时器,工作于方式1 MOV TL1,#246 MOV TH1,#246 SETB TR1AT1: CPL P1.7 AT2: MOV TL0,#
12、00H ; MOV TH0,#4CH ;即数15536 SETB TR0 JNB TF0,$ CLR TF0 CPL P1.0 JNB TF1,AT2 CLR TF1 SJMP AT1 END实验六 数码管显示实验 ;*数码管显示6的程序1 *MAIN: CLR P0.0 ;P0.0输出低电平,点亮数码管段码a SETB P0.1 ;P0.1输出高电平,熄灭数码管段码b CLR P0.2 ;P0.2输出低电平,点亮数码管段码c CLR P0.3 ;P0.3输出低电平,点亮数码管段码d CLR P0.4 ;P0.4输出低电平,点亮数码管段码e CLR P0.5 ;P0.5输出低电平,点亮数码管段
13、码f CLR P0.6 ;P0.6输出低电平,点亮数码管段码g SETB P0.7 ;P0.7输出高电平,熄灭数码管段码dp CLR P2.0 ;P2.0输出低电平,选通数码管DG1 SETB P2.1 ;P2.1输出高电平,不选通数码管DG2 SETB P2.2 ;P2.2输出高电平,不选通数码管DG3 SETB P2.3 ;P2.3输出高电平,不选通数码管DG4 SETB P2.4 ;P2.4输出高电平,不选通数码管DG5 SETB P2.5 ;P2.5输出高电平,不选通数码管DG5 AJMPMAIN;跳转到开始重新进行 END ;程序结束 ;*数码管显示6的程序2 *MAIN: MOVP
14、0,#82H ;将数字6的段码输出到P0口MOVP2,#0FEH ;从P2口输出数码管选通代码,让DG1显示,其它数码管关闭 AJMPMAIN ;跳转到开始重新进行 END ;程序结束;*;* - 在数码管上动态显示89C51 - *;*MAIN:MOVP0,#80H;第1位数码管显示“8”CLR P2.5 ;允许第1位数码管显示ACALLDELAY;显示延时一段时间MOVP0,#0FFH;清除P0口字形码MOVP2,#0FFH;停止所有数码管显示选通,关闭所有显示MOVP0,#90H;第2位数码管显示“9”CLR P2.4 ;允许第2位数码管显示ACALLDELAY;显示延时一段时间MOVP0,#0FFH;清除P0口字形码MOVP2,#0FFH;停止所有数码管显示选通,关闭所有显示MOVP0,#0C6H;第3位数码管显示“C”CLR P2.3 ;允许第3位数码管显示ACALLDELAY;显示延时一段时间MOVP0,#0FFH;清除P0口字形码MOVP2,#0FFH;停止所有数码管显示选通,关闭所有显示MOVP0,#92H;第4位数码管显示“5”CLR P2.2 ;允许第4位数码管显示ACALLDELAY;显示延时一段时间MOVP0,#0FFH;清除
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 牙周病学测试题与答案
- 跨部门协作沟通技巧-打破沟通壁垒提高工作效率
- 跨部门合作与项目管理的成功实践
- 跨境供应链的大数据管理与决策支持系统建设
- 跨城公共交通的优化与发展
- 大单元视域下初中语文群文阅读教学研究
- 小学三年级数学万以内加减混合两步运算水平考核例题带答案
- 鸿禧投资协议范本
- 退休教授讲课协议
- 餐饮业绩提升专员协议
- 《疯狂动物城》全本台词中英文对照
- 第三小学花样跳绳校本教材(一至六年级通用)
- 《大数据技术原理与应用(第3版)》期末复习题库(含答案)
- 中学物理教材教法复习题
- 第13课第1课时立足专业谋划发展【中职专用】《心理健康与职业生涯》(高教版2023基础模块)
- 中职英语基础模块一Unit 8 People and events Reading
- 供应商黑名单
- 船用缆绳标准
- 班主任育人故事(通用17篇)
- 食材配送投标方案(技术方案)
- 第三章 结构材料的力学性能及指标
评论
0/150
提交评论