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

求基于EDA的计算器程序设计

发布网友 发布时间:2022-04-29 20:28

我来回答

2个回答

热心网友 时间:2022-06-22 09:52

可以考虑用DS18B20采用的单线的数据接口.
不过,我还没有用过,所以具体情况我也不太清楚...
我这儿有个程序或许可以参考一下...
电路图如下:

ORG 0000H ;DS18B20.ASM 0-125度的温度计 原创:陈永飞 QQ:49204743 地址:江苏省南京市
TEMPER_L EQU 41H ;用于保存读出温度的低8位 信箱:yni888@163.com
TEMPER_H EQU 40H ;用于保存读出温度的高8位
FLAG1 EQU 38H ;是否检测到DS18B20标志位
A_BIT1 EQU 31H ;数码管个位数存放内存位置
B_BIT1 EQU 32H ;数码管十位数存放内存位置
D_BIT1 EQU 35H ;数码管百位数存放内存位置
DQ EQU P3.2 ;30H,31H,32H,33H: X 个位 十位 X
MOD7: MOV SP,#60H
LCALL GET_TEMPER ;调用读温度子程序
LCALL TEMPCOV
LCALL JDQGZ
LCALL DISPLAY ;调用数码管显示子程序
AJMP MOD7
TEMP0: INC A
AJMP TEMP1
TEMPCOV: MOV A,TEMPER_L ;数据处理子程序TEMPCOV
MOV B,#16
DIV AB
JB B.3,TEMP0
TEMP1: MOV 34H,A ;将TEMPER_L的高四位右移四位,存入34H中(温度值)
MOV A,B ;将TEMPER_L的低四位X10/16得小数后一位数.
MOV B,#10
MUL AB
MOV B,#16
DIV AB
MOV 30H,A ;将小数后一位数.存入30H中
MOV A,TEMPER_H ;TEMPER_H中存放高8位数,权重16
MOV B,#16
MUL AB
ADD A,34H ;34H中存入温度值的整数部分
MOV B,#10
DIV AB
MOV 31H,B ;个位存入31H中
MOV B,#10 ;
DIV AB ;
MOV 32H,B ;十位存入32H中
MOV B,#10 ;
DIV AB ;
MOV 35H,B ;百位存入33H中
MOV A,TEMPER_H
MOV 33H,#10H ;
JB ACC.7,EXIT7
MOV 33H,#00H
EXIT7: RET
INIT_1820: ;这是DS18B20复位初始化子程序
SETB DQ
NOP
CLR DQ ;主机发出延时537微秒的复位低脉冲
MOV R1,#3
TSR1: MOV R0,#107
DJNZ R0,$
DJNZ R1,TSR1
SETB DQ ;然后拉高数据线
NOP
NOP
NOP
MOV R0,#25H
TSR2: JNB DQ,TSR3 ;等待DS18B20回应
DJNZ R0,TSR2
LJMP TSR4 ;延时
TSR3: SETB FLAG1 ;置标志位,表示DS1820存在
LJMP TSR5
TSR4: CLR FLAG1 ;清标志位,表示DS1820不存在
LJMP TSR7
TSR5: MOV R0,#117
TSR6: DJNZ R0,TSR6 ;时序要求延时一段时间
TSR7: SETB DQ
RET
;-------------------------------------------------
GET_TEMPER: ;读出转换后的温度值
SETB DQ
LCALL INIT_1820 ;先复位DS18B20
JB FLAG1,TSS2
RET ;判断DS1820是否存在?若DS18B20不存在则返回
TSS2: MOV A,#0CCH ;跳过ROM匹配
LCALL WRITE_1820
MOV A,#44H ;发出温度转换命令
LCALL WRITE_1820
LCALL DISPLAY ;等待AD转换结束,12位的话750微秒
LCALL INIT_1820 ;准备读温度前先复位
MOV A,#0CCH ;跳过ROM匹配
LCALL WRITE_1820
MOV A,#0BEH ;发出读温度命令
LCALL WRITE_1820
LCALL READ_18200 ;将读出的温度数据保存到35H/36H
RET
;写DS18B20的子程序(有具体的时序要求)
WRITE_1820: MOV R2,#8 ;一共8位数据
CLR C
WR1: CLR DQ
MOV R3,#6
DJNZ R3,$
RRC A
MOV DQ,C
MOV R3,#23
DJNZ R3,$
SETB DQ
NOP
DJNZ R2,WR1
SETB DQ
RET
;读DS18B20的程序,从DS18B20中读出两个字节的温度数据
READ_18200: MOV R4,#2 ;将温度高位和低位从DS18B20中读出
MOV R1,#TEMPER_L ;低位存入TEMPER_L(TEMPER_L),高位存入(TEMPER_H)
RE00: MOV R2,#8 ;数据一共有8位
RE01: CLR C
SETB DQ
NOP
NOP
CLR DQ
NOP
NOP
NOP
SETB DQ
MOV R3,#9
RE10: DJNZ R3,RE10
MOV C,DQ
MOV R3,#23
RE20: DJNZ R3,RE20
RRC A
DJNZ R2,RE01
MOV @R1,A
DEC R1
DJNZ R4,RE00
RET
;显示子程序
DISPLAY: MOV DPTR,#TAB ;指定查表启始地址
MOV R0,#4
DPL1: MOV R1,#250 ;显示1000次
DPLOP: MOV A,A_BIT1 ;取个位数
MOVC A,@A+DPTR ;查个位数的7段代码
MOV P1,A ;送出个位的7段代码
CLR P3.7 ;开个位显示
ACALL D1MS ;显示1MS
SETB P3.7
MOV A,B_BIT1 ;取十位数
MOVC A,@A+DPTR ;查十位数的7段代码
MOV P1,A ;送出十位的7段代码
CLR P3.5 ;开十位显示
ACALL D1MS ;显示1MS
SETB P3.5
MOV A,D_BIT1 ;取百位数
MOVC A,@A+DPTR ;查百位数的7段代码
MOV P1,A ;送出百位的7段代码
CLR P3.4 ;开百位显示
ACALL D1MS ;显示1MS
SETB P3.4
MOV P1,#00H
DJNZ R1,DPLOP ;100次没完循环
DJNZ R0,DPL1 ;4个100次没完循环
RET
JDQGZ:
MOV R7,34H ;34H为温度的整数位.
MOV A,#10 ;这里以10度为例,若高于10度,刚开启继电器
SUBB A,R7 ;10度减当前温度.
JC KAI ;如果高于10度,则KAI
SETB P3.3 ;关闭,P3.3接PNP三极管
AJMP JDQFH
KAI: CLR P3.3
JDQFH: RET
;1MS延时(按12MHZ算)
D1MS: MOV R7,#0FFH
DJNZ R7,$
; DJNZ R7,$
RET
;实验板上的7段数码管0~9数字的共阴显示代码
TAB: DB 07DH;0
DB 018H;1
DB 06EH;2
DB 03EH;3
DB 01BH;4
DB 037H;5
DB 077H;6
DB 01CH;7
DB 07FH;8
DB 03FH;9

END

热心网友 时间:2022-06-22 09:52

我也在做这个课题啊
一起等待吧
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
男生买卫生巾支援灾区对吗? 打了耳洞三天下了耳钉,怎么办!! cs七龙珠家里两台电脑怎么连局域网玩 CS七龙珠怎么创建联网房间 CS七龙珠怎样和电脑玩 CS七龙珠能和电脑对打吗 不然怎样调对打模式有哪些地图!!!急需... 糖葫芦的山楂在哪里买 衡水市康宁街与人民路交叉口市一建家属院7号楼,1-201怎么翻译 梦见朋友搬家时小孩因我不愿离去,且小孩坐在床上跑出许老鼠? 梦见搬家是什么预兆解梦 cov不管是啥右侧都为0吗?如果是的话,答案里的计算步骤有啥用呢? 数学计算中协方差是一个数,在matlab 中实现中用cov怎么就变成矩阵了呢 matlab corrcoef与cov用哪个计算非线性数据好 matlab中的cov()计算协方差矩阵,得到的结果是一个对称矩阵吗? numpy的COV函数,究竟是什么计算 请求帮助:Matlab中cov函数是如何计算的 Ti-nspire cx cas 计算器问个问题 Oracle查询结果列的加减,求和,连接,列值相乘 大货车的刹车原理是什么? 被小米笔记本气到爆炸 之前动不动蓝屏 重启恢复出厂设置后 设置进不了 运行缓慢 刹车泵的功能与工作原理是什么? 小米的开机为什么这么慢 半挂车刹车系统原理 小米笔记本12.5第一次开机为什么那么慢 电气工程及其自动化专业要学哪些软件? 小米笔记本首次开机卡在这快一个小时了,怎么办 货车刹车总泵的作用工作原理 小米游戏本8代,前天开始电脑开机特别慢,以前六七秒,现在要1分钟多,我就重装了系统,但一天不到又慢? 学电气工程及其自动化的需要学什么软件? 大货车刹车原理 《春天,你好》作文 作文“春天,你好”300字,急求啊啊啊啊!!! 春天,你好写作提纲,亲们谢谢 简阳限号2021最新限号时间 以春天来了为题做作文 简阳限号吗 春天的作文? 春天话题作文 简阳机场车辆今天限号是多少 作文“……你好” 简阳到新都漫花庄园车辆限号吗 成都市今日限行尾号和时间几点 《三月,你好》初中作文 成都今日限行尾号是多少 你好 作文 今天成都限行尾号是多少 《影响力》读后感 一篇 你好,2015的初一作文。600字左右,谢谢了*^_^* 走绕城上成渝到简阳限号吗 影响力第3、4章读后感