📄 hardconfig.lst
字号:
C51 COMPILER V8.01 HARDCONFIG 10/14/2008 09:55:55 PAGE 1
C51 COMPILER V8.01, COMPILATION OF MODULE HARDCONFIG
OBJECT MODULE PLACED IN HardConfig.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE HardConfig.c ROM(SMALL) BROWSE MODP2 DEBUG OBJECTEXTEND
line level source
1 /********************************************************/
2 /*文件名: */
3 /*功能: */
4 /*编写: */
5 /*建立时间:
6 /*修改纪录: */
7 /********************************************************/
8 /*定时计数器均作为定时器使用,工作模式为1,不使用计数器,波特率发生器始终使用定时器2*/
9 #include <hardconfig.h>
10
11 #ifdef Timer1
12 Data16B data Timer1Value; //一定要定义在DATA区
13 #endif
14 #ifdef Timer0
Data16B data Timer0Value;
#endif
17 /*TimeMs: 定时时间,单位毫秒,返回的为定时器的值
18 注: 此程序只是本人以前为了设置时间方便而做,会增加代码的占用率
19 RAM一般不会占用*/
20 INT16U GetTimerValue(INT8U TimeMs)
21 {
22 1 #ifdef Fosc
23 1 return(0xffff-OnemsData*TimeMs);
24 1 #else
#error "没定义系统工作频率,检查hardconfig.h里第25行的Fosc配置"/*有很多地方的定义应加入检错,比如现在定义
-的双倍速等,
又比如以上计算时钟初值的地方,应加入超出正常值的检错。*/
#endif
28 1 }
29 //=======================================================
30 #ifdef Timer0
void Timer0Config(DataStr16B *TimerValueDt)
{
ET0 = 1;
TH0 = TimerValueDt->HighByte;
TL0 = TimerValueDt->LowByte;
}
#endif
38 //=======================================================
39 #ifdef Timer1
40 void Timer1Config(DataStr16B *TimerValueDt)
41 {
42 1 // 定时器1工作方式2 ,定时器2方式1
43 1 ET1 = 1;
44 1 TH1 = TimerValueDt->HighByte;
45 1 TL1 = TimerValueDt->LowByte;
46 1 }
47 #endif
48 //=======================================================
49 #ifdef Uart
50 /*
51 typedef enum
52 {
53 U19200Bps=1,
54 U9600Bps=2,
C51 COMPILER V8.01 HARDCONFIG 10/14/2008 09:55:55 PAGE 2
55 U4800Bps=3,
56 U2400Bps=4,
57 U1200Bps=5
58 }BpsSet;
59
60 BpsSet BandRate;*/
61 //#ifdef UartDouble
62 // #define SetUartDoubleOrNot() PCON = 0x80 //SMOD=1;
63 //#else
64 // #define SetUartDoubleOrNot() PCON = 0x00 //SMOD=1;
65 //#endif
66 void UartConfig()
67 {
68 1 Data16B UartOrgValue;
69 1 UartOrgValue.U16B= (0xffff-Fosc/UartBand/32*Double+1);
70 1 RCAP2H=UartOrgValue.Str16B.HighByte;
71 1 RCAP2L=UartOrgValue.Str16B.LowByte; //2400Bps,倍速 4800Bps
72 1 TH2=UartOrgValue.Str16B.HighByte;;
73 1 TL2=UartOrgValue.Str16B.LowByte;
74 1 // #ifdef UartDouble
75 1 // PCON = 0x80;
76 1 // #endif
77 1 EnableUart();
78 1 SetUartMode();
79 1 T2CON=0X34;
80 1
81 1 // StartTimer2();
82 1
83 1 }
84 void SendDataSub(uchar UartSData)
85 {
86 1 #if (VerifyBit==0)
87 1 SBUF= UartSData;
88 1 #elif(VerifyBit==1)
ACC=UartSData;
TB8=P;
SBUF=ACC;
#elif(VerifyBit==2)
ACC=UartSData;
TB8=~P;
SBUF=ACC;
#endif
98 1 }
99 /**/
100 uint RecDataSub()
101 {
102 1 Data16B UartRecRet;
103 1 UartRecRet.Str16B.HighByte= 0;
104 1 #if (VerifyBit==0)
105 1 UartRecRet.Str16B.LowByte= SBUF;
106 1 #elif(VerifyBit==1)
ACC=SBUF;
if(RB8!=P)
{
UartRecRet.Str16B.HighByte= 0X80;
}
UartRecRet.Str16B.LowByte= ACC;
#elif(VerifyBit==2)
ACC=SBUF;
if(RB8==P)
{
C51 COMPILER V8.01 HARDCONFIG 10/14/2008 09:55:55 PAGE 3
UartRecRet.Str16B.HighByte= 0X80;
}
UartRecRet.Str16B.LowByte= ACC;
#endif
121 1 return(UartRecRet.U16B);
122 1 }
123 #endif
124
125 void HardConfigSub()
126 {
127 1 /*定时器初始化*/
128 1 DisLedInit();
129 1 #ifdef Timer1
130 1 SetTimerMode();
131 1 Timer1Value.U16B= GetTimerValue(Timer1SetTime);
132 1 Timer1Config(&Timer1Value.Str16B);
133 1 StartTimer1();
134 1 EnableInterrupt();
135 1 #endif
136 1 #ifdef Uart
137 1 UartConfig();
138 1 #endif
139 1 /*串口初始化*/
140 1
141 1
142 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 113 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 4
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -