触发
F00
暂停与继续显示控制标志位
I
itialize_LCD
ShowStri
g00Prompt
ShowStri
g01Prompt16
while1
ifK10
V_Scroll_Display
DelayMS300
else
ifK20
H_Scroll_Display
DelayMS300
名称:液晶控制与显示程序
说明:本程序是通用的1602液晶控制程序。
i
clude
i
clude
defi
eucharu
sig
edchar
defi
eui
tu
sig
edi
t
sbitRSP20
sbitRWP21
4
f百度文库让每个人平等地提升自我
sbitENP22延时
voidDelayMSui
tms
uchari
whilemsfori0i120i
忙检查
ucharBusy_Check
ucharLCD_StatusRS0RW1EN1
寄存器选择读状态寄存器开始读
DelayMS1
LCD_StatusP0
EN0
retur
LCD_Status
写LCD命令
voidWrite_LCD_Comma
ducharcmd
whileBusy_Check0x800x80忙等待
RS0
选择命令寄存器
RW0
写
EN0
P0cmdEN1DelayMS1EN0
发送数据
voidWrite_LCD_Datauchardat
whileBusy_Check0x800x80忙等待
RS1RW0EN0P0datEN1DelayMS1EN0
LCD初始化
voidI
itialize_LCD
Write_LCD_Comma
d0x38DelayMS1Write_LCD_Comma
d0x01DelayMS1清屏Write_LCD_Comma
d0x06DelayMS1字符进入模式:屏幕不动,字符后移Write_LCD_Comma
d0x0cDelayMS1显示开,光标关
显示字符串
voidShowStri
gucharxucharyucharstr
uchari0
5
f百度文库让每个人平等地提升自我
ify0Write_LCD_Comma
d0x80x设置显示起始位置
ify1Write_LCD_Comma
d0xc0x
fori0i16i
输出字符串
Write_LCD_Datastri
13
19用ADC0808控制PWM输出
名称:用ADC0808控制PWM输出说明:使用数模转换芯片ADC0808,通过调节可变电阻RV1来调节脉冲宽度,运行程序时,通过虚拟示波器观察占空比的变化。
i
clude
defi
eucharu
sig
edchar
defi
eui
tu
sig
edi
t
sbitCLKP24
时钟信号
sbitSTP25启动信号
sbitEOCP26
转换结束信号
sbitOEP27输出使能
sbitPWMP30
PWM输出
延时
voidDelayMSui
tms
uchari
whilemsfori0i40i
主程序
voidmai
ucharValTMOD0x02
T1工作模式2
TH00x14
TL00x00
IE0x82
TR01
while1
ST0ST1ST0启动AD转换whileEOC等待转换完成
OE1ValP1
读转换值
6
f百度文库让每个人平等地提升自我
OE0ifVal0
PWM输出(占空比为0)
PWM0
DelayMS0xff
co
ti
ue
ifVal0xff
PWM输出(占空比为100)
PWM1
DelayMS0xff
co
ti
ue
PWM1
PWM输出(占空比为0100)
DelayMSVal
PWM0
DelayMS0xffVal
T0定时器中断给ADC0808提供时钟信号
voidTimer0_INTi
terrupt1
CLKCLK
20ADC0809数模转换与显示
名称:ADC0809数模r