📄 2.c
字号:
while(P1IN&BIT0) {;}
//ADS1240SendByte(ADS1240_CMD_SELFCAL);
ADS1240WriteRegister(ADS1240_SETUP_REGISTER, 3, AD1240_Reg_Val);
ADS1240SendByte(ADS1240_CMD_SELFCAL);
//ADS1240SendByte(ADS1240_CMD_SYSOCAL);
// ADS1240SendByte(ADS1240_CMD_SYSGCAL);
for (i=0; i<4; i++)
ADS1240WaitForDataReady(0);
// for(i=2;i>=1;i--)
//{ for(j=191;j>=1;j--) {;}
//}
// while(P1IN&BIT0) {;}
/* while(P1IN&BIT0) {;}
ADS1240SendByte(0x50);//WREG CMD 1
ADS1240SendByte(0x02);//WREG CMD 2
ADS1240SendByte(0x02);//Set PGA 1
ADS1240SendByte(0x01);//MUX AIN0+,AIN1-
ADS1240SendByte(0x00);//ACR 15Hz 0 U/B 0 0 0 0 0 0 U/B=0,Bipolar 1,Unipolar
for(i=1;i>=1;i--)
{ for(j=191;j>=1;j--) {;}
}
while(P1IN&BIT0) {;}*/
}
//========================================================================================
//函数:void reset_AD_reg(void)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void reset_AD_reg(void)
{
unsigned char i;
AD_num=0;
ad_flag=0;
for(i=0;i<5;i++)
{
ad1240_test[i]=0;
ad1240_test1[i]=0;
}
}
//========================================================================================
//函数:void mode_check(void)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void mode_check(void)
{
unsigned char i;
switch(key_data)
{
case 2:
{
Mode=2;
key_data=0;
WDTCTL =WDT_ADLY_1000; //WDT_ADLY_250;//WDT_ADLY_1000; // WDT 1s/4 interval timer
IE1 |= WDTIE; // Enable WDT interrupt
}
break;
case 1:
{
Mode=1;
key_data=0;
set_lcd_out();
LCD_Cursor_Addr=0;
for(i=0;i<6;i++)
LCD_Key_bar[i]=0;
password_ok_flag=0;
}
break;
case 3:
{
Mode=3;
key_data=0;
}
break;
case 4:
{
Mode=4;
key_data=0;
}
break;
}
}
//========================================================================================
//函数:void Password_check(void)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void Password_check(void)
{
unsigned char flag,i;
////校正密码验证
while(!password_ok_flag)
{
if(key_data==0x02)
{
LCD_Cursor_Addr++;
if(LCD_Cursor_Addr>=LCD_NUM) LCD_Cursor_Addr=0;
key_data=0;
}
if(key_data==0x03)
{
LCD_Key_bar[LCD_Cursor_Addr]++;
if(LCD_Key_bar[LCD_Cursor_Addr]>=10) LCD_Key_bar[LCD_Cursor_Addr]=0;
key_data=0;
}
if(key_data==0x01)
{
flag=0;
for(i=0;i<LCD_NUM;i++)
{
if(LCD_Key_bar[i]!=password[i])//password_ok_flag
{ flag=1;break;}
}
if(flag==1)
password_ok_flag=0;
else
password_ok_flag=1;
key_data=0;
}
LCD_Display(LCD_Cursor_Addr,LCD_Key_bar);
}
}
//========================================================================================
//函数:void LCD_Display(unsigned char Cursor_Addr, unsigned char *LCD_data)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
//闪烁显示函数
void LCD_Display(unsigned char Cursor_Addr, unsigned char *LCD_data)
{
unsigned char i;
for(i=0;i<LCD_NUM;i++)
{
if(i==LCD_Cursor_Addr)
DisplayNum((Cursor_Addr+1),LCD_data[Cursor_Addr],0,0);
else
DisplayNum((i+1),LCD_data[i],0,0);
}
Delay(26500);
for(i=0;i<LCD_NUM;i++)
{
if(i==LCD_Cursor_Addr)
DisplayNum((Cursor_Addr+1),LCD_data[Cursor_Addr],0,1);
else
DisplayNum((i+1),LCD_data[i],0,0);
}
Delay(26500);
}
//========================================================================================
//函数:unsigned char get_key_bar(unsigned char *out_key_bar)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
unsigned char get_key_bar(unsigned char *out_key_bar)
{
unsigned char flag;
////校正密码验证
flag=0;
if(key_data==0x02)
{
LCD_Cursor_Addr++;
if(LCD_Cursor_Addr>=LCD_NUM) LCD_Cursor_Addr=0;
key_data=0;
}
if(key_data==0x03)
{
out_key_bar[LCD_Cursor_Addr]++;
if(out_key_bar[LCD_Cursor_Addr]>=10) out_key_bar[LCD_Cursor_Addr]=0;
key_data=0;
}
if(key_data==0x01)
{
flag=1;
key_data=0;
}
LCD_Display(LCD_Cursor_Addr,out_key_bar);
return flag;
}
//========================================================================================
//函数:void Save_key_data(unsigned long *data,unsigned int EE_addr)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void Save_key_data(unsigned long int*data,unsigned int EE_addr)
{
unsigned char i;
*data=0;
for(i=0;i<(LCD_NUM-1);i++)
*data=(*data+(unsigned long)LCD_Key_bar[i])*10;
*data=*data+(unsigned long)LCD_Key_bar[5];
Save_AD_Data(data,EE_addr);
}
//========================================================================================
//函数:void rest_LCD_data(void)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void rest_LCD_data(void)
{
unsigned char i;
LCD_Cursor_Addr=0;
for(i=0;i<6;i++)
LCD_Key_bar[i]=0;
}
//========================================================================================
//函数:void Open_AD_Sampling(void)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void Open_AD_Sampling(void)
{
AD_num=0;
Open_AD_Power();
Delay(20);
adc_init();
En_AD_DRDY_INT();
Delay(20);
ad_flag=0;
}
//========================================================================================
//函数:void Open_AD_Sampling(void)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void Close_AD_Sampling(void)
{
Close_AD_Power();//关AD电源
Dis_AD_DRDY_INT(); //关中断
//Delay(500);//消抖
AD_num=0;
ad_flag=0;
}
//========================================================================================
//函数:void Open_AD_Sampling(void)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void Open_WatchDog(void)
{
WDTCTL =WDT_ADLY_1000; //WDT_ADLY_250;//WDT_ADLY_1000; // WDT 1s/4 interval timer
IE1 |= WDTIE; // Enable WDT interrupt
}
//========================================================================================
//函数:void Open_AD_Sampling(void)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void Close_WatchDog(void)
{
WDTCTL=WDTPW+WDTHOLD;//Stop WDT
}
//========================================================================================
//函数:void Show_AD_Data(void)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void Show_AD_Data(void)
{
unsigned char i;
AD_Sampling_num=4;
if(AD_num>(AD_Sampling_num-1))
{
for(i=0;i<(AD_Sampling_num+1);i++)
ad1240_test1[i]=ad1240_test[i+1];
set_lcd_out();
ad1240=0;
ad1240=AD_Data_Manage(ad1240_test1,AD_Sampling_num);
I_VDisplay(6,ad1240);
set_lcd_powdn();
dataa=Hex_to_BCD(ad1240);
for(i=7;i>0;i--)
{
re_buffer1[i-1]=(dataa&0x0000000f);
re_buffer1[i-1]=re_buffer1[i-1]+0x30;
dataa=dataa>>4;
}
for(i=0;i<8;i++)
{
sent_byte(re_buffer1[i+1]);
}
sent_byte(0x0D);
sent_byte(0x0A);
AD_num=0;
}
}
//========================================================================================
//函数:void Save_AD_Data(unsigned long int*data,unsigned int EE_addr)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void Save_AD_Data(unsigned long int*data,unsigned int EE_addr)
{
unsigned char char_bar,i;
unsigned long long_bar;
Dis_key_INT();
long_bar=*data;
char_bar=(0x000000ff&long_bar);
WriteWord((EE_addr),char_bar);
long_bar=*data;
for(i=0;i<4;i++)
{
long_bar=long_bar>>8;
char_bar=(unsigned char)(0x000000ff&long_bar);
WriteWord((EE_addr+1+i),char_bar);
}
En_key_INT();
}
void writetoreg(uchar ad_reg)
{ uchar i;
for(i=8;i>=1;i--)
{ P1OUT&=~BIT2;//SCLK=0
if(ad_reg&0x80) P6OUT|=BIT4;//DIN=1
else P6OUT&=~BIT4;//DIN=0
_NOP();_NOP();_NOP();
ad_reg=ad_reg<<1;
P1OUT|=BIT2;//SCLK=1
_NOP();_NOP();_NOP();
}
for(i=15;i>=1;i--) {;}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -