t
Nus延时函数u
sig
edi
ti0fori0i
idelay_1usvoiddelay_1msvoid1ms延时函数u
sig
edi
tifori0i1140ivoiddelay_
msu
sig
edi
t
Nms延时函数
fu
sig
edi
ti0fori0i
idelay_1ms
voidLCD_i
itvoid液晶初始化LCD_write_comma
d0x28delay_
us40LCD_write_comma
d0x28delay_
us40LCD_write_comma
d0x28delay_
us40LCD_e
_writedelay_
us40LCD_write_comma
d0x284位显示LCD_write_comma
d0x0c显示开LCD_write_comma
d0x01清屏delay_
ms2voidLCD_e
_writevoid液晶使能LCD1602_EN1delay_
us1LCD1602_EN0voidLCD_write_comma
du
sig
edcharcomma
d写指令delay_
us16LCD1602_RS0RS0LCD_DATA0X0f清高四位LCD_DATAcomma
d0xf0写高四位LCD_e
_writecomma
dcomma
d4低四位移到高四位
fLCD_DATA0x0f清高四位LCD_DATAcomma
d0xf0写低四位LCD_e
_writevoidLCD_write_datau
sig
edcharRecdata写数据delay_
us16LCD1602_RS1RS1LCD_DATA0X0f清高四位LCD_DATARecdata0xf0写高四位LCD_e
_writeRecdataRecdata4低四位移到高四位LCD_DATA0X0f清高四位LCD_DATARecdata0xf0写低四位LCD_e
_write
voidLCD_set_xyu
sig
edcharxu
sig
edchary写地址函数u
sig
edcharaddressify0address0x80xelseaddress0xc0xLCD_write_comma
daddressvoidLCD_write_charu
sig
edcharXu
sig
edcharYu
sig
edcharRecdata列x015行y01LCD_set_xyXY写地址LCD_write_dataRecdatai
tLCD_PutStru
sig
edcharDDatai
tposu
sig
edchariifpos1
fLCD_write_comma
d0x01清屏delay_
ms2pos0whileDData0switchDDatacase
如果是
,则换行ifpos17foriposi16iLCD_write_chari16i16pos16elseforiposi32iLCD_write_chari16i16pos0breakcaseb如果是b,则退格ifpos0posLCD_write_charpos16pos16breakdefaultifDData0x20DDataLCD_write_charpos16pos16DData
fposbreakDDataretur
pos以下函数用于输出数字i
tLCD_PutNumu
sig
edlo
g
umi
tXSi
tpos从右边数,保留几位小数u
sig
edlo
gtmp0u
sig
edchar
umbits0ifpos1LCD_write_comma
d0x01delay_
ms2pos0if
um0LCD_write_charpos16pos160poselseif
um0LCD_write_charpos16pos16
um1poswhile
umtmptmp10
um10
um
um10
umbits
fwhiletmpLCD_write_charpos16pos16tmp1048tmptmp10pos
umbitsif
umbitsXSposLCD_PutStr