全球旧事资料 分类
按下K1显示序列码,按下K2显示实时温度(本实验适合初学者调试理解18B20用,)i
cludereg52h52单片机defi
eucharu
sig
edchardefi
eui
tu
sig
edi
tui
t无符号整数sbitDQP22单总线(与自己的开发板相匹配)ui
ttemp温度ucharflag1符号
fsbitrsP10控制LCD(与自己的开发板相匹配)sbitrwP11控制LCD(与自己的开发板相匹配)sbitlcde
P25led使能端(与自己的开发板相匹配)sbitK1P34独立按键k1(与自己的开发板相匹配)sbitK2P35独立按键k2(与自己的开发板相匹配)sbitduP26位选防LED灯乱闪(与自己的开发板相匹配)sbitweP27段选防LED灯乱闪(与自己的开发板相匹配)ucharabcdefghA1A2A2tA3A4A5写在LCD上的字符,具体在程序中看voiddelayui
tcou
t延迟程序200cou
t8毫秒ui
tiwhilecou
ti200whilei0icou
tvoidDQresetvoid初始化,主机将DQ拉高上升沿(从机检测到上升沿后延时15到60毫秒,从机拉低总线60到240毫秒表示“我”在线)从机的工作是自动完成的ui
tiDQ0i103whilei0iDQ1i4whilei0ibittmpreadbit从18b20读1位ui
tibitdatDQ0iDQ1iidatDQi8whilei0iretur
dat返回datuchartmpread从18b20读1字节
fucharijdatdat0fori1i8ijtmpreadbitdatj7dat1retur
datvoidtmpwritebyteuchardat18b20写1bit(只能用于写命令)ui
tiucharjbittestbforj1j8j一位一位地传testbdat0x01datdat1iftestbDQ0iiDQ1i8whilei0ielseDQ0i8whilei0iDQ1iivoidtmpcha
gevoid温度转换子程序DQresetdelay1tmpwritebyte0xccCCH跳过ROMtmpwritebyte0x4444H温度转换ui
ttmp读取温度子程序
ffloatttucharabDQreset无论什么命令首先都要发起初始化delay1tmpwritebyte0xcc跳过ROM(本实验中实验板上只连接一块18B20)tmpwritebyte0xbe读便签存储器(温度以二进制储存于BEH)atmpreada为低八位btmpreadb为高八位tempbtemp8temptempatttemp00625二进制乘00625为十进制temptt1000精度为0001retur
temp
voidLCD_WriteComucharcomLCD写入命令rs0rw0P0comdelay5lcde
0delay5lcde
1delay5lcde
0voidLCD_WriteDatauchardatLCD写入数据rs1rw0lcde
0P0datdelay5lcde
1delay5lcde
0delay5voidLCD_I
itLCD初始化
fLCD_WriteCom0x38delay15LCD_WriteCom0x08delay3LCD_WriteCom0x01delay3LCD_WriteCom0x06delay3LCD_WriteCom0x0cvoidDisplay18B20Romcharr
好听全球资料 返回顶部