|
用ADC0804采样,输入到AT89C51,在输出LED显示,制作简易电压表:输入模拟电压范围是0-5伏。PCB文件和SCH文件在附件里 <br />程序如下: <br />ORG 0000 <br />AJMP MAIN <br />ORG 0100H <br />MAIN: MOV P3,#0FFH <br />CLR P3.3 <br />CLR P3.5 <br />NOP <br />SETB P3.5 <br />NOP <br />JB P3.2,$ <br />SETB P3.3 <br />NOP <br />MOV P1,#0FFH <br />CLR P3.3 <br />CLR P3.4 <br />NOP <br />SETB P3.4 <br />MOV A,P1 <br />SETB P3.3 <br />JISUAN: MOV B,#51 ;把输出的值除以51,得到与输入模拟电压相应的数字电压 <br />DIV AB <br />MOV R3,A ;个位送到R3 <br />MOV A,B <br />MOV B,#10 ;余数乘以10在除以51,得到十分位 <br />MUL AB <br />MOV B,#51 <br />DIV AB <br />MOV R2,A ;十分位送到R2 <br />MOV A,B <br />MOV B,#10 ;余数乘以10在除以51,得到百分位 <br /><br />MUL AB <br />MOV B,#51 <br />DIV AB <br />MOV R0,A ;百分位送到R0 <br />SETB P2.0 <br />MOV R4,#40 <br />QQQQ: MOV R1,255 <br />QQQ: CLR P2.5 <br />CLR P2.4 <br />MOV A,R3 <br />MOV DPTR,#TABLE <br />MOVC A,@A+DPTR <br />MOV P0,A <br />SETB P2.6 <br />NOP <br />CLR P2.6 <br />CLR P2.4 <br />MOV A,R2 <br />MOV DPTR,#TABLE <br />MOVC A,@A+DPTR <br />MOV P0,A <br />SETB P2.5 <br />NOP <br />CLR P2.5 <br />CLR P2.6 <br />MOV A,R0 <br />MOV DPTR,#TABLE <br />MOVC A,@A+DPTR <br />MOV P0,A <br />NOP <br />SETB P2.4 <br />NOP <br />DJNZ R1,QQQ <br />DJNZ R4,QQQQ <br />SJMP MAIN <br />TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH <br />END <br />程序说明如下: <br />P2.6---------个位位码 P1与ADC0804的D0-D7相连 <br />P2.5---------分位位码 P0与LED段码相连 <br />P2.4---------百分位位码 <br /><br />P3.2---------接ADC0804的INTP脚 <br />P3.3---------接ADC0804的CS脚 <br />P3.3---------接ADC0804的RD脚 <br />P3.3---------接ADC0804的WR脚 <br /><br />大侠帮看看,不知有问题没,急用!!!我的联系方式:caozhifu2008@sohu.com <br /><br /> 相关链接:<a href='https://bbs.21ic.com/upfiles/img/200711/20071115133927306.rar'>https://bbs.21ic.com/upfiles/img/200711/20071115133927306.rar</a> |