单片机汇编语言编程(在线求答案) 100

使Pi口相连的LED发光循环左移一次,右移一次,时间为0.2s(不断)第2题左移2次,右移2次,闪烁2次,间隔时间为1秒(用查表指令)第3题有一个key,压一次左移一次,... 使Pi口相连的LED发光循环左移一次,右移一次,时间为0.2s (不断)
第2题左移2次,右移2次,闪烁2次,间隔时间为1秒(用查表指令)
第3题有一个key,压一次左移一次,压2次右移1次,压3次闪烁4次,全灭,如此循环
展开
 我来答
dsu5566
2009-11-10 · TA获得超过2150个赞
知道大有可为答主
回答量:1761
采纳率:100%
帮助的人:1897万
展开全部
<<第1题>>
实验目的:初步了解单片机I/O口的工作原理,进一步掌握51单片机的汇编指令。
实验内容:用汇编指令对单片机I/O口进行编程,控制8个发光二极管的流水亮灭。

程序详细功能介绍:
做单一灯的左移右移,八个发光二极管L0-L7分别接在单片机的P1.0-P1.7接口上,
输出“0”时,发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重复循环。

ORG 0000H
LJMP START
ORG 0030H
MOV R2,#8 ;左移次数
MOV A,#0FEH ;A的初始值,即 P1.0的L0 点亮
SETB C
LOOP: MOV P1,A
LCALL DELAY
RLC A ;左移流水灯(带进位的左移),即亮点向P1口的高位移动
DJNZ R2,LOOP

MOV R2,#8 ;右移次数
LOOP1: RRC A ;右移流水灯
MOV P1,A
LCALL DELAY
DJNZ R2,LOOP1
LJMP START

DELAY: MOV R5,#10 ;延时子程序,改变R5,R6,R7 的值,可以改变延时的时间,从而改变流水灯移动速度
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END

<<第2题>>
实验目的:掌握单片机的查表原理,掌握MOV DPTR,#DATA16指令,MOVC A,@A+DPTR的运用
实验内容:利用MOVC A,@A+DPTR的指令,控制8个发光二极管的流水亮灭。
程序详细功能介绍:
利用取表的方法,使端口P1做单一灯的变化:左移2次,右移2次,闪烁2次(延时的时间0.2秒)。
在用表格进行程序设计的时候,要用以下的指令来完成
(1).利用MOV DPTR,#DATA16的指令来使数据指针寄存器指到表的开头。
(2).利用MOVC A,@A+DPTR的指令,根据累加器的值再加上DPTR的值,就可以使程序计数器PC指到表格内所要取出的数据。
*因此,只要把控制码建成一个表,而利用MOVC A,@A+DPTR做取码的操作,
*就可方便地处理一些复杂的控制动作.
*/

ORG 0000H
LJMP START

ORG 0100H
START:
MOV DPTR,#TABLE ;取DPTR的地址,即表格的起始地址

LOOP:
CLR A ;对A清零
MOVC A,@A+DPTR ;查表
CJNE A,#01H,LOOP1 ;判断是否到了表格的结尾处,当A等于01时程序往下执行,否则跳到 LOOP1
LJMP START ;跳到程序的开头循环执行

LOOP1:
MOV P0,A ;把取得的表格数据送到P0
LCALL DELAY ;延时
INC DPTR ;DPTR加一,即把DPTR指向下一个表格单元
LJMP LOOP

DELAY: MOV R5,#10 ;延时子程序,改变R5,R6,R7 的值,可以改变延时的时间,从而改变流水灯移动速度
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET

;以下为流水灯的花样表格,每个数据对应一个时刻下的LED的状态
;TABLE的数据最后会被编译器安排到单片机的FLASH程序存储区里,CPU运行时只能读取,不能修改。
TABLE:
DB 0FEH,0FDH,0FBH,0F7H
DB 0EFH,0DFH,0BFH,07FH
DB 0FEH,0FDH,0FBH,0F7H
DB 0EFH,0DFH,0BFH,07FH
DB 07FH,0BFH,0DFH,0EFH
DB 0F7H,0FBH,0FDH,0FEH
DB 07FH,0BFH,0DFH,0EFH
DB 0F7H,0FBH,0FDH,0FEH
DB 00H, 0FFH,00H, 0FFH
DB 01H
END

<<第3题>>
不写了,,累了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2e3ab4f62d
2009-11-11 · TA获得超过2132个赞
知道小有建树答主
回答量:1280
采纳率:0%
帮助的人:1213万
展开全部
我本想给你写个
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式