📄 systemini.c
字号:
#include <pic.h> // 包含头文件
#include "total.h"
/*********************************************************************************
* 最后修改日期: 05-4-29
* 修改原因: 添加注释
* 修改人: 饶阳胜
/*********************************************************************************
* File: SystemIni.c
* 功能: 系统的初始化设置
* 设计者: 饶阳胜
* 日期: 05-2-27
* 入口参数: 无
* 出口参数: 无
* 说明: 每个项目均应包含此文件,依具体芯片的不同而做更改
* 芯片: PIC16c774
*********************************************************************************/
void System_Init(void)
{
PORTA = 0x0; //端口设置
PORTB = 0x0;
PORTC = 0x0;
PORTD = 0x0;
PORTE = 0x0;
TRISA = 0x23;
TRISB = 0xFF;
TRISC = 0xFF;
TRISD = 0x0;
TRISE = 0x1;
ENABLE_273 = TRUE; //选通外部输出273
//配置WDT
OPTION = 0x8F;
//为AD转换配置参数
ADCON1 = 0x8d; //RA0、RA1、RA3为模拟通道,转换后的数据右对齐
//为串口通信进行配置
SPBRG = 0x47; //波特率设置参数,波特率为9600
TXSTA = 0x24; //使能发送,异步模式,高速
RCSTA = 0x90; //使能接收
//为I2C通信进行配置
SSPCON = 0x28; //主控器方式。允许串行端口(IIC)工作
SSPADD = 0x1B; //为I2C配置时钟
STAT_CKE = 0; //输入电平服从I2C规范
STAT_SMP = 1; //采用100K速率
//为中断做相关设置
RCIF = 0; //清接收中断标志
ei(); //开总中断
PEIE = 1; //开第1外设中断
RCIE = 1; //开接收中断
display_weigh = 0; //正常显示态
weigh_side = 0; //
}
/*******************************************************************************************
* 函数名称: void InitTmr1(void)
* 功能: 初始化TMR1
* 入口参数: 无
* 出口参数: 无
* 全局变量:
* 调用模块:
* 设计者: 饶阳胜
* 日期: 05/3/4
* 说明: 定时时间: 0.05秒
*******************************************************************************************/
void Init_Tmr1(void){
T1CON = 0x20; //分频比1:4
TMR1H = 0x78; //设定值定入TMR1
TMR1L = 0xff;
TMR1IF = 0; //清除TMR1溢出中断标志
TMR1ON = 1; //打开TMR1
}
/******************************************************************************************
* 函数名称: unsigned short Hex_Bcd(unsigned short i)
* 功能: 将16进制数转换成BCD码
* 入口参数: i
* 出口参数:
* 全局变量: 无
* 调用模块: 无
* 设计者: 饶阳胜
* 日期: 05-4-4
******************************************************************************************/
unsigned short Hex_Bcd(unsigned short i)
{
return ( i / 1000 << 12 | (i % 1000) / 100 << 8 | (i % 100) / 10 << 4 | i % 10);
}
/******************************************************************************************
* 函数名称: unsigned short Bcd_Hex(unsigned short i)
* 功能: 将BCD码转换成16进制数
* 入口参数: i
* 出口参数:
* 全局变量: 无
* 调用模块: 无
* 设计者: 饶阳胜
* 日期: 05-4-4
******************************************************************************************/
unsigned short Bcd_Hex(unsigned short i)
{
return (i >> 12 & 0xf) * 1000 + (i >> 8 & 0xf) * 100 + (i >> 4 & 0xf) * 10 + (i & 0xf);
}
/***************************************************************************************************
* 函数名称: void Delay(unsigned short i,unsigned short j)
* 功能: 实现不同时段的延时
* 入口参数: i,j 延时参数,值越大,时间越长
* 出口参数: 无
* 调用模块: 无
* 全局变量: 无
* 设计者: 饶阳胜
* 日期: 05-4-2
***************************************************************************************************/
void Delay(unsigned short i,unsigned short j) //根据不同的参数,实现不同时段的延时
{
unsigned short k;
for(; i > FALSE; i--){
k = j;
for(; k > FALSE; k--){
asm("nop");
asm("nop");
asm("nop");
asm("nop");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -