📄 systemini.lst
字号:
1: #include <pic.h> // 包含头文件
2: #include "total.h"
3:
4: /*********************************************************************************
5: * 最后修改日期: 05-4-29
6: * 修改原因: 添加注释
7: * 修改人: 饶阳胜
8: /*********************************************************************************
9: * File: SystemIni.c
10: * 功能: 系统的初始化设置
11: * 设计者: 饶阳胜
12: * 日期: 05-2-27
13: * 入口参数: 无
14: * 出口参数: 无
15: * 说明: 每个项目均应包含此文件,依具体芯片的不同而做更改
16: * 芯片: PIC16c774
17: *********************************************************************************/
18: void System_Init(void)
19: {
20: PORTA = 0x0; //端口设置
21: PORTB = 0x0;
22: PORTC = 0x0;
23: PORTD = 0x0;
24: PORTE = 0x0;
25: TRISA = 0x23;
26: TRISB = 0xFF;
27: TRISC = 0xFF;
28: TRISD = 0x0;
29: TRISE = 0x1;
30:
31: ENABLE_273 = TRUE; //选通外部输出273
32:
33: //配置WDT
34: OPTION = 0x8F;
35:
36: //为AD转换配置参数
37: ADCON1 = 0x8d; //RA0、RA1、RA3为模拟通道,转换后的数据右对齐
38:
39: //为串口通信进行配置
40: SPBRG = 0x47; //波特率设置参数,波特率为9600
41: TXSTA = 0x24; //使能发送,异步模式,高速
42: RCSTA = 0x90; //使能接收
43:
44: //为I2C通信进行配置
45: SSPCON = 0x28; //主控器方式。允许串行端口(IIC)工作
46: SSPADD = 0x1B; //为I2C配置时钟
47: STAT_CKE = 0; //输入电平服从I2C规范
48: STAT_SMP = 1; //采用100K速率
49:
50: //为中断做相关设置
51: RCIF = 0; //清接收中断标志
52: ei(); //开总中断
53: PEIE = 1; //开第1外设中断
54: RCIE = 1; //开接收中断
55:
56: display_weigh = 0; //正常显示态
57: weigh_side = 0; //
58: }
59:
60: /*******************************************************************************************
61: * 函数名称: void InitTmr1(void)
62: * 功能: 初始化TMR1
63: * 入口参数: 无
64: * 出口参数: 无
65: * 全局变量:
66: * 调用模块:
67: * 设计者: 饶阳胜
68: * 日期: 05/3/4
69: * 说明: 定时时间: 0.05秒
70: *******************************************************************************************/
71: void Init_Tmr1(void){
72: T1CON = 0x20; //分频比1:4
73: TMR1H = 0x78; //设定值定入TMR1
74: TMR1L = 0xff;
75: TMR1IF = 0; //清除TMR1溢出中断标志
76: TMR1ON = 1; //打开TMR1
77: }
78:
79: /******************************************************************************************
80: * 函数名称: unsigned short Hex_Bcd(unsigned short i)
81: * 功能: 将16进制数转换成BCD码
82: * 入口参数: i
83: * 出口参数:
84: * 全局变量: 无
85: * 调用模块: 无
86: * 设计者: 饶阳胜
87: * 日期: 05-4-4
88: ******************************************************************************************/
89: unsigned short Hex_Bcd(unsigned short i)
90: {
91: return ( i / 1000 << 12 | (i % 1000) / 100 << 8 | (i % 100) / 10 << 4 | i % 10);
92: }
93:
94: /******************************************************************************************
95: * 函数名称: unsigned short Bcd_Hex(unsigned short i)
96: * 功能: 将BCD码转换成16进制数
97: * 入口参数: i
98: * 出口参数:
99: * 全局变量: 无
100: * 调用模块: 无
101: * 设计者: 饶阳胜
102: * 日期: 05-4-4
103: ******************************************************************************************/
104: unsigned short Bcd_Hex(unsigned short i)
105: {
106: return (i >> 12 & 0xf) * 1000 + (i >> 8 & 0xf) * 100 + (i >> 4 & 0xf) * 10 + (i & 0xf);
107: }
108:
109: /***************************************************************************************************
110: * 函数名称: void Delay(unsigned short i,unsigned short j)
111: * 功能: 实现不同时段的延时
112: * 入口参数: i,j 延时参数,值越大,时间越长
113: * 出口参数: 无
114: * 调用模块: 无
115: * 全局变量: 无
116: * 设计者: 饶阳胜
117: * 日期: 05-4-2
118: ***************************************************************************************************/
119: void Delay(unsigned short i,unsigned short j) //根据不同的参数,实现不同时段的延时
120: {
121: unsigned short k;
122:
123: for(; i > FALSE; i--){
124: k = j;
125: for(; k > FALSE; k--){
126: asm("nop");
127: asm("nop");
128: asm("nop");
129: asm("nop");
130: }
131: }
132: }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -