一、原理总结【实验02_Proteus仿真数码管显示报告】??利用两个寄存器 R4 和 R5 来存储两个数码管的显示数字,R4 用来存储前一个数码管显示数字,而 R5 用来存储后一个数码管显示数字,利用左移操作 RLC 取 A 中首位放入 C 中 , 然后将 C 输入到数码管中,使用 R0 来控制循环,对于 R4 和 R5 重复上述过程各自重复8次 , 使得当数码管中每位都有数据时,数码管便会显示,之后使用停顿函数使数码管上数字停留一段时间 。
二、程序分析图示部分:代码部分: ; Reset Vector org 0000h jmp Start ;==================================================================== ; CODE SEGMENT ;==================================================================== org 0100h TAB : DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H ;是用来存储0-15这16个数据,之后使用A来寻址 PAUSE: ;停顿函数 ;R1是第一层嵌套循环,R2是第二层嵌套循环,当R2不为0时跳转,为0时不跳转,执行DJNZ R1,D1使得R1- -,当R1不为0时跳转,为0时不跳转 。 MOV R1,#255 ;R1是第一层嵌套循环 D1:MOV R2,#255 ;R2是第二层嵌套循环 D2:DJNZ R2,D2 ;当R2不为0时跳转,为0时不跳转,执行DJNZ R1,D1使得R1- - DJNZ R1,D1 ;当R1不为0时跳转,为0时不跳转 RET LED: ;数码管亮灯函数 MOV R0,#8 ;将8赋值给R0,8位左移 MOV A,R5 ;R5代表右边的LED的数 MOVC A,@A+DPTR ;A是偏移地址,是从DPTR中寻址 LOOP1: RLC A ;A左移,将A中高位放入C中 CLR P1.4 ;传输C到数码管中 MOV P1.5,C SETB P1.4 DJNZ R0,LOOP1 ;若R0为0 , 也即是执行完8次循环,不跳转,否则跳转 MOV R0,#8 ;和上面同理 MOV A,R4 MOVC A,@A+DPTR LOOP2: RLC A CLR P1.4 MOV P1.5,C SETB P1.4 DJNZ R0,LOOP2 MOV R6,#0 ;使用停顿函数,构成3层循环,使停顿时间延迟 S1:LCALL PAUSE INC R6 CJNE R6,#10,S1 ;循环次数为10次 RET START: MOV p0,A ;将p0置为0,使上面的数码管不显示 MOV DPTR,#TAB ;将TAB首地址赋给DPTR MOV R4,#0 ;赋初值为0 MOV R5,#0 ;赋初值为0 JMP XUNHUAN A1:MOV C,P1.0 ;当开关不闭合时 , 持续显示一个数字 JC XUNHUAN MOV C,9 ;当9号接口传输数据时,复位 JC FUWEI INC R5 ;R5++ CJNE R5,#16,XUNHUAN ;当R5为16时要对R4++,而R5<16时跳转 MOV R5,#0 INC R4 CJNE R4,#16,XUNHUAN ;当R4为16时重新执行START,而R5<16时跳转 JMP FUWEI XUNHUAN: LCALL LED JMP A1 FUWEI: MOV R4,#0 MOV R5,#0 JMP A1 JMP START ;==================================================================== END
推荐阅读
- 有趣实验 .NET下数据库的负载均衡
- 实验中水泥能代替石灰吗
- 高中怎样学好数理化的方法 高中怎么样学好物理实验
- 实验艺术专业就业方向 实验艺术专业是什么呢
- 贝尔实验室unix谁写的
- 水下打靶的实验是什么迁移 水下打靶实验是什么迁移理论
- 著名的霍桑实验是谁主持的 霍桑实验是谁主持进行的
- 辽宁省实验中学自费生怎么样
- 辽宁省实验中学老师会体罚学生吗
- 革兰氏染色实验注意事项有哪些 革兰氏染色注意事项有哪些啊