PIC单片机及FPGA实验系统设计 第26页
//********************************************************
/******************************************************
* *函数名Led_Xianshi()
* *功能描述:显示子程序
**********************************************************/
void Led_Xianshi()
{
unsigned int Led_Xianshi_D,Led_Xianshi_W;
if(Led_Duan_ag==5)
Led_Duan_ag=0;
if(Key_Write==1)
{
if(Led_Duan_ag==Led_Duan_jishuqi)
{
Led_Key_jishuqi++;
if(Led_Key_jishuqi>40)
Led_Xianshi_D=0x00;
else
Led_Xianshi_D=Led_Duan[duan[Led_Duan_ag]];
if(Led_Key_jishuqi==80)
Led_Key_jishuqi=0;
}
else
Led_Xianshi_D=Led_Duan[duan[Led_Duan_ag]];
}
else
Led_Xianshi_D=Led_Duan[duan[Led_Duan_ag]];
Led_Xianshi_W=Led_Wei[Led_Duan_ag];
if(Led_Duan_ag==2)
PORTD=Led_Xianshi_D|0X80;
else PORTD=Led_Xianshi_D&0X7F;
PORTC=Led_Xianshi_W;
Led_Duan_ag++;
}
//**********************************************
/************************************************
* *函数名Keyad_shezhi()
* *功能描述:AD转换与设置对比处理子程序
此程序上限与下限互调设置值为上限值
***************************************************/
void Keyad_shezhi()
{
unsigned int Keyad_a;
Keyad_a=Key_Shezhi;
if(Ad_shezhi<(Keyad_a-500))
{
RA2=0;
RA3=0;
}
if(Ad_shezhi>=(Keyad_a-500)&&Ad_shezhi<=Keyad_a) //下限输出
{
RA2=0; //关上限
RA3=1; //开下限
}
if(Ad_shezhi>Keyad_a) //上限输出
{
RA3=0; //关下限
RA2=1; //开上限
}
}
//****************************************************
/******************************************************
* *函数名interrupt pic_Ad_Rb_T0(void)
* *功能描述:中断子程序
**********************************************************/
void interrupt pic_Ad_T0(void)
{
if(T0IF==1)
{
T0IE=0;
TMR0=0Xf7;
Led_Xianshi();
T0IF=0;
T0IE=1;
}
if(ADIF==1)
{
ADIF=0;
AD_Zhuanhuan();
}
}
/*****************************************
* *函数名:AD_Zhuanhuan()
* *功能描述:A/D转换完成后处理数据子程序
******************************************/
void AD_Zhuanhuan()
{
Ad_Sample_Result=(ADRESL+(ADRESH<<8))<<3; //读取并存储A/D转换结果
Ad_shezhi=Ad_Sample_Result;
duan[4]=Ad_Sample_Result%10;
duan[3]=Ad_Sample_Result/10%10;
duan[2]=Ad_Sample_Result/100%10;
duan[1]=Ad_Sample_Result/1000%10;
duan[0]=Ad_Sample_Result/10000;
}
//*******************************************
/*******************************************
* *函数名Write_Eeporom()
* *功能描述:把需要的数据存入EEPROM子程序
****************************************/
void Write_Eeporom()
{
unsigned int Data1,Data2;
Data1=Key_Shezhi/100;
Data2=Key_Shezhi%100;
while(WR!=0)
;
EEADR=0x00;
EEDATA=Data1;
EEPGD=0;
WREN=1;
EECON2=0X55;
EECON2=0XAA;
WR=1;
WREN=0;
delay();
delay();
while(WR!=0)
;
EEADR=0x01;
EEDATA=Data2;
EEPGD=0;
WREN=1;
EECON2=0X55;
EECON2=0XAA;
WR=1;
WREN=0;
}
/***********************************
* *函数名Read_Eeporom
<< 上一页 [21] [22] [23] [24] [25] [26] [27] [28] 下一页
PIC单片机及FPGA实验系统设计 第26页下载如图片无法显示或论文不完整,请联系qq752018766