}
CH451_LOAD_HIGH; //加载数据
}
//CH451初始化函数
void CH451_Init(){
CH451_DIN_LOW; //低电平使能串行接口
CH451_DIN_HIGH;
CH451_WriteCommand(CH451_RESET); //复位CH451
CH451_WriteCommand(CH451_SYSON2);//开显示、键盘
DDRE&=~DOUT; //PE5输入方向
EICRB|=(1<<ISC51); //PE5下降沿触发中断
EIMSK|=(1<<INT5); //PE5开外部中断
}
//CH451键值读取函数
void CH451_GetKeyValue(){
uchar i;
uchar GetKeyValue=0x00; //键盘代码
CH451_WriteCommand(CH451_KEY); //发送读取键值命令
for(i=0;i<7;i++){
GetKeyValue<<=1;
if(CH451_DOUT) GetKeyValue|=1;//从高到低读入451的数据
else GetKeyValue|=0;
CH451_DCLK_LOW; //下降沿有效
CH451_DCLK_HIGH;
}
if(GetKeyValue==0x00) return; //读出键码为0跳过
for(i=0;i<16;i++){ //查找键盘代码对应的键值
if(GetKeyValue==KeyCode){
KeyValue=i;
break;
}
}
}
//CH451显示一位数码管,DIG选择数码管,Data要显示的数字,Point是否显示小数点
void CH451_DisplayDig(uchar DIG,uchar Data,uchar Point){
if(Point==1) CH451_WriteCommand(DigCode[DIG]|(DSYCode[Data]|0x80));
else CH451_WriteCommand(DigCode[DIG]|DSYCode[Data]);
}
#
上一页 [1] [2]
本文关键字:程序 AVR单片机,单片机-工控设备 - AVR单片机