本帖最后由 w494051723 于 2017-12-6 18:11 编辑
- PORT EQU 0CFA0H
- CSEG AT 0000H
- LJMP START
- CSEG AT 4100H
- START: MOV DPTR,#PORT ;启动通道0
- MOVX @DPTR,A
- MOV R0,#0FFH
- LOOP1: DJNZ R0,LOOP1 ;等待中断
- MOVX A,@DPTR
- MOV R1,A
- DISP: MOV A,R1 ;从R1中取转换结果
- SWAP A ;分离高四位和低四位
- ANL A,#0FH ;并依次存放在50H到51H中
- MOV 50H,A
- MOV A,R1
- ANL A,#0FH
- MOV 51H,A
- LOOP: MOV DPTR,#0CFE9H ;写显示RAM命令字
- MOV A,#90H
- MOVX @DPTR,A
- MOV R0,#50H ;存放转换结果地址初值送R0
- MOV R1,#02H
- MOV DPTR,#0CFE8H ;8279数据口地址
- DL0: MOV A,@R0
- ACALL TABLE ;转换为显码
- MOVX @DPTR,A ;送显码输出
- INC R0
- DJNZ R1,DL0
- SJMP DEL1
- TABLE: INC A
- MOVC A,@A+PC
- RET
- DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
- DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
- DEL1: MOV R6,#255 ;延时一段时间使显示更稳定
- DEL2: MOV R5,#255
- DEL3: DJNZ R5,DEL3
- DJNZ R6,DEL2
- LJMP START ;循环
- END
复制代码 程序如上
电路
不知道仿真软件里面哪里出错了
|