|
汽車磨損報警器程序和pcb,需要的朋友可以參考一下
單片機源程序如下:
- /**
- **
- **---------------文件信息-------------------------------------------------------------------------------
- ** 文 件 名: main.c
- ** 版 本: V1.0
- ** 描 述: 系統(tǒng)功能處理
- ** 工 程; ECAS翹板開關(guān)程序
- ***/
- #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口初始化
- 參 數(shù): 無
- 返 回:無
- 修 改 人:
- 修改日期:
- ******************************************************************************/
- void Key_Init(void)
- {
- PTADD = 0x0f; //端口方向:1.輸出/0.輸入
- PTAPE = 0x0f; //內(nèi)部上拉:1.上拉/0:不上拉
- PTASE = 0x00; //輸出斜率抑制(減少EMC)
- PTADS = 0x0F; //大電流輸出
-
- PTBDD = 0x0F; //端口方向:1.輸出/0.輸入
- PTBPE = 0x0F; //內(nèi)部上拉:1.上拉/0:不上拉
- PTBSE = 0x00; //輸出斜率抑制(減少EMC)
- PTBDS = 0x0F; //大電流輸出
-
- PTCDD = 0x00; //端口方向:1.輸出/0.輸入
- PTCPE = 0xFF; //內(nèi)部上拉:1.上拉/0:不上拉
- PTCSE = 0x00; //輸出斜率抑制(減少EMC)
- PTCDS = 0x00; //大電流輸出
- }
- /******************************************************************************
- 功 能:void Time_Init(void)
- 描 述:定時器初始化
- 參 數(shù): 無
- 返 回:無
- 創(chuàng)建日期: 2011/06/29
- 修 改 人:
- 修改日期:
- 說 明: fBUSCLK = 1MHz fTPM1=1MHz 1uS
- ******************************************************************************/
- void Time_Init(void)
- {
- TPM1SC = 0<<7| //定時器1溢出標(biāo)志
- 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-分頻系數(shù)**********/
- 0<<1| /* 000-> 1,001-> 2,010-> 4,011-> 8 */
- 0<<0; /* 100->16,101->32,110->64,111->128 */
- // TPM1CNTL //計數(shù)器
- // 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)
- 描 述:系統(tǒng)初始化
- 參 數(shù): 無
- 返 回:無
- 創(chuàng)建日期: 2011/06/29
- 修 改 人:
- 修改日期:
- 說 明: fICGOUT = 8MHz,內(nèi)振.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:內(nèi)部時鐘,10:外部,11外部*/
- 0<<2| //OFF MODE振蕩器:1,使能;0,禁止
- 0<<1| //時鐘丟失檢測:0:使能;1,禁止
- 0<<0; //保留
-
-
- Time_Init(); //定時器初始化
- Key_Init();
- EnableInterrupts; //中斷使能
- }
- /******************************************************************************
- 功 能:void ISR_Time(void)
- 描 述:定時器中斷服務(wù)
- 參 數(shù): 無
- 返 回:無
- 創(chuàng)建日期: 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)
- 描 述:系統(tǒng)自檢處理
- 參 數(shù): 無
- 返 回:無
- 創(chuàng)建日期: 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(); //系統(tǒng)初始化
- 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;
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
程序BJQ-3-V1.0.zip
(291.63 KB, 下載次數(shù): 9)
2019-4-23 21:26 上傳
點擊文件名下載附件
5227
|
|