在进行ADC0809的调试,编程如下: ORG 0000H AJMP MAIN ORG 13H AJMP INT ORG 23H AJMP SHUCHU ORG 30H MAIN:MOV SCON,#40H ;设置串口工作在方式1,8位的UART, ;1位起始位和1为停止位 MOV TMOD,#20H ;波特率发射器T1工作在方式2 MOV TH1,#0FDH ;预置初值(按照波特率9600预置初值) MOV TL1,#0FDH ;预置初值(按照波特率9600预置初值) SETB EA SETB EX1 SETB ES SETB IE1 ;外部中断电平方式触发中断 SETB TR1 ;启动定时器T1 MOV DPTR,#0FEF8H ;AD转换IN0通道地址 MOV A,#00H MOVX @DPTR,A ;启动AD转换 HERE:SJMP HERE INT:MOVX A,@DPTR ;接收转换数据 MOV SBUF,A ;送上位机显示 SETB P3.3 RETI SHUCHU:CLR TI ;发送完清TI NOP RETI END
不管给IN0的模拟信号是+5V还是0V还是别的,或改变A的值,出来的结果都是00.不知道错在哪里。而且断电后,再上电,就不会再有任何显示,即使按了复位键。
给ADC0809的时钟为500KHz,片选信号由P2.0给出,P2.0和/WR信号通过或非门给ST和ALE,P2.0和/RD信号通过或非门给OE,EOC通过非门吧信号给P3.3,作为查询ADC0809转换结束信号。
请教问题出在哪里?
|