5. 广告灯(利用取表方式) 1. 实验任务 利用取表的方法,使端口 P1 做单一灯的变化:左移 2 次,右移 2 次,闪烁 2 次(延时的时间 0
2. 电路原理图 图 4
1 3. 系统板上硬件连线 把“单片机系统”区域中的 P1
7 用 8 芯排线连接到“八路发光二极管指示模块”区域中的 L1-L8 端口上,要求:P1
0 对应着 L1,P1
1 对应着 L2,……,P1
7 对应着 L8
4. 程序设计内容 在用表格进行程序设计的时候,要用以下的指令来完成 (1). 利用 MOV DPTR,#DATA16 的指令来使数据指针寄存器指到表的开头
(2). 利用 MOVC A,@A+DPTR 的指令,根据累加器的值再加上 DPTR 的值,就可以使程序计数器 PC 指到表格内所要取出的数据
因此,只要把控制码建成一个表,而利用 MOVC 工,@A+DPTR 做取码的操作,就可方便地处理一些复杂的控制动作,取表过程如下图所示: 5.程序框图 图 4
2 6. 汇编源程序ORG 0START: MOV DPTR,#TABLELOOP: CLR AMOVC A,@A+DPTRCJNE A,#01H,LOOP1JMP STARTLOOP1: MOV P1,AMOV R3,#20LCALL DELAYINC DPTRJMP LOOPDELAY: MOV R4,#20D1: MOV R5,#248DJNZ R5,$DJNZ R4,D1DJNZ R3,DELAYRETTABLE: DB 0FEH,0FDH,0FBH,0F7HDB 0EFH,0DFH,0BFH,07FHDB 0FEH,0FDH,0FBH,0F7HDB 0EFH,0DFH,0BFH,07FHDB 07FH,0BFH,0DFH,0EFHDB 0F7H,0FBH,0FDH,0FEHDB 07