标题:
汽车磨损报警器程序和pcb,ECAS翘板开关的单片机源程序
[打印本页]
作者:
wuzhezhewu
时间:
2019-4-23 21:27
标题:
汽车磨损报警器程序和pcb,ECAS翘板开关的单片机源程序
汽车磨损报警器程序和pcb,需要的朋友可以参考一下
0.png
(10.45 KB, 下载次数: 52)
下载附件
2019-4-23 21:45 上传
单片机源程序如下:
/**
**
**---------------文件信息-------------------------------------------------------------------------------
** 文 件 名: 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, 下载次数: 9)
2019-4-23 21:26 上传
点击文件名下载附件
5227
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1