//LCD OCM12864-1引脚定则模义区
#define en_ON PORTG|=BIT(2)
#define en_OFF PORTG&=~BIT(2)
#define rw_R PORTA|=BIT(4)
#define rw_W PORTA&=~BIT(4)
#define rs_DATA PORTA|=BIT(3)
#define rs_COM PORTA&=~BIT(3)
#define cs1_ON PORTG|=BIT(1)
#define cs1_OFF PORTG&=~BIT(1)
#define cs2_ON PORTG|=BIT(0)
#define cs2_OFF PORTG&=~BIT(0)
#define dat_DDRC DDRC
#define dat_PORTC PORTC
#define dat_PINC PINC
void jian_cha_LCD() //状态检查,LCD是否忙?
{
uchar dat
rs_COM //RS=0
rw_R //RW=1
do
{
dat_DDRC=0xFF
dat_PORTC=0x00
en_ON //EN=1//读出当前忙闲状态
dat_DDRC=0x00
dat=dat_PINC
en_OFF //EN=0
dat=0x80&dat //仅当第7位为0时才可 *** 作(判别busy信号)
}
while(PINC&BIT(7)) //表示在0时是空闲状态.....否则,等待.....
dat_DDRC=0xff
}
/***************************************/
void write_COM_LCD(uchar COM)//写命令到LCD中
{
//jian_cha_LCD()
rs_COM//RS=0 //向LCD发送命令
rw_W //RW=0
dat_PORTC=COM //command :命令
en_ON
delay_nus(20) //EN=1
en_OFF //EN=0 //在EN的下降沿,数据被锁存写入
}
/***************************************/
void write_DATA_LCD(uchar DATA1)//写数据尺吵到LCD中
{
//jian_cha_LCD()
rs_DATA /陵盯侍/RS=1 //向LCD发送命令
rw_W //RW=0
dat_PORTC=DATA1 //DATA:数据
en_ON //EN=1
delay_nus(20)
en_OFF //EN=0 //在EN的下降沿,数据被锁存写入
}
//设置页地址x,范围0到7列地址y,范围0到63;
void setxy(uchar x,uchar y)
{
write_COM_LCD(SCRCLS) //光标归位,清除显示,地址AC到00H
write_COM_LCD(0xb8+x) //设置页地址
write_COM_LCD(0x40+y) //设置列地址
}
ui_AD_data=(ui_ADCH<<8)|UI_ADcl就是这里我没有看拆伏懂
看你这个程序,转换结果旅衡携应该是右对齐的,假定转换结果为1023(0x03ff),那么ADCL = 0XFF,ADCH = 0X03
ui_ADCL=ADCL也就等于0xff
ui_ADCH=ADCH也就等于0x03
ui_ADCH<<8,那么ui_ADCH就等于0x0300,再和ui_ADCL做或运算,则ui_AD_data=0x3ff,你所说的返回最大也才255,不拦李知道是怎么来的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)