导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[gmf2008][求助]帮我看看这个程序。



No.38493
作者:gmf2008
邮件:gmf2008@mail2.nyist.net
ID:93
登陆:68次
文章数:24篇
最后登陆IP:220.161.81.79
最后登陆:2007/1/13 9:11:56
注册:2003/3/11 18:18:00
财富:180
发帖时间:2003/7/28 8:37:15
发贴者IP:202.102.240.78
标题:gmf2008:[求助]帮我看看这个程序。
摘要:No.38493[求助]帮我看看这个程序。 各位好友:
       我这里有一个程序,其中有一部分功能不能完全实现,我怎末也想不通是什么原因,功能是这样的,通过ADC0809的通道0采集电压信号,把采集到的数据进行处理,后送到串行显示器去显示,现在的问题是电压采集只能从2.5V到5V能被采集到,0到2.5V以后的电压值就采集不到了,并有死机现象,我把程序中各个子程序的功能说明一下:
            ADC_P    : 数据采集程序
            D_PROC  : 数据处理处理程序
            DIS_P     ; 显示程序,虚拟串行显示
            T0_P      ; T0中断处理程序
            T0_INI    ; T0中断响应程序
 这个程序是基于WINDOWS的消息写出来的,中断程序只在中断中设置相应的消息位,
主程序的任务是不断查询消息状态和响应中断,然后根据消息位,起动相应的消息响应程序,这个程序只起动通道0工作,请各位好友看看,问题到出到那里了.先谢了.

         
INC_P EQU 32H
D_BUF EQU 33H
CHANNEL EQU 34H
EOC BIT P1.0
VTXD BIT P1.1
VRXD BIT P1.2
LED21 EQU 30H
LED43 EQU 31H
LED1 EQU 14H
LED2 EQU 15H
LED3 EQU 16H
LED4 EQU 17H 
ORG 0000H
AJMP INI
ORG 000BH
AJMP T0_INI
INI: MOV SP,#60H
 ;MOV TMOD,#01H
 ;MOV  TH0,#0B1H
 ;MOV TL0,#0E0H;20MS
 ;SETB TR0
 ;SETB EA
 ;SETB ET0
 MOV 20H,#00H  ;MESSAGE REG 
 MOV CHANNEL,#00H;
 SETB 20H.2
;------------MESSAGE  PROCESS --
MESS:; JB 20H.1,TO_T0
 JB 20H.0,TO_DIS
 JB 20H.2,TO_ADC
 JB 20H.3,TO_DATA
 SJMP MESS
TO_DIS: ACALL DIS_P
 SJMP MESS
TO_T0: ACALL T0_P
 SJMP MESS
TO_ADC: ACALL ADC_P
 SJMP MESS
TO_DATA:ACALL D_PROC
 SJMP MESS
;------------------------------ 
T0_P: PUSH ACC
 MOV A,INC_P
 CJNE A,#02H,T_BACK;WHEN 50MS COMES FETCH ADC
 MOV INC_P,#00H
 SETB 20H.2      ;SET ADC MSG SIGN
T_BACK: CLR 20H.1      ;CLR T0_INT MSG SIGN
 POP ACC
 RET
;---------MESSAGE 1-------------- 
T0_INI: PUSH ACC
 PUSH PSW
 MOV TH0,#0D8H
 MOV TL0,#0F0H
 INC INC_P
 SETB 20H.1   ;SET T0_INT MSG SIGN
 CPL P3.0
 POP PSW
 POP ACC
 RETI
 
;--------------------------------
ADC_P: PUSH DPH
 PUSH DPL
 MOV         DPTR,#0000H;CHANNEL 0 WAS SELECTED
 MOVX @DPTR,A     ;ALE/START IS '1'
 NOP      ;START CHANGE
 JB EOC,$
   JNB EOC,$           ;WAIT CHANGE OVER
 MOVX A,@DPTR    ;OE IS '1'
 MOV D_BUF,A       ;CHANGE value STORED IN D_BUF
 CLR 20H.2    ;CLR ADC_P MSG SIGN  
 SETB 20H.3    ;SETB D_PROC MSG SIGN
 CPL P3.0             ;
 POP DPL
 POP DPH
 RET 
;---------------------------------------------------------------
D_PROC: PUSH PSW
 PUSH DPH
 PUSH DPL
 SETB RS0
 CLR RS1
 MOV A,R3
 CJNE A,D_BUF,D_NXT  ;R3!=D_BUF,NEW DATA FETCHED
 SJMP D_EXT
;-------------THE PART OF CHECK TABLE -----------
D_NXT: MOV DPTR,#TAB0
 MOV R3,D_BUF 
 MOV A,R3
 MOV B,#02H
 MUL AB  ;A STORED LOW 8BITS ,B STORED HIGH 8BITS
   ADD A,DPL
 MOV DPL,A
 MOV A,DPH
 ADDC A,B
 MOV DPH,A
 CLR A
 MOVC A,@A+DPTR
 MOV LED43,A
 MOV A,#01H
 MOVC A,@A+DPTR
 MOV LED21,A
 SETB 20H.0  ;SET DIS_P MSG SIGN
D_EXT: CLR 20H.3  ;CLR D_DPROCESS MSG SIGN;
 SETB 20H.2  ;SET ADC_P MSG SIGN
 CPL P3.1
 POP DPL
 POP DPH
 POP PSW
 RET 
;-------DIS_P--------------------
DIS_P: PUSH PSW
 SETB RS1
 CLR RS0
 ACALL F_CODE  ;SEPARATE ONE WORD BCD CODE
 MOV A,LED3
 MOV LED3,LED4
 MOV LED4,A
  ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:16毫秒 最大:3859毫秒 查询6次