打印

关于AD转换显示问题。纠结。

[复制链接]
1869|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kobesff|  楼主 | 2011-3-23 17:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 kobesff 于 2011-3-23 17:33 编辑

调试了很久 一直不知道为错在哪里。显示只有3个零。
希望有人帮下
Dark Equ 10
;================================ Hardware =================================
DisMode Equ 0000H ;Display Char Port
DisCS Equ 2000H ;Display CS Port
AD0809 Equ 4000H ;AD0809
;=============================== Bit Segment ===============================
SysBits0 Data 20h
GetAD0809 Bit 03H ;1o First Calc

;=============================== Byte Segment ==============================
;*byte define start*
;00H..07H : Reg Group 0
;08H..1FH : System Stack
;20H..20H : System Bit Units
;---------------------------------------------------------------------------
;21H..6EH
DisBuf Equ 70h ;..75h ;显示缓冲区
DeciP Data 76H ;Bit=1isplay Decimal Point
ADValue Data 77H ;Calc Result, Origen Code
;===========================================================================
Org 0000h
AJmp Main
;============================= Subroutines =================================
Display: Mov R0,#DisBuf ;R0->DisBuf
Mov R1,#00000001B ;R1=Dis CS
DisplayLp: Mov a,R1 ;Send CS first, Proteus ask to do so
Mov dptr,#DisCS ;Send CS to DisCS Port
Movx @Dptr,a

Mov B,#11111111b
Anl A,DeciP
Jz DisplayNxt
Mov B,#01111111B
DisplayNxt:Mov a,R1 ;Send CS first, Proteus ask to do so
Rl A ;Next CS
Mov R1,A

Mov A,@r0 ;Get Dis Char
Inc R0 ;Next Buf
Mov Dptr,#DisTab ;Change to Dis Mode
Movc A,@A+Dptr
Anl A,B
Mov Dptr,#DisMode ;Send DisMode to DisMode Port
Movx @Dptr,a

ACall Delay
Cjne R0,#DisBuf+6,DisPlayLp

; Mov a,#0 ;Send CS first, Proteus ask to do so
; Mov dptr,#DisCS ;Send CS to DisCS Port
; Movx @Dptr,a

Ret
;---------------------------------------------------------------------------

DisTab: DB 0c0H ; 0
DB 0F9H ; 1
DB 0A4H ; 2
DB 0B0H ; 3
DB 099H ; 4
DB 092H ; 5
DB 082H ; 6
DB 0F8H ; 7
DB 080H ; 8
DB 090H ; 9
DB 0FFH ; A

;--------------------------------------------------------------------------
ClrDis: Mov A,#Dark
AToDis: Mov r0,#DisBuf
AToR06: Mov R1,#6
AToRoLp: Mov @r0,A ;A->@R0,Num=R1
Inc r0
Djnz R1,AToRoLp
Ret
;--------------------------------------------------------------------------
InitDis: ACall ClrDis
Mov DisBuf+0,#0
Mov DeciP,#00000000b
Ret

;--------------------------------------------------------------------------
Delay: Mov r6,#4 ;8*256*2*T(1us)=8*512=4000us=2ms
Delay1: Mov r7,#0
Djnz r7,$ ;2
Djnz r6,Delay1
Ret
;--------------------------------------------------------------------------
;Change A into Decimal BCD Code
AHexToBCD: Mov B,#10
Div AB
Mov @R0,B
Inc r0
Mov B,#10
Div AB
Mov @r0,B
Inc r0
Mov @r0,A
Inc r0
Ret
;--------------------------------------------------------------------------
InitAD0809:Clr GetAD0809
Ret
;--------------------------------------------------------------------------
GetAD: Mov Dptr,#AD0809+0
Movx @Dptr,A ;Start AD, Chennel=0
; ACall Display ;Delay
ACall Delay
ACall Delay
Mov Dptr,#AD0809+0
Movx A,@Dptr
Mov ADValue,A
Setb GetAD0809
Ret
;================================= Main ====================================
Main: Mov Sp,#07h ;init Stack
ACall InitDis
ACall InitAD0809

MainLoop: ACall Display
ACall GetAD
JBC GetAD0809,ShowAD
AJmp MainLoop
;--------------------------------------------------------------------------
ShowAD: Mov A,ADValue
Mov R0,#DisBuf
ACall AHexToBCD
AJmp MainLoop

;==========================================================================
end

MyCatch1.jpg (132.5 KB )

MyCatch1.jpg

MyCatch2.jpg (51.37 KB )

MyCatch2.jpg

MyCatch3.jpg (54.3 KB )

MyCatch3.jpg

MyCatch4.jpg (62.96 KB )

MyCatch4.jpg

DSN+Code.rar

25.8 KB

相关帖子

沙发
kobesff|  楼主 | 2011-3-23 18:25 | 只看该作者
咦。。没人耶。

使用特权

评论回复
板凳
kobesff|  楼主 | 2011-3-24 22:19 | 只看该作者
真冷。好歹来个人。。随便给点意见。结个贴。算了

使用特权

评论回复
地板
stirwl| | 2011-3-24 22:25 | 只看该作者
啊,汇编,好头疼啊,看的一点胃口都没有了

使用特权

评论回复
5
abin0415| | 2011-3-25 12:16 | 只看该作者
搞不了汇编。偶学的是C

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

72

帖子

1

粉丝