如图 大神有会做的不~
times New Roman, serif">程序:ADC EQU 50H
ORG 0000H AJMP MAIN ORG 000BH AJMP INT0 ORG 0030HMAIN: MOV TMOD,#02H; ;初始化脉冲信号 MOV TH0,#250; MOV TL0,#250; SETB EA SETB TR0 SETB ET0 MOV R4,#8START1:MOV DPTR,#7FF0H ;指向0通道 MOVX @DPTR,A ;读取转换数值 JB P3.4,AAA1 LCALL DELAY ;调用延时程序 JB P3.4,AAA1 ;判断是否按下按钮并开始转换数值 SETB P3.2 ;P3.2给高电平锁存地址 INC R4 CJNE R4,#9,AAA2 MOV R4,#1AAA2: INC R5 ;显示所选通道 INC DPTR ;指向下一通道 MOV B,R5 ;显示通道并重新锁存地址 MOV P0,B CLR P3.2 JNB P3.4,$AAA1: CLR P2.4 SETB P2.4 CLR P2.4 JNB P2.5,$ SETB P2.6 MOVX A,@DPTR ;读取转换数据开始转化为工程量 MOV ADC,A CLR P2.6 LCALL CONV ;调用转换子程序 LCALL DISP ;调用显示子程序 LCALL DELAY ;调用延时程序 LJMP START1CONV: MOV A,ADC ;数值转换子程序 MOV B,#51 DIV AB MOV R1,A MOV A,B MOV B,#2 MUL AB MOV B,#10 DIV AB MOV R2,A MOV R3,B RETDISP:MOV DPTR,#TABLE ;数码显示子程序 MOV A,R4 MOVC A,@A+DPTR CLR P2.3 MOV P1,A LCALL DELAY SETB P2.3 MOV A,R3 MOVC A,@A+DPTR CLR P2.0 MOV P1,A LCALL DELAY SETB P2.0 MOV A,R2 MOVC A,@A+DPTR CLR P2.1 MOV P1,A LCALL DELAY SETB P2.1 MOV A,R1 MOVC A,@A+DPTR CLR P2.2 ORL A,#80H MOV P1,A LCALL DELAY SETB P2.2 RETINT0:CPL P3.3 RETIDELAY:MOV R6,#1 ;延时1ms子程序D1: MOV R7,#250 DJNZ R7,$ DJNZ R6,D1 RETTABLE: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH
能实现要求的功能就可以~
如果你感觉c可以的话,也可以参考以下链接里面的ad转换类仿真。
http://bbs.elecfans.com/forum.ph ... p;extra=#pid3496263
一周热门 更多>