单片机实验一_第1页
单片机实验一_第2页
单片机实验一_第3页
单片机实验一_第4页
单片机实验一_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、实验一:单片机汇编语言程序设计实验1 置数程序1. 实验目的 掌握汇编语言设计和调试方法,熟悉键盘操作。2. 实验内容及说明 把 200020FFh 的内容置数为 0FFH。3. 流程框图及步骤 (1)实验流程图: (2)实验步骤: 用连续或单步方式运行程序,检查 200020FFh 中执行程序前后的内容变化。4. 实验程序 ORG 0640HSE01:MOV R0,#00H MOV DPTR,#2000H(2000H)送 DPTRLOO1: MOV A,#0FFH MOVX DPTR,AA 送(DPTR) INC DPTR INC R0 CJNE R0,#00H,LOO1DPTR+1字节数加

2、 1不到 FF 个字节再清 SJMP $;等待 END5.实验结论从实验运行结果可以看出,该程序完成了 把 200020FFh 的内容置数为 0FFH的功能。实验2 拆字程序1.实验目的 掌握汇编语言设计和调试方法。2.实验内容 把 2000h 的内容拆开,高位送 2001h 低位,低位送 2002h 低位,2001h、2002h 高位清零, 一般本程序用于把数据送显示缓冲区时用。3. 流程框图及步骤 (1)流程框图: (2)实验步骤:用连续或单步方式运行程序,检查 20002002h 中内容变化情况。4. 实验程序 ORG 0660HSE02: MOV DPTR,#2000H MOVX A,

3、DPTR MOV B,A ;(2000)AB SWAP A ;交换 ANL A,#0FH ;屏敝高位 INC DPTR MOVX DPTR,A ;送2001H INC DPTR MOV A,B ANL A,#0FH ;(2000)内容屏敝高位 MOVX DPTR,A ;送2002H SJMP $ END5.实验结论从实验运行结果可以看出,该程序完成了把 2000h 的内容拆开,高位送 2001h 低位,低位送 2002h 低位,2001h、2002h 高位清零的功能。实验3 拼字程序1. 实验目的 进一步掌握汇编语言设计和调试方法2. 实验内容 把 2000h、2001h 的低位分别送入 20

4、02h 高低位,一般本程序用于把显示缓冲区的数据取 出拼装成一个字节。3. 流程框图及步骤(1) 流程框图(2) 实验步骤单步或用断点方式运行程序,检查 2002h 内容变化情况。4. 实验程序 ORG 0680HSE03: MOV DPTR,#2000H MOVX A,DPTR ANL A,#0FH ;(2000H)内容屏敝高位 SWAP A ;交换A的高低字节 MOV B,A ;保存 INC DPTR MOVX A,DPTR ;(2001H)内容送A ANL A,#0FH ;屏敝高位 ORL A,B ;A和B取或运算 INC DPTR MOVX DPTR,A ;送2002H SJMP $

5、END5.实验结论从实验运行结果看,该程序完成了把 2000h、2001h 的低位分别送入 2002h 高低位的拼字功能。实验6 查找相同数个数1. 实验目的 熟悉汇编语言编程。2. 实验内容 在 2000200Fh 中查出有几个字节是零,把个数放在 2100h 中。3.流程框图及步骤 (1)流程框图 (2)实验步骤 在 2000200Fh 的几个单元中填入零,运行本程序后检查 2100h 中是几个单元数。4. 实验程序 ORG 0AA0H MOV DPTR,#2000H ;预先存入0 MOV R0,#5H MOV A,#0LOOP: MOVX DPTR,A INC DPTR DJNZ R0,

6、LOOPL5800: MOV R0,#10H ;查找16个字节 MOV R1,#00H MOV DPTR,#2000HL5811: MOVX A,DPTR CJNE A,#00H,L5816 ;取出内容与00H相等吗? INC R1 ;取出个数加1L5816: INC DPTR DJNZ R0,L5811 ;未完继续 MOV DPTR,#2100H MOV A,R1 MOVX DPTR,A ;相同数个数送2100HL581E: SJMP L581E END5.实验结论从实验运行结果看,查出2000200Fh 中2000h2004h共5个单元内容为0,而2100h中刚好为5,说明该程序完成了实验

7、要求的任务。实验7 P1 口亮灯实验1. 实验目的(1)学习 P1 口的使用方法;(2)学习延时子程序的编写。2.实验内容(1)P1 口对准双向口,每一位都可独立地定义为输出或输入。(2)本实验中延时子程序采用指令循环来实现,机器周期(12/6MHz)×指令所需机器 周期数×循环次数,在系统时间允许的情况下可以采用此方法。P1 口作为输出口,接八个发光二极管,编写程序,使发光二极管循环点亮。3.流程框图及步骤(1)流程框图(2)实验步骤 P1.0P1.7 用插针连至 L1L8,运行程序后,观察发光二极管闪亮移位情况。(3) 实验电路4. 实验程序 ORG 0790HSE18:MOV P1,#0FFHLO34:MOV A,#0FEHLO33:MOV P1,ALCALL DELRL ASJMP LO33DEL:MOV R5,#100 ;延时2sDEL0:MOV R6,#100DEL1:MOV R7,#49DEL2:DJNZ R7,DEL2DJNZ R6,DEL1DJNZ R5,DEL0RETEND5.实验结论 通过做实验,从实验结果看,刚开始是与P1.0口所连的二极管发光,经过大约一秒,P1.1口亮,再经过大约一秒,P1.2口亮,以后依次P1.3、P1.4、P1.5、P1.6、P1.7亮,

温馨提示

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

评论

0/150

提交评论