汽车磨损报警器程序和pcb,需要的朋友可以参考一下
单片机源程序如下:
- /**
- **
- **---------------文件信息-------------------------------------------------------------------------------
- ** 文 件 名: main.c
- ** 版 本: V1.0
- ** 描 述: 系统功能处理
- ** 工 程; ECAS翘板开关程序
- ***/
- #include <hidef.h> /* for EnableInterrupts macro */
- #include "derivative.h" /* include peripheral declarations */
- #include "config.h"
- uint8 AutoCheck_Num;
- uint16 AutoCheck_Time;
- byte ad_flag;
- /******************************************************************************
- 功 能:void Key_Init(void)
- 描 述:所有IO口初始化
- 参 数: 无
- 返 回:无
- 修 改 人:
- 修改日期:
- ******************************************************************************/
- void Key_Init(void)
- {
- PTADD = 0x0f; //端口方向:1.输出/0.输入
- PTAPE = 0x0f; //内部上拉:1.上拉/0:不上拉
- PTASE = 0x00; //输出斜率抑制(减少EMC)
- PTADS = 0x0F; //大电流输出
-
- PTBDD = 0x0F; //端口方向:1.输出/0.输入
- PTBPE = 0x0F; //内部上拉:1.上拉/0:不上拉
- PTBSE = 0x00; //输出斜率抑制(减少EMC)
- PTBDS = 0x0F; //大电流输出
-
- PTCDD = 0x00; //端口方向:1.输出/0.输入
- PTCPE = 0xFF; //内部上拉:1.上拉/0:不上拉
- PTCSE = 0x00; //输出斜率抑制(减少EMC)
- PTCDS = 0x00; //大电流输出
- }
- /******************************************************************************
- 功 能:void Time_Init(void)
- 描 述:定时器初始化
- 参 数: 无
- 返 回:无
- 创建日期: 2011/06/29
- 修 改 人:
- 修改日期:
- 说 明: fBUSCLK = 1MHz fTPM1=1MHz 1uS
- ******************************************************************************/
- void Time_Init(void)
- {
- TPM1SC = 0<<7| //定时器1溢出标志
- 1<<6| //溢出中断使能
- 1<<5| //PWM中心选择:0,由MSnB:MSnA决定;1,所有的TPMx
- 0<<4| /********bit4,bit3-时钟源选择***********/
- 1<<3| /*00:禁止,01:BUSCLK,10:XCLK,11:外部时钟*/
- 0<<2| /******bit2,bit1,bit0-分频系数**********/
- 0<<1| /* 000-> 1,001-> 2,010-> 4,011-> 8 */
- 0<<0; /* 100->16,101->32,110->64,111->128 */
- // TPM1CNTL //计数器
- // TPM1CNTH
- TPM1MODH=0x03;
- TPM1MODL=0xE8;
-
- // TPM1C0SC = 0x04;
- // TPM1C1SC =0x04;
- // TPM1C2SC =0x04;
- // TPM1C3SC =0x04;
- // TPM1C4SC =0x04;
- // TPM1C5SC =0x04;
- //TPM1C0VL
- //TPM1C0VH
- //TPM1C1VL
- //TPM1C1VH
- //TPM1C2VL
- //TPM1C2VH
- //TPM1C3VL
- //TPM1C3VH
- //TPM1C4VL
- //TPM1C4VH
- //TPM1C5VL
- //TPM1C5VH
- }
- /******************************************************************************
- 功 能:void SysInit(void)
- 描 述:系统初始化
- 参 数: 无
- 返 回:无
- 创建日期: 2011/06/29
- 修 改 人:
- 修改日期:
- 说 明: fICGOUT = 8MHz,内振.fTPM1=1MHz
- ******************************************************************************/
- void SysInit(void)
- {
- SOPT1 = 1<<7| //看门狗定时器(1):0,禁止;1,使能
- 1<<6| //看门狗溢出周期(1):1,2^18;0,2^13
- 0<<5; //STOP模式(0):1,使能;0,禁止
- RTCSC = 0<<7| //晶振选择:1,高增益;0,低电压
- 0<<6| //频率范围选择:1,高频P=1;0,低频P=64
- 1<<5| //0:外部时钟输入;1,振荡器或
- 0<<4| /*******bit4,bit3-时钟模式选择*************/
- 0<<3| /*00:self clock,01:内部时钟,10:外部,11外部*/
- 0<<2| //OFF MODE振荡器:1,使能;0,禁止
- 0<<1| //时钟丢失检测:0:使能;1,禁止
- 0<<0; //保留
-
-
- Time_Init(); //定时器初始化
- Key_Init();
- EnableInterrupts; //中断使能
- }
- /******************************************************************************
- 功 能:void ISR_Time(void)
- 描 述:定时器中断服务
- 参 数: 无
- 返 回:无
- 创建日期: 2011/06/29
- 修 改 人:
- 修改日期:
- 说 明: 1mS
- ******************************************************************************/
- interrupt 11 void ISR_Time(void)
- {
- byte a;
- a = TPM1SC_TOF ;
- TPM1SC_TOF = 0 ;
- if (AutoCheck_Time>0)
- AutoCheck_Time++;
- if (AutoCheck_Time>1000)
- {
- AutoCheck_Num ++;
- if(AutoCheck_Num>=8)
- AutoCheck_Time= 0;
- else
- AutoCheck_Time= 1;
-
- }
- }
- /******************************************************************************
- 功 能:void AutoCheck(void)
- 描 述:系统自检处理
- 参 数: 无
- 返 回:无
- 创建日期: 2011/06/29
- 修 改 人:
- 修改日期:
- ******************************************************************************/
- void AutoCheck(void)
- {
-
- switch(AutoCheck_Num)
- {
- case 0:
- {
- LED_CON1 = 1;
- break;
- }
- case 1:
- {
- LED_CON1 = 0;
- LED_CON2 = 1;
- break;
- }
- case 2:
- {
- LED_CON2 = 0;
- LED_CON3 = 1;
- break;
- }
-
- case 3:
- {
- LED_CON3 = 0;
- LED_CON4 = 1;
- break;
- }
-
- case 4:
- {
- LED_CON4 = 0;
- LED_CON5 = 1;
- break;
- }
- case 5:
- {
- LED_CON5 = 0;
- LED_CON6 = 1;
- break;
- }
- case 6:
- {
- LED_CON6 = 0;
- LED_CON7 = 1;
- break;
- }
- case 7:
- {
- LED_CON7 = 0;
- LED_CON8 = 1;
- break;
- }
- case 8:
- {
- LED_CON8 = 0;
- break;
- }
- default:
- {
- break;
- }
- }
- }
- void main(void)
- {
- SysInit(); //系统初始化
- AutoCheck_Time = 1;
-
- for(;;)
- {
- __RESET_WATCHDOG(); /* feeds the dog */
- AutoCheck(); //自检
- if(SIGN1&(AutoCheck_Time>0)) LED_CON1 = 1;
- else LED_CON1 = 0;
- if(SIGN2&(AutoCheck_Time>0)) LED_CON2 = 1;
- else LED_CON2 = 0;
- if(SIGN3&(AutoCheck_Time>0)) LED_CON3 = 1;
- else LED_CON3 = 0;
- if(SIGN4&(AutoCheck_Time>0)) LED_CON4 = 1;
- else LED_CON4 = 0;
- if(SIGN5&(AutoCheck_Time>0)) LED_CON5 = 1;
- else LED_CON5 = 0;
- if(SIGN6&(AutoCheck_Time>0)) LED_CON6 = 1;
- else LED_CON6 = 0;
- if(SIGN7&(AutoCheck_Time>0)) LED_CON7 = 1;
- else LED_CON7 = 0;
- if(SIGN8&(AutoCheck_Time>0)) LED_CON8 = 1;
- else LED_CON8 = 0;
- }
- }
复制代码
所有资料51hei提供下载:
程序BJQ-3-V1.0.zip
(291.63 KB, 下载次数: 8)
|