网上有关“急求:基于MCS-51单片机的温度控制器汇编语言软件设计和硬件电路”话题很是火热,小编也是针对急求:基于MCS-51单片机的温度控制器汇编语言软件设计和硬件电路寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。
您好:手机麻将有挂是真的吗这款游戏可以开挂,确实是有挂的,咨询加微信【】很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的
1.手机麻将有挂是真的吗这款游戏可以开挂,确实是有挂的,通过添加客服微信
2.咨询软件加微信【】在"设置DD功能DD微信手麻工具"里.点击"开启".
3.打开工具.在"设置DD新消息提醒"里.前两个选项"设置"和"连接软件"均勾选"开启"(好多人就是这一步忘记做了)
4.打开某一个微信组.点击右上角.往下拉."消息免打扰"选项.勾选"关闭"(也就是要把"群消息的提示保持在开启"的状态.这样才能触系统发底层接口)
第2章 硬件电路详细设计
DS18B20的性能特点:1、采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位),2、测温范围为-55℃-+125℃,测量分辨率为0.0625℃,3、内含64位经过激光修正的只读存储器ROM,4、适配各种单片机或系统机,5、用户可分别设定各路温度的上、下限,6、内含寄生电源。温度传感器DS18B20连接方式:在寄生电源供电方式下,DS18B20从单线信号线上汲取能量,在信号线DQ处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。如图2.3所示。
2.4 复位电路的设计
本设计采用人工复位,将一个按扭开关并联于上电自动复位电路按一下开关就在RST端出现一段时间的高电平,即器件复位。
2.5 晶振电路的设计
2.6 DS18B20温度传感器与单片机的接口电路
DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。
当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。
2.7 温度测量系统整体硬件电路
Wei1 BIT P3.0 ;;数码管第1位
Wei2 BIT P3.1 ;;数码管第2位
Wei3 BIT P3.2 ;;数码管第3位
Wei4 BIT P3.3 ;;数码管第4位
Dian EQU 20H ;;小数点状态状态保存字节
DisData1 EQU 30H ;;第1位显示数据
DisData2 EQU 31H ;;第2位显示数据
DisData3 EQU 32H ;;第3位显示数据
DisData4 EQU 33H ;;第4位显示数据
DisTime EQU 34H ;;设置显示几次后读取温度值
;;温度数据存储单元标号定义
TempL EQU 35H ;;温度高位
TempH EQU 36H ;;温度低位
;;与DS18B20通迅部分存储单元及标号定义
DS18B20 BIT P1.0 ;;与DS18B20通迅的位地址
RFail BIT 21H.0 ;;复位失败标记
Var EQU 22H ;;变量字节,温度数据处理时用到
Var2 EQU 3FH ;;变量字节
主程序部分:
ORG 00H
LJMP START
ORG 100H
START: ;;-----初始化
MOV SP,#60H ;;初始化堆栈指针
Set18B20:;;-----DS18B20初始化
;;DS18B20复位
ACALL Reset
JB RFail,LOOP ;;复位失败则直接跳至显示部分
;;对DS18B20发出Skip ROM命令
MOV A,#0CCH
ACALL Write
;;对DS18B20发出温度转换命令
MOV A,#44H
ACALL Write
SetDisT:MOV DisTime,#3 ;;设置下一个循环体的循环8次
LOOP:
ACALL Display ;;显示
JB RFail,Set18B20 ;;DS18B20复位失败时,在显示完一次后重新复位
DJNZ DisTime,LOOP
JNB DS18B20,$ ;;判断DS18B20是否已完成温度转换
ACALL GetTemp ;;从DS18B20读出温度值
ACALL DealTemp ;;温度值处理
ACALL SendDisDT ;;根据当前系统状态设置显示内容
SJMP SetDisT ;;;;;;;
;;根据当前状态给显示模块设置显示参数
SendDisDT:
MOV Dian,#7FH ;;最高位为0代表显示小数点
;;传送温度值
MOV A,TempH ;;送高位数据
MOV VAR,TempL ;;送低位数据
ACALL TransData
RET
;;A中保存高位值,Var中保存低位值
TransData:
;;取个位值
MOV B,#10
DIV AB
MOV DisData2,B
;;取十位值
JZ HavNot1 ;;判断商是否为0
MOV B,#10
DIV AB
MOV DisData3,B
JZ HavNot2 ;;判断商是否为0
MOV DisData4,A
SJMP XiaoShu ;;跳至百位符号处理部分
HavNot1:MOV DisData3,#10 ;;十位开始没有数字
HavNot2:MOV DisData4,#10 ;;百位开始没有数字
SignJudge:;;符号处理部分
JNB VAR.7,XiaoShu ;;当为负数显示符号
MOV A,#10
CJNE A,DisData3,BWSign
MOV DisData3,#11 ;;负号在十位
SJMP XiaoShu
BWSign:MOV DisData4,#11 ;;负号在百位
XiaoShu:;;小数处理部分,用查表法获取小数值,精确到小数点后1位
MOV A,VAR
ANL A,#0FH
MOV DPTR,#XSTab
MOVC A,@A+DPTR
MOV DisData1,A
RTransTemp:
RET
XSTab: DB 0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9
DS18B20通迅模块组
-------复位模块
Reset: ;;3微秒高电平
SETB DS18B20
MOV R7,#250
CLR RFail ;;清0复位失败标记
CLR DS18B20
;;延迟501uS
DJNZ R7,$
SETB DS18B20 ;;释放总线(拉高数据线)
;;等待DS18B20作出复位成功反应,最大等待时间为69uS
MOV R7,#17
Wait:
JNB DS18B20,RReset ;;若DS18B20在作出复位成功反应,不再等待
DJNZ R7,Wait
SETB RFail ;;70uS内DS18B20作出复位成功反应,置1复位失败标记
RReset:
;;延迟350Us
MOV R7,#174
DJNZ R7,$
SETB DS18B20
RET
/
;;-------向DS18B20写一个字的模块,要写的内容提前装入ACC中
Write:
MOV R6,#8 ;写8位
WriteBit:
;;2微秒高电平
SETB DS18B20
MOV R7,#3
;;7微秒低电平
CLR DS18B20
DJNZ R7,$
;;ACC低位送至DS18B20
RRC A
MOV DS18B20,C
;;延迟60Us
MOV R7,#28
DJNZ R7,$
;;是否已写完8位
DJNZ R6,WriteBit
RWrite:
SETB DS18B20
RET
; /
;;-------从DS18B20读回一个字节的内容,读回的内容装入ACC中
Read:
MOV R6,#8 ;;读回8位
MOV A,#0 ;;读回的内容装入ACC中
ReadBit:
;;2微秒高电平
SETB DS18B20
MOV R7,#7
;;2微秒低电平
CLR DS18B20
NOP
;;16微秒高电平
SETB DS18B20
DJNZ R7,$
;;读回一位数据放入ACC中
MOV C,DS18B20
RRC A
;;延迟66Us
MOV R7,#33
DJNZ R7,$
;;是否已读完8位
DJNZ R6,ReadBit
RRead:
SETB DS18B20
RET
/
;;-------与DS18B20通迅,读回两字节温度值,并装入ACC中TempL和TempH中
GetTemp:
ACALL Reset ;;复位
JB RFail,RGetTemp ;;判断复位是否成功
;;复位成功
;;对DS18B20发出Skip ROM命令
MOV A,#0CCH
ACALL Write
;;对DS18B20发出读命令
MOV A,#0BEH
ACALL Write
;;从DS18B20读回低8位温度值
ACALL Read
MOV TempL,A
;;从DS18B20读回高8位温度值
ACALL Read
MOV TempH,A
ACALL Reset ;;复位
JB RFail,RGetTemp ;;判断复位是否成功
;;对DS18B20发出Skip ROM命令
MOV A,#0CCH
ACALL Write
;;对DS18B20发出温度转换命令
MOV A,#44H
ACALL Write
RGetTemp:
RET
温度数据处理模块
DealTemp:
;;将整数的二进制数部分移到一个字节,符号位和小数部分移到一个字节
MOV R1,#Var
MOV Var,TempH
MOV A,TempL
XCHD A,@R1 ;;符号位、小数部分至VAR(@R1),整数部分至ACC
SWAP A
;;整数部分处理
JNB Var.7,NotNeg ;;判断是否为负数
CPL A ;;为负数,取反后加1得其绝对值
;;小数部分取反
XRL Var,#1FH ;;
INC Var
NotNeg:
MOV TempH,A
MOV TempL,Var
RET
显示模块
-------显示DisData(30H)从开始的三个字节保存显示信息
Display:
MOV DPTR,#Tab
;;**显示小数部分
MOV A,DisData1
MOVC A,@A+DPTR
MOV P2,A
CLR Wei1
ACALL Delay
SETB Wei1
;;**显示个位
MOV A,DisData2
MOVC A,@A+DPTR
;;小数点处理
ANL A,Dian
MOV P2,A
CLR Wei2
ACALL Delay
SETB Wei2
;;**显示十位
MOV A,DisData3
MOVC A,@A+DPTR
MOV P2,A
CLR Wei3
ACALL Delay
SETB Wei3
;;**显示百位
MOV A,DisData4
MOVC A,@A+DPTR
MOV P2,A
CLR Wei4
ACALL Delay
SETB Wei4
RET
Tab: ;;0~9、空白、负号的编码
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH
;;延迟
Delay:
MOV R6,#6
DD1:MOV R5,#250
DJNZ R5,$
DJNZ R6,DD1
RET
END
这里面插不了图,我有这个的整套课程设计报告,想要找我,mingchaofu@126.com
关于“急求:基于MCS-51单片机的温度控制器汇编语言软件设计和硬件电路”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!