Proteus—40个单片机初学程序-4. 广告灯的左移右移.docVIP

  • 8
  • 0
  • 约2.95千字
  • 约 6页
  • 2018-05-30 发布于广东
  • 举报

Proteus—40个单片机初学程序-4. 广告灯的左移右移.doc

第四章 实验及实践课题(4) 广告灯的左移右移????? 实验任务 做单一灯的左移右移,硬件电路如图4.4.1所示,八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重复循环。 2.????? 电路原理图 图4.4.1 3.????? 系统板上硬件连线 把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路发光二极管指示模块”区域中的L1-L8端口上,要求:P1.0对应着L1,P1.1对应着L2,……,P1.7对应着L8。 4.????? 程序设计内容 我们可以运用输出端口指令MOV P1,A或MOV P1,#DATA,只要给累加器值或常数值,然后执行上述的指令,即可达到输出控制的动作。 每次送出的数据是不同,具体的数据如下表1所示 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 说明 L8 L7 L6 L5 L4 L3 L2 L1 ? 1 1 1 1 1 1 1 0 L1亮 1 1 1 1 1 1 0 1 L2亮 1 1 1 1 1 0 1 1 L3亮 1 1 1 1 0 1 1 1 L4亮 1 1 1 0 1 1 1 1 L5亮 1 1 0 1 1 1 1 1 L6亮 1 0 1 1 1 1 1 1 L7亮 0 1 1 1 1 1 1 1 L8亮 表1 5.????? 程序框图 ? ? ? ? ? ? ? ? ? 图4.4.2 6.?????汇编源程序 (1)单向 ORG 0000H START:MOV P1,????? ;最下面的LED点亮 LCALL DELAY???????? MOV P1,??????????? ;最下面第二个的LED点亮 LCALL DELAY MOV P1,??????????? ;最下面第三个的LED点亮 (以下省略) LCALL DELAY MOV P1, LCALL DELAY MOV P1, LCALL DELAY MOV P1, LCALL DELAY MOV P1, LCALL DELAY MOV P1, LCALL DELAY MOV P1,???????????? ;完成第一次循环点亮,延时约0.25秒 AJMP START??????????????????? ;反复循环ajmp 2KB范围内绝对转移 ;延时子程序,12M晶振延时约250毫秒 DELAY: MOV R4,#2 L3: MOV R2 ,#250 L1: MOV R3 ,#250 L2: DJNZ R3 ,L2 DJNZ R2 ,L1 DJNZ R4 ,L3 RET END 7.?????汇编源程序 (2)单向 org 0000h ajmp main org 0030h main: mov p1,#00h ;全亮 lcall delay ; lcall delay ; lcall delay ;延时一段时间 mov a,#0feh ;每次只亮一个灯。 loop: mov p1,a ; lcall delay ; lcall delay ; lcall delay ; rl a ;循环左移。 ajmp loop ; ajmp 2KB范围内绝对转移 delay: mov r7,#00h ;延时子程序 tt: mov r6,#00h djnz r6,$ djnz r7,tt ret end 8.????? 汇编源程序 (3)来回 ORG 0 START: MOV R2,#8 MOV A,#0FEH ;给A赋值C状态位置 LOOP: MOV P1,A ;将A送到P1口,发光二极管低电平点亮 RLC A ;累加器连进位标志左循环移位,即A DJNZ R2,LOOP MOV

文档评论(0)

1亿VIP精品文档

相关文档