问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

单片机(型号89C52)之简易数字电压表的设计

发布网友 发布时间:2022-05-05 01:15

我来回答

3个回答

热心网友 时间:2022-06-28 03:07

这个是最基本的,你首先要把他分开,AD采样,和数值显示两部分,其实你可以先读懂C的程序,用Keil编译器编译,然后在Keil编译器里就可以看到汇编了,下面给你个参看,运行条件为8051单片机,12M晶振,ADC0808,共阴数码管。
;********************************************************
;########################################################
OE BIT P3.0 ;ADC0808的OE端
EOC BIT P3.1 ;ADC0808的EOC端
ST BIT P3.2 ;ADC0808的START和ALE端
ADD0 BIT P3.4 ;ADC0808的模拟输入选择端
ADD1 BIT P3.5
ADD2 BIT P3.6
LED_0 DATA 30H ;显示缓冲区
LED_1 DATA 31H
LED_2 DATA 32H
LED_3 DATA 33H
ADC DATA 34H ;存放转换后的数据
;//////主程序开始////////////////////////////////////////
ORG 0000H
AJMP START
ORG 0030H
;------初始化-----------------------------------
START: MOV SP,#60H ;设置堆栈
MOV LED_0,#00H ;清空显示缓冲区
MOV LED_1,#00H
MOV LED_2,#00H
MOV LED_3,#00H
MOV DPTR,#TABLE ;送字型码表首地址
SETB ADD0
SETB ADD1
CLR ADD2 ;选择ADC0808的通道3
;------ADC0808转换------------------------------
WAIT: CLR ST
SETB ST
CLR ST ;启动转换
JNB EOC,$ ;等待转换结束
SETB OE ;允许输出
MOV ADC,P1 ;暂存转换结果
CLR OE ;关闭输出
;------数据处理,已备显示------------------------
MOV A,ADC ;将AD转换结果转换成BCD码
MOV B,#0C3H ;乘以19.5MV
MUL AB
MOV R7,A
MOV R6,B
HB2: CLR A ;BCD码初始化
CLR C
MOV R3,A
MOV R4,A
MOV R5,A
MOV R2,#10H ;转换双字节十六进制整数
HB3: MOV A,R7 ;从高端移出待转换数的一位到CY中
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R5 ;BCD码带进位自身相加,相当于乘2
ADDC A,R5
DA A ;十进制调整
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
MOV A,R3
ADDC A,R3
MOV R3,A ;双字节十六进制数的万位数不超过6,不用调整
DJNZ R2,HB3
MOV A,R5
SWAP A
ANL A,#0FH
MOV LED_0,A
MOV A,R4
ANL A,#0FH
MOV LED_1,A
MOV A,R4
SWAP A
ANL A,#0FH
MOV LED_2,A
MOV A,R3
ANL A,#0FH
MOV LED_3,A
LCALL DISP ;调用显示子程序
AJMP WAIT
;//////数码管显示子程序///////////////////////////////////////////////
DISP: MOV A,LED_0 ;数码显示子程序
MOVC A,@A+DPTR
CLR P2.3
MOV P0,A
LCALL DELAY
SETB P2.3
MOV A,LED_1
MOVC A,@A+DPTR
CLR P2.2
MOV P0,A
LCALL DELAY
SETB P2.2
MOV A,LED_2
MOVC A,@A+DPTR
CLR P2.1
MOV P0,A
LCALL DELAY
SETB P2.1
MOV A,LED_3
MOVC A,@A+DPTR
CLR P2.0
MOV P0,A
SETB P0.7
LCALL DELAY
SETB P2.0
RET
;//////延时子程序////////////////////////////////////
DELAY: MOV R6,#0AH ;延时5毫秒
D1: MOV R7,#0FAH
DJNZ R7,$
DJNZ R6,D1
RET
;//////数码管字形码表/////////////////////////////////
TABLE: DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
;/////程序结束////////////////////////////////////////
END

热心网友 时间:2022-06-28 03:07

楼主可以去中国电子DIY之家参考其他同学的制作实例和资料

热心网友 时间:2022-06-28 03:08

数字电压表

参考资料:数字电压表

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ipad mini2怎么看小说 关于ipadmini的几点疑惑 苹果平板图书阅读软件推荐推荐一个苹果可以用的免费看小说app 风冷无霜为什么噪音大 华为matepad11多大尺寸的 applewatch可以发微信语音吗? 人类基因组组成 仅从染色体照片(黑白非显带的)能否区别X染色体和C组染色体? ...车子加速不上来是什么原因,节气门清洗过了也不行? 换了变数箱油洗了节气门 提速慢了 停下来起步根本没力气 女家长在群里发信息问男老师问题,是故意勾引他吗? 五香卤猪肝的正宗做法,五香卤猪肝怎样做才好吃的做法 在线等一份数字电压表设计报告 脱高跟鞋打小学生女教师被解聘了吗? 设计一台基于8051单片机的数字电压表,能够直接测量0-2V范围内的直流电压. 教师发不当言论被停职,究竟说了什么不该说的话? 单片机课程设计数字电压表 谁能说下dota2申请帐号流程详细图和,申请完后到底登哪个帐号是邮箱帐号还是完美世界帐号,我快糊涂 ipad air关机充电,今天开机后出现好多软件闪退,根本进不去,什么原因,怎么解决 女教师微信群起个什么名字 单片机实训心得(实验要求利用单片机AT89C51芯片与ADC0809芯片设计一个数字电压表,测0-5V直流电压) 老师在微信群发发的教材文件怎么下载? iPad闪退怎么办? dota2注册了完美通行证怎么注册账号 ipad air 老闪退什么原因 单片机89S51和AD0809S的数字电压表的报告?十万火急 Steam上下载的dota2需要注册账号吗? 《女老师微信群》by独孤求剩txt下载在线阅读全文,求百度网盘云资源 ipad air程序为什么一直闪退 简单的单片机数字电压表 高分求教:数字电压表 数码管显示电压值的程序帮忙看看 单片机做数字电压表的程序,帮忙解释一下下面四句的含义 跪求高手帮忙!!!设计一个基于单片机的数字电压表,要求能测量0-5V电压并通过数码管显示被测量的值。 毕业设计:数字电压表的设计。求原理图,程序。。。 孔子德育观点及其现实意义 你认为孔子的教育理念在今天有什么现实意义 “三人行,必有我师焉”反映了孔子的什么教育思想?有什么现实意义? 孔子思想有什么现实意义? 论述孔子教育思想的历史意义和现实意义 孔子思想的现实意义? 国家标准修改通知单的格式文件具体内容是什么样的? 结合当下教育现状,谈谈孔子的教育方法的现实意义是什么? 孔子的思想今天还有什么现实意义 孔子的教育思想,对现代教育有何影响 孔孟思想的现代意义? 施工文档资料更改后由什么人填写文档更改通知单并负责发新版本文件 孔子德育思想的现代意义 iso9000中的记录样表变动时,请问用填写文件更改申请单,与通知单吗?请指点,谢谢 孔子的教育思想对当代有哪些借鉴意义 孔子的教育思想对对当代教育还有哪些可借鉴的意义