永发信息网

请问简易电压表的汇编语言源程序

答案:1  悬赏:10  手机版
解决时间 2021-03-15 04:59
请问简易电压表的汇编语言源程序
最佳答案
AD_CLK EQU P1.0
AD_DAT EQU P1.1
AD_CS EQU P3.4
DISSTART EQU 30H ;显示单元首地址
LED_DATA EQU P0 ;数码管数据定义
ORG 0000H
JMP START

;--------------------------------------------------------
START: MOV SP,#60H
MOV A,#00H
MOV 20H,A
MOV P0,#0FFH
MOV P2,#0FFH

START1: CALL AD_CONV
CALL AD_CHULI
CALL QUSHU
CALL ADPLAY
JMP START1
;---------------------------------------------------------
AD_CONV: ;ADC0832初始化
SETB AD_CS ;一个转换周期开始
CLR AD_CLK
CLR AD_CS ;CS置0,片选有效
SETB AD_DAT ;DI置1,起始位
SETB AD_CLK ;第一个脉冲
CLR AD_DAT ;在负跳变之前加一个DI反转操作
CLR AD_CLK
SETB AD_DAT ;DI置1,设为单通道
SETB AD_CLK ;第二个脉冲
CLR AD_DAT ;***
CLR AD_CLK ;
CLR AD_DAT ;DI置0,选择通道0
SETB AD_CLK ;第三个脉冲
SETB AD_DAT ;***
CLR AD_CLK
NOP
SETB AD_CLK ; 第四个脉冲
MOV R1,#08H ;计数器初值,读取8位数据,
AD_READ: CLR AD_CLK ;下降沿
MOV C,AD_DAT ;读取DO端数据
RLC A ;C移入A,高位在前
SETB AD_CLK ;下一个脉冲
DJNZ R1,AD_READ ;没读完继续
SETB AD_CS
MOV 20H,A ;转换结果发给20H
RET
;------------------------------------------------------
AD_CHULI:
CLR C
MOV R5,#00H ;十进制转换的低位寄存器
MOV R4,#00H ;十进制转换的高位寄存器
MOV R3,#08H ;十进制调整的次数
MOV A,20H
AD_CHULI1:
RLC A
MOV R2,A
MOV A,R5
ADDC A,R5
DA A
MOV R5,A
MOV A,R4
ADDC A,R4
MOV R4,A
MOV A,R2
DJNZ R3,AD_CHULI1
MOV A,R5
ADD A,R5
DA A
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
RET
;-------------------------------------------------
QUSHU: MOV A,R5
ANL A,#0FH
MOV DISSTART,A
MOV A,R5
ANL A,#0F0H
SWAP A
MOV DISSTART+1,A
MOV A,R4
ANL A,#0FH
MOV DISSTART+2,A
MOV A,R4
ANL A,#0F0H
MOV DISSTART+3,A
RET
;---------------------------------------------------
ADPLAY: PUSH PSW
CLR PSW.3
SETB PSW.4

MOV R0,#DISSTART ;开始填充显示单元
MOV R2,#03H ;共计填充 3 位
DISP1: MOV A,@R0 ;获得当前位地址
MOV DPTR,#TAB_NU ;获得表头
MOVC A,@A+DPTR ;获得编码数据
MOV @R0,A ;保存编码数据
INC R0 ;指向下一个带转换数据
DJNZ R2,DISP1 ;继续转换,直到完成

MOV R0,#DISSTART ;获得显示单元首地址
MOV R1,#07FH ;从第一个数码管开始
MOV R2,#03H ;共显示3位数码管
DISP2: MOV LED_DATA,@R0 ;读取显示单元数据
MOV P2,R1 ;开始显示当前位
MOV A,R1 ;准备显示下一位
RR A ;
MOV R1,A ;下一位
INC R0 ;取下一个单元地址
JNB ACC.5,DISP3 ;第三位数码管加小数点
JMP DISP4
DISP3: MOV A,@R0
ANL A,#7FH
MOV @R0,A
DISP4: LCALL DELAY5MS ;延时 2 MS
DJNZ R2,DISP2 ;重复显示下一个
POP PSW
RET ;显示完成,返回
;---------------------------------------------------
DELAY5MS:
MOV R6,#10
DEL1: MOV R7,#100
DJNZ R7,$
DJNZ R6,DEL1
RET
;-------------------------------------------------
TAB_NU:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH
END
用ADC0832做AD转换,自己试试吧
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
路母细在什么地方啊,我要过去处理事情
苹果儿嘟嘟歌曲和歌词
天不容我,我又怎么能容天翻译成文言文。怎么
仔仔细细的反义词
桥西石滨超市我想知道这个在什么地方
心魔是什么意思
幽门螺杆菌的药可以跟蛔虫病的药一块吃吗
登录建行网上银行后,没有“安全退出”这一项
场效应管与三极管比较
四月有什么东西
米娜私家婚纱地址在哪,我要去那里办事
一个女孩说这是"P的"这句话是什么意思
求苏州、无锡、扬州、南京旅游计划
为什么中国科技大学的校园面积很小?
华讯科技我想知道这个在什么地方
推荐资讯
中间几个月未做账,可以 把折旧 工资 费用都记
广州友邦保险好做吗?
爸爸去哪里第一期中有一个任务是老爸教小朋友
宝诚潮步安仁专店地址在哪,我要去那里办事
云水谣附近两天游,求指导
可以随便用永和豆浆这个名吗
肾积水手术切掉个肾.术后有什么反映.磕头了
宜昌市西陵区窑湾乡东山村村民委员会在什么地
从沈阳大学到辽宁中医药大学怎么走
三岁宝宝眼睛远视250度 佩戴多少度的眼睛合适
车子满油四个月放家里不开有什么影响吗
钟祥市丽阳公路管理站地址在哪,我要去那里办
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?