PIC单片机及FPGA实验系统设计 第23页
case 0x71:k=0;break;
case 0x72:k=13;break;
case 0x74:k=14;break;
case 0x78:k=15;break;
}
}
}
}
void key_chuli(void){
if((key>0)&&(key<10}){
if(keycount<6){
getps[keycount]=key;
dispbuf[keycount+2]=19;
}
}
if(keycount>=6){
keycount=6;
keyoverflag=1;
}
if(key==12){ //删除键
if(keycount>0){
keycount--;
getps[keycount]=0;
dispbuf[keycount+2]=16;
}
else{
keyoverflag=1;
}
}
if(key==15){ //确认键
if(keycount!=pslen){ //首先判断位数是否相同
errorflag=1;
rightflag=0;
second3=0;
}
else {
for(i=0;i<keycont+1;i++){
if(getps[i]!=ps[i]){
i=keycount+1;
errorflag=1;
rightflag=0;
second3=0;
goto a4;
}
}
errorflag=0;
rightflag=1;
a4: i=keycount+1;
}
}
}
}
void display(void){
TRISD=0x00;
TRISC=0x00;
flashcount++;
if(flashcount==8){
flashcount=0;
}
PORTC=dispbit[discount];
PORTD=dispcode[buffer[discount];
dispcount++;
if(dispcount==8){
dispcount=0;
}
delay(8);
PORTC=PORTC|0xff;
delay(8);
}
void interrupt T0(void){
if(T0IF==1){
T0IE=0;
display();
error_right();
keyover();
T0IF=0;
T0IE=1;
}
}
void error_right(void){
if(errorflag==1&&rightflag==0){
alarm();
}
if(errorflag==0&&rightflag==1){
TRISE=0x00;
PORTE0=1;
}
}
void keyover(void){
if (keyoverflag==1){
alarm();
}
}
void alarm(void){
TRISE=0x00;
PORTE1=~PORTE1;
}
附录(十四):包装机程序:文件baozhuangji.C
#include"pic.h"
//***********************************
//2006年2月22日调试通过
//***************************************
bank1 unsigned int Led_Duan[11]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00
}; //数码管段码不带小数点显示
bank1 unsigned int Led_Wei[5]={0x01,0x02,0x04,0x08,0x10
}; //位码
bank1 unsigned int duan[5]={10,10,10,10,10
}; //显示占存
unsigned int Key_Shezhi; //设置数值
unsigned char Key_Edit_shezhi; //设置标志
unsigned int Led_Duan_jishuqi; //LED显示位标志
//unsigned int Ad_Adresult=0; //A/D转换计算结果
unsigned int Ad_Sample_Result=0; //A/D转换采样结果
unsigned int Ad_shezhi=0; //AD数值
unsigned int Ad_Delay_Count=0; // 间隔一定时间启动A/D转换
unsigned int Led_Duan_ag=0;
unsigned int Key_Write; //写允许标志
unsigned int Led_Key_jishuqi; //闪烁位标志
/************************************
* *函数声明
***************************************/
void initial(void);
void AD_Initial(void);
void AD_Zhuanhuan(void);
void Key_Initial(void);
void Key_Main(void);
void Key_Ok(void);
void Key_Edit(void);
<< 上一页 [21] [22] [23] [24] [25] [26] [27] [28] 下一页
PIC单片机及FPGA实验系统设计 第23页下载如图片无法显示或论文不完整,请联系qq752018766