ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:111.25KB ,
资源ID:12137867      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-12137867.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验--流水灯--程序.docx)为本站会员(HR专家)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

实验--流水灯--程序.docx

1、精品文档图-沔葡片贩*$ i麦发龙二载买班点加灯效京,实验二“流水灯”一、实验目的:1 .初步了解汇编语言2 .通过实验了解单片机最小系统3 .了解单片机的I/O 口通信。4 .学习延时子程序的编写和使用 二、实验内容:1.流水灯(跑马灯). 单片机控制着8支发光 二极管,每一时刻只有 一支发光二极管点亮, 如图示,延时200ms后 熄灭而与之相邻的发光 二极管点亮,直到点亮 最后一个发光二极管后 一,又以相反的方向依次点 亮发光二极管,随意编辑TCCWrvr AMI mmtEg*RimF3KAI*) nrudJi从单片机最简系统出 发.给I/O口添加8支 发光二极管,得系统 电路如图示.当然

2、, 除了使用P2 口外还可 以使用PO、P1、P3完 成这个实例口精品文档流水表步骤P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7十六进制1011111117FH2101111110BFH3110111110DFH4111011110EFH5111101110F7H6111110110FBH7111111010FDH8111111100FFHMOV P1, #7FHACALL DELAYMOV P1, #0BFHACALL DELAYMOV P1, #0DFHACALL DELAYMOVACALLMOVACALLP2OP2 1P2 2 P2 3 P2 4P2 5P2 6 P2

3、7不科学P1, #0FDHDELAYP1, #0FFHDELAY精品文档随意编辑指令指令类别功能说明ORG伪指令用于设计程序计数器 PC的初始值,一般出现在程序开始处MAIN#程序中使用一个便于理解的字符串来指向程序存储器中的地 址MOVP0,#00H数据装载将立即数00H装载到P0寄存器,即从 P0 口输出CALL DELAY调用指令调用程序存储器范围内的子程序JMP START跳转指令控制程序的走向和实现循环执行特定程序段RRC逻辑操作指令经过进位位的累加器循环右移RLC逻辑操作指令经过进位位的累加器循环左移DJNZ R5,$循环指令将一段程序重复执行一定次数(R5的值决定了重复的次数)。

4、 寄存器减一,不为零则转移。RET返回指令在子程序末尾,提示子程序结束,返回主程序END伪指令告诉汇编器程序的结束点,END以后的程序被视为是无效的LOCF:RRC;进位标志位C在累黑器A中从左向右轮换一次CX2;R1 X 二,如果 R:0 则三垣LOCF*但0-1 “ A不 H;起始地址ORG 00HSTART:MOVA, #0FFHCLR CMOVR1, #8RIGHT:RRC AMOVP1, AACALL DELAYDJNZ R1, RIGHT;程序一开始,初始一些所需要变量,如进位C 的清 0 等;累加器 A 的 8 位全置 1 ( 0FFH) ,发光二极管全熄灭;进位 C 被清0 ,

5、 C=0;R1=8 , 循环8 次(右移 8 次),用 R 1 作计数器;这是发光二极管向右“流动” 的循环体;把进位C 在累加器 A 中 从左向右轮换一位;输出至 P1 口;调延时子程序 ,延时 200msJMP START;跳回一开始,重复执行该流水灯程序;R1 减 1 ,如果不为 0 跳回 RIGHT 循环执行DELAY:D1:D2:;延时 200ms 的子程序MOVR3,#20MOVR4,#20MOVR5,#248; 2+248 X2=498=498 gDJNZR5, $;R5 减 1 ,如果不为0 ,就执行本行DJNZR4, D2; 2+20 X (498+2 ) =10002 g1

6、0msDJNZR3, D1RET;子程序结束标志,返回主程序END;程序结束点( 3 )取表法要显示的数据之间不存在简单的运算关系, 不能使用 ADD 和 SUBB 等指令根据上一状态计算出下一状态的显示值。 但 显示的数据存在依次取用的特点, 这时一般就会用到取表的方法。取表法是单片机程序中很常用的一种编程思想。 在汇编程序末尾附加一个数据表, 这个数据表可以是可以是字节型, 也可是英文字母等数据。 数据表与汇编程序一起可以被汇编,之后数据表就成为数据的一部分包含在生成的 .HEX 文件中。通过下载之后,数据表和程序代码就固化在单片机的程序存储器中。ORG 00HSTART:;装表,即DPT

7、R 指向表 TABLE 的表MOVDPTR,#TABLE;数据指针寄存器DPTR 指向表 TABLE 头LOADTABLE:;取表程序段,表中的数据载入累加器ACC 中,并判断是否已经完成CLR A;累加器ACC清零MOVC A,A+DPTR;基址加变址寻址,将表中数据载入 ACC;CJNE A,#data rel比较立即数和A不相等则转移。如果取到88H说明表已经取完,否则显示;如果取完,跳回 START,重新开始累加器 ACC的数据输出到P1将ACC的数据输出到P1 口;调延时子程序;DPTR加1 ,准备取表中的下一个数据;跳回取表程序段的子程序;R5减1 ,如果不为0,就执行本行TABL

8、E:DB07FH,0BFH,0DFH,0EFH;右移DB0F7H,0FBH,0FDH,0FEHDB88H;结束码END;程序结束点;子程序结束标志,返回主程序CJNE A,#88H,DISPLAYJMP STARTDISPLAY:;显示程序段MOVP1,AACALL DELAYINCDPTRJMPLOADTABLEDELAY:;延时 200msMOV R3, #20D1:MOVR4, #20D2:MOVR5, #248DJNZR5, $DJNZR4, D2DJNZR3, D1RET步甄pi.aP1.2.PL3)Pl rPl. 5rPi . 6.Pl.74十六迸制,101J1 二Ip1-31q匕”即1,AIfOBFH1.0*,1laODFH-心1Q1产LADKFHj*1*1gIpOF1H.6*10la0/L14OEBH小耳1-1k*l-3融1#1.1-1-11一山OFFH-取表法的优点是预先存放所需数据,在程序需要时调用,这样一来,程序简洁, 易于调试.三、实验报告1 .分别用两种方法编程实现流水灯从右向左的点亮,并调试.2 .分别用两种方法编程实现流水灯从左向右,再从右向左来回流动的程序,并调试 .3 .编程实现发光二极管自左向右,每隔 0.5 秒循环相邻两个点亮一次(相邻两个亮 ,其余灭 )4 . 分析延时子程序的延时原理

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报