📄 board_test.c
字号:
#include <pic.h>
//#include "internet_wire_test.h"//包含定义头文件
//__CONFIG(0x3732); //配置位
__CONFIG(0x3F72);
#define TESTB RC0
#define TESTA RC1
#define uchar unsigned char
const uchar code[]={0x08,0x09,0x0a,0x0b,0x0c}; //A通道扫描码
const uchar code2[]={0x0d,0x0e,0x0f}; //E通道扫描码
const uchar code1[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07}; //B通道扫描码
const uchar check_A1[]={0x01,0x02,0x04,0x08,0x30}; //A1通道校验码
const uchar check_A2[]={0x01,0x02,0x04}; //A2通道校验码
const uchar check_B[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //B通道校验码
uchar buffer[8]; //数据缓存
uchar flag1 = 0,flag2=0,flag3=0;count;
/********************子函数声明**************************/
void delay(uchar x);
void UNITB_TEST();
void error_alarm();
void pass_alarm();
void result();
/*************20M晶振延时大约一毫秒*****************/
void delay(uchar x)
{
uchar i,j,z;
for(i=x;i>0;i--)
for(j=20;j>0;j--)
for(z=100;z>0;z--);
}
/****************A通道检测*****************************/
void UNITA_TEST()
{
uchar i=0;
for(i=0;i<5;i++)
{
PORTB = code[i];
delay(10);
buffer[i] = PORTA ;
if(buffer[i]!=check_A1[i])
{
flag3++;
}
}
}
void UNITE_TEST()
{
uchar i;
for(i=0;i<3;i++)
{
PORTB = code2[i];
delay(10);
buffer[i] = PORTE;
if(buffer[i]!=check_A2[i])
{
flag3++;
}
}
if(flag3>=1)
{
RC4 = 0; RC6 = 1;
error_alarm();
flag3 = 0;
}
else
{
RC6 = 0; RC4 = 1;
pass_alarm();
}
}
/*****************B通道检测****************************/
void UNITB_TEST()
{
uchar i;
//PORTB = code1[0];
for(i=0;i<8;i++)
{
PORTB = code1[i];
delay(10);
buffer[i] = PORTD ;
if(buffer[i]!=check_B[i])
{
flag2++;
}
}
if(flag2>=1)
{
RC5 = 0; RC7 = 1;
error_alarm();
flag2 = 0;
}
else
{
RC7 = 0; RC5 = 1;
pass_alarm();
}
}
/************错误报警。蜂鸣器滴5声***************/
void error_alarm()
{
uchar i;
for(i=8;i>0;i--)
{
RC2=~RC2;
delay(30);
}
}
/*************正确报警,蜂鸣器滴2声************************/
void pass_alarm()
{
uchar i;
for(i=4;i>0;i--)
{
RC2=~RC2;
delay(30);
}
}
void init()
{
TRISB = 0X00;
TRISC = 0X03;
TRISD = 0XFF;
TRISE = 0X07;
PORTC = 0XF0;
RC3=0;
ADCON1 = 0X06;
}
void main()
{
uchar i=0;
init();
while(1)
{
if(TESTA==1)
{
UNITA_TEST();
UNITE_TEST();
}
if(TESTB==1)
{
UNITB_TEST();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -