51单片机实验代码.doc
《51单片机实验代码.doc》由会员分享,可在线阅读,更多相关《51单片机实验代码.doc(34页珍藏版)》请在咨信网上搜索。
1、实验二 清零程序一、 实验目的 掌握汇编语言设计和调试方法,熟悉键盘操作。二、 实验内容 把2000H20FFH的内容清零。三、 实验程序框图四、 实验步骤 用连续或单步的方式运行程序,检查200020FF中执行程序前后的内容变化。五、 思考 假使把2000H20FFH中的内容改成FF,如何修改程序。六、 程序清单 文件名: SW01.ASMORG 0000HLJMP SE01ORG 0640HSE01: MOV R0,#00HMOV DPTR,#2000H ;(0000H)送DPTRLOO1: CLR AMOVX DPTR,A ;0送(DPTR)INC DPTR ;DPTR+1 INC R0
2、 ;字节数加1CJNE R0,#00H,LOO1 ;不到FF个字节再清LOOP: SJMP LOOPEND实验三 拆字程序一、实验目的 掌握汇编语言设计和调试方法二、实验内容 把2000H的内容拆开,高位送2001H低位,低位送2002H低位,2001H、2002H高位清零,一般本程序用于把数据送显示缓冲区时用。三、实验程序框图开 始2000H内容送A 高地位交换屏蔽高位后送2001H2000H内容送A屏蔽高位后送2002H结束四、实验步骤 用连续或单步方式运行程序,检查2000H2002H中内容变化情况。五、思考 如何用断点方式调试本程序六、程序清单 文件名:SW02.ASMORG 0000
3、HLJMP SE02ORG 0660HSE02: MOV DPTR,#2000HMOVX A,DPTRMOV B,A ;(2000)ABSWAP A ;交换ANL A,#0FH ;屏蔽高位INC DPTRMOVX DPTR,A ;送2001HINC DPTRMOV A,BANL A,#0FH ;(2000)内容屏蔽高位MOVX DPTR,A ;送2002HLOOP: JMP LOOPEND实验四 数据区传送子程序一、 实验目的 掌握RAM中的数据操作二、 实验内容 把R2、R3源RAM区首地址内的R6、R7字节数据传送到R4、R5目的RAM区。三、 实验程序框图开 始源地址内容送A(A)送目的
4、地址源地址加1目的地址加1字节数到么?结 束N 四、 实验步骤 在R2、R3中输入源首址(例如0000H),R4、R5中输入的目的地址(例如2000H),R6、R7中输入字节数(例如1FFFH),运行程序,检查0000H1FFFH中内容是否和2000H3FFFH中内容完全一致。五、 程序清单 文件名 SW04.ASMORG 0000HLJMP SE22ORG 07B0HSE22: MOV DPL,R3 MOV DPH,R2 ;建立源程序首址MOVX A,DPTR ;取数MOV DPL,R5MOV DPH,R4 ;目的地首址MOVX DPTR,A ;传送CNE R3,#0FFH,LO42INC
5、R2LO42: INC R3 ;源地址加1CJNE R5,#0FFH,LO43INC R4LO43: INC R5 ;目的地址加1CJNE R7,#00H,LO44CJNE R6,#00H,LO45 ;字节数减1LOOP: SJMP LOOPNOPLO44: DEC R7SJMP SE22LO45: DEC R7DEC R6SJMP SE22 ;未完继续END实验五 简单I/O口应用一、 实验目的 掌握P1口作为I/O口的使用方法,理解读引脚和读锁存器的区别。二、 实验要求 运行不同的程序,观察发光二极管的亮灭状态,比较程序的特点,了解汇编语言设计的基本思路和指令应用。三、 思想描述流程图:结
6、束开始读P3.4的脚P3.4接地点亮8个LED8个LED交叉亮灭程序流程图开始立即数00H送P1口,点亮8个发光二极管延时立即数0FFH送P1口,熄灭8个发光二极管延时结束;-;程序:所有发光二极管不停地闪动;- -LED_PORTEQUP1ORG0000H;程序从地址0000H开始存放LJMPSTARTORG0100HSTART:CLREA;关闭所有中断MOVLED_PORT,#00H;点亮所有发光二极管LCALLDELAY;延时MOVLED_PORT,#0FFH;灭掉所有发光二极管LCALLDELAYSJMPSTART;重复闪动DELAY:MOVR3,#7FH;延时子程序DEL2:MOVR
7、4,#0FFHDEL1:NOPDJNZR4,DEL1DJNZR3,DEL2RETEND;-;程序:用于关控制发二极管的显示方式;-LED_PORTEQUP1ORG0000HLJMPSTARTORG0100HSTART:CLREA;关闭所有中断MOVP3,#11111111B;使P3口锁存器置位MOVA,P3;读P3口引脚线信号ANLA,#00010000B;逻辑与操作,屏蔽掉无关位JZDDPING;判断P3.4是否接地,若是,跳转到DDPING执行MOVLED_PORT,#00H;否则,P3.4高电平,点亮所有发光二极管SJMPSTARTDDPING:MOVLED_PORT,#55H;P3.4
8、接地,发光二极管交叉亮灭SJMPSTARTEND实验六 P3口输入P1口输出实验一、 实验目的 P3口输入P1口输出,实现I/O控制。二、 实验要求 撰写实验报告,给出输入输出实现方式,画出实验原理图,给出程序流程及实现的全部代码。三、 思想描述:系统板上硬件连线(1 把“单片机系统”区域中的P0.0P0.7端口用8芯排线连接到“动态静态数码显示模块”区域中的ah端口上;要求:P0.0对应着a,P0.1对应着b,P0.7对应着h。(2 把“单片机系统”区域中的P2.0端口用8芯排线连接到“动态数码显示模块”区域中的任一个公共端上。实验原理AT89S51单片机的内部16位定时/计数器是一个可编程
9、定时/计数器,它既可以工作在13位定时方式,也可以工作在16位定时方式和8位定时方式。只要通过设置特殊功能寄存器TMOD,即可完成。定时/计数器何时工作也是通过软件来设定TCON特殊功能寄存器来完成的。现在我们选择16位定时工作方式,对于T0来说,最大定时也只有65536us,即65.536ms,无法达到我们所需要的1秒的定时,因此,我们必须通过软件来处理这个问题,假设我们取T0的最大定时为50ms,即要定时1秒需要经过20次的50ms的定时。对于这20次我们就可以采用软件的方法来统计了。因此,我们设定TMOD00000001B,即TMOD01H下面我们要给T0定时/计数器的TH0,TL0装入
10、预置初值,通过下面的公式可以计算出TH0(21650000)/256TL0(21650000)MOD256当T0在工作的时候,我们如何得知50ms的定时时间已到,这回我们通过检测TCON特殊功能寄存器中的TF0标志位,如果TF01表示定时时间已到。实验结果汇编源程序(查询法)SECONDEQU 30HTCOUNTEQU 31HORG 00HSTART:SETB P2.0MOV SECOND,#00HMOV TCOUNT,#00HMOV TMOD,#01HMOV TH0,#(65536-50000) / 256MOV TL0,#(65536-50000) MOD 256SETB TR0DISP:
11、MOV A,SECONDANL A,#0FHMOV DPTR,#TABLEMOVC A,A+DPTRMOV P0,AWAIT:JNB TF0,WAITCLR TF0MOV TH0,#(65536-50000) / 256MOV TL0,#(65536-50000) MOD 256INC TCOUNTMOV A,TCOUNTCJNE A,#20,NEXTMOV TCOUNT,#00HINC SECONDMOV A,SECONDCJNE A,#60,NEXMOV SECOND,#00HNEX: LJMP DISPNEXT:LJMP WAITTABLE:DB 3FH,06H,5BH,4FH,66H,
12、6DH,7DH,07H,7FH,6FHEND汇编源程序(中断法)SECONDEQU 30HTCOUNTEQU 31HORG 00HLJMP STARTORG 0BHLJMP INT0XSTART:SETB P2.0MOV SECOND,#00HMOV A,SECONDANL A,#0FHMOV DPTR,#TABLEMOVC A,A+DPTRMOV P0,AMOV TCOUNT,#00HMOV TMOD,#01HMOV TH0,#(65536-50000) / 256MOV TL0,#(65536-50000) MOD 256SETB TR0SETB ET0SETB EASJMP $INT0X
13、:MOV TH0,#(65536-50000) / 256MOV TL0,#(65536-50000) MOD 256INC TCOUNTMOV A,TCOUNTCJNE A,#20,NEXTMOV TCOUNT,#00HINC SECONDMOV A,SECONDANL A,#0FHMOV DPTR,#TABLEMOVC A,A+DPTRMOV P0,ANEXT:RETITABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND实验7外部中断实验一、 实验目的 中断实验输出控制,学习中断程序设计方法,理解中断机制理解下降沿中断和低电平中断的区别。二
14、、 实验要求 编写主程序 实现系统的初始化,若有不同的初始化方式,应有状态指示;编写中断服务程序,服务程序操作以能明确判断发生一次中断为准,且有声光指示作为人机界面。实验前必须认真复习中断相关内容,并在实验报告上写出预习报告,给出实验方案,经过实验指导教师检查合格后,方可进行实验。实验结束后撰写实验报告画出实验原理图,给出程序流程及实现的全部代码。实验原理用8051单片机设计一交通信号灯模拟控制系统,能够完成正常情况下的轮流放行以及特殊情况和紧急情况下的红绿灯控制1掌握单片机中断系统、定时/计数器的编程应用。2通过对交通灯控制程序的编写与调试,掌握中断程序的结构。3正常情况下A、B道(A、B道
15、交叉组成十字路口,A是主道,B是支道)轮流放行,A道放行1分钟(其中5秒用于警告),B道放行30秒(其中5秒用于警告)。4一道有车而另一道无车时,使有车车道放行,K5键按下表示A道有车,K1键按下表示B道有车。5K9键按下表示有紧急车辆通过时,A、B道均为红灯。控制码表P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0控制码(P1口数据)状态说明(空)(空)B线绿灯B线黄灯B线红灯A线绿灯A线黄灯A线红灯11111111110111100011011110111100F3HF5HDEHEEHA线放行,B线禁止A线警告,B线禁止A线禁止,B线放行A线禁止,B线警告(二) 实验连线表
16、单片机发光二极管按键连接1P1.0-P1.5L0-L5连接2INT0KR1连接3T0KR2连接4T1KR3连接5INT1(三)实验结果交通信号灯模拟控制系统程序流程图程序:BANK0_REGEQU00H;选择第0组寄存器BANK1_REGEQU08H;选择第1组寄存器BANK2_REGEQU10H;选择第2组寄存器BANK3_REGEQU18H;选择第3组寄存器ORG0000HLJMPMAIN;指向主程序ORG0003HLJMPEMERG;指向紧急车辆出现中断程序 外部中断0ORG0013HLJMPONEBUSY;指向一道有车另一道无车中断程序 外部中断1ORG0100HMAIN:MOVPSW
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 实验 代码
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。