源程序: ORG 0000H AJM MAIN ORG 000BH LJMP TC0 ORG 0030H
MAIN:MOV DPTR,#9FFFH 指向DAC0832(1) MOV A,70H
MOVX @DPTR,A MOV DPTR,#7F00H MOV A,#06H MOVX @DPTR,A MOV DPTR,#7F01H MOVX A,@DPTR JNB ACC.4,K10H JNB ACC.5,K100H JNB ACC.6,K500H JNB ACC.7,K1K AJMP MAIN
LED1: MOV R3,#06H MOV R2,#01H MOV R1,#30H GN1:MOV DPTR,#7F03H MOV A,R2 MOVX @DPTR,A RL A MOV R2,A MOV A, @R1 MOV DPTR,#TAB MOVC A,@A+DPTR 13
DAC0832(1)输出 指向8155命令字端口地址
设置A口为输入,B口、C口为输出 送命令字 指向A口地址 读入A口的开关数据
判断是否“4”号键,若是则转输出10Hz信号 判断是否“5”号键,若是则转输出100Hz信号判断是否“6”号键,若是则转输出500Hz信号判断是否“7”号键,若是则转输出1KHz信号 设置6个LED显示 选通第一位LED数据 送显示缓冲区首址 指向C口地址 位选通数据送A 位选通数据送C口 选通下一位
位选通数据送R2中保存取键值
送LED显示软件译码表首址 查表求出键值显示的段码
MOV DPTR,#7F02H 指向B口地址 MOV @DPTR,A 段码送显示 LCALL LOOP1 调延时子程序
INC R1 指向下一位显示缓冲区地址 DJNZ R3,GN1 循环显示6个LED RET
LOOP1:MOV R4,#08H LOOP:MOV R5,#0A0H DJNZ R5,$ DJNZ R4,LOOP RET
K10H:MOV 30H,#00H MOV 31H,#00H MOV 32H,#00H MOV 33H,#00H MOV 34H,#01H MOV 35H,#00H
LCALL LED1 MOV TMOD,#00H MOV TL0,#15H MOV TH0,#9EH AJMP PD
K100H:MOV 30H,#00H MOV 31H,#00H MOV 32H,#00H MOV 33H,#01H MOV 34H,#00HMOV 35H,#00H
LCALL LED1 MOV TMOD,#00H
延时子程序 显示10Hz 调显示子程序 显示100Hz 调显示子程序 14
MOV TL0,#08H MOV TH0,#0F6H AJMP PD
K500H:MOV 30H,#00H 显示500Hz MOV 31H,#00H MOV 32H,#00H MOV 33H,#05H MOV 34H,#00H MOV 35H,#00H
LCALL LED1 MOV TMOD,#00H MOV TL0,#01H MOV TH0,#0FEH AJMP PD
K1K:MOV 30H,#00H MOV 31H,#00HMOV 32H,#01H MOV 33H,#00H MOV 34H,#00H MOV 35H,#00H
LCALL LED1 MOV TMOD,#00H MOV TL0,#01H MOV TH0,#0FFH
PD:JNB ACC.0,KE0 JNB ACC.1,KE1 JNB ACC.2,KE2 JNB ACC.3,KE3 LJMP PD
KE0:MOV R7,#00H
调显示子程序 显示1KHz 调显示子程序 判断是否“0”号键按下,若是则转方波输出 判断是否“1”号键按下,若是则转正弦方波输出判断是否“2”号键按下,若是则转三角波输出 判断是否“3”号键按下,若是则转锯齿波输出 15
LCALL LED1 调显示子程序 MOV R6,#00H AJMP GN
KE1:MOV R7,#02H
LCALL LED1 调显示子程序 MOV R6,#00H AJMP GN
KE2:MOV R7,#02H
LCALL LED1 MOV R6,#00H
AJMP GN KE3:MOV R7,#02H
LCALL LED1 MOV R6,#00H GN: SETB TR0 SETB ET0 SETB EA
LOP1:JNB ACC.4,K10H JNB ACC.5,K100H JNB ACC.6,K500H JNB ACC.7,K1K AJMP LOP1
TC0:CJNE R7,#00H,TC1 MOV DPTR,#TAB1 MOV A,R6 MOVC A,@A+DPTR
MOV DPTR,#0AFFFH MOVX @DPTR,A MOV A,R6 INC A
调显示子程序 调显示子程序 判断是否“4”号键,若是则转输出10Hz信号 判断是否“5”号键,若是则转输出100Hz信号判断是否“6”号键,若是则转输出500Hz信号判断是否“7”号键,若是则转输出1KHz信号 发送方波程序 送方波数据表首址 发送数据寄存器 指向DAC0832(2) DAC0832(2)输出 16
相关推荐: