- ;=================================================================
- ;程序编写人:兰建文
- ;编写地点:51hei培训机构
- ;时间:6月10日下午 星期三
- ;功能:本程序实现液晶的信息功能,显示数模转换读
- ;来处理后的数据,精确到0.5。
- ;=======================开始初始化================================
- CS BIT P3.2 ;设置使能口
- SCLK BIT P3.4 ;设置时钟脉冲口
- ADOUT BIT P3.5 ;设置数据输出口
- PIANXUAN EQU P2 ;设置片选口
- ;========================系统程序==================================
- ORG 0000H
- JMP MAIN
- ORG 30H
- ;=========================主程序===================================
- MAIN:
- MOV A,#0H
- SETB ADOUT
- SETB SCLK
- CLR SCLK
- CLR CS
- CALL READ
- SETB CS
- CALL HBCD
- CALL DISPLAY
- JMP MAIN
- ;=========================读子程序===========================
- ;输入条件:待转化的单字节十六进制整数在累加器A中。
- ;输出信息:转化后的BCD码(十位和个位)仍在累加器A中,百位在R3中。
- ;影响资源:PSW、A、B、R3 堆栈需求:2字节
- ;============================================================
- READ:
- MOV R1,#08H
- LL:SETB SCLK ;设置下降沿
- MOV C,ADOUT
- RLC A
- CLR SCLK
- DJNZ R1,LL
- RET
- ;=====================BCD转化子程序=========================
- ;输入:"R2、R3、R6"
- ;输出:"P0口"
- ;实现的功能:把R2、R3、R6的数输出到P0口显示
- ;============================================================
- HBCD:
- MOV B,#25
- DIV AB
- MOV B,#5
- MUL AB
-
- MOV B,#100 ;分离百位,放在R3中
- DIV AB
- MOV R3,A
- MOV A,#10 ;继续分离十位和个位
- XCH A,B
- DIV AB
- MOV R2,A
- MOV R6,B
- RET
- ;========================显示子程序==========================
- ;输入:"A"
- ;输出:"P0口"
- ;实现的功能:把A的数输出到P0口显示
- ;============================================================
- DISPLAY:MOV R0,#50
- CC: MOV A,R3
- MOV DPTR,#TAB0
- MOVC A,@A+DPTR
- MOV P0,A ;显示百位
- MOV PIANXUAN,#03H
- CALL DELAY
- MOV P0,#0FFH
- MOV A,R2
- MOV DPTR,#TAB1
- MOVC A,@A+DPTR
- MOV P0,A ;显示十位
- MOV PIANXUAN,#04H
- CALL DELAY
- MOV P0,#0FFH
- MOV A,R6
- MOV DPTR,#TAB0
- MOVC A,@A+DPTR
- MOV P0,A ;显示个位
- MOV PIANXUAN,#05H
- CALL DELAY
- MOV P0,#0FFH
- DJNZ R0,CC
- RET
- ;========================延时程序============================
- ;输入;无
- ;输出: 无
- ;实现的功能:延时一段时间
- ;============================================================
- DELAY:MOV R4,#5
- MOV R5,#200
- D1: NOP
- DJNZ R5,$
- DJNZ R4,D1
- RET
- ;=======================共阳查表数据==========================
- TAB0:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
- TAB1:DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H
- ;=========================程序结束=================================
- END
复制代码
|