📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 11/10/2007 23:09:45 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "reg915.h"
2 #include "system.h"
3 #include "LPC915_I2C.H"
4 #include "lcd412function.h"
5
6 //global value-----------------------------------------------------------------------------
7 unsigned int current_freq=800; //发射频率缓存
8 unsigned char value=0; //AD转换值
9 //bit data state=0;
10 bit data silence=0;
11 unsigned char data NumDcbLib[12][3]= //LCD表
12 {{6,5,6},//0- 0
13 {0,0,6},//1- 1
14 {4,7,2},//2- 2
15 {0,7,6},//3- 3
16 {2,2,6},//4- 4
17 {2,7,4},//5- 5
18 {6,7,4},//6- 6
19 {0,1,6},//7- 7
20 {6,7,6},//8- 8
21 {2,7,6},//9- 9
22 {0,0,0},//10- NULL
23 {6,3,0}//12- F
24 };
25 unsigned char data LCD_AllComsTemp[13]= //LCD显示缓存,初始值ON
26 {
27 0,0,0,
28 6,5,6,
29 6,1,6,//6,7,7,
30 0,0,0,//1,0,1,
31 0
32 };
33 //初始化---------------------------------------------------------------------------------
34 void system_init1()
35 {
36 1 P0M1 =0x34;
37 1 P0M2 =0x00;
38 1 P1M1 =0x2F;
39 1 P1M2 =0X1C;
40 1 power_on =0;
41 1 }
42 void FM_INIT()
43 {
44 1 ISendByte(0X00,0X20);
45 1 ISendByte(0X01,0X03);
46 1 ISendByte(0X02,0X00);
47 1 ISendByte(0X03,0X00);
48 1 }
49 //延时?clks-------------------------------------------------------------------------------
50 void delay(int clks)
51 {
52 1 int i;
53 1 for(i=0;i<clks;i++);
54 1 }
55 //延时?ms---------------------------------------------------------------------------------
C51 COMPILER V7.50 MAIN 11/10/2007 23:09:45 PAGE 2
56 void Delay_ms(int multiple)
57 {
58 1 int i=0,j=0;
59 1 for(j=0;j<multiple;j++)
60 1 {
61 2 for(i=0;i<700;i++);
62 2 }
63 1 }
64 //将频率转化为显示缓存---------------------------------------------------------------------
65 void recalculate_LcdAllComs()
66 {
67 1 char num=0;
68 1 value=AD1val();
69 1 if(current_freq >= 1000)
70 1 {
71 2 num = current_freq / 1000;
72 2 LCD_AllComsTemp[0] = NumDcbLib[num][0];
73 2 LCD_AllComsTemp[1] = NumDcbLib[num][1];
74 2 LCD_AllComsTemp[2] = NumDcbLib[num][2];
75 2
76 2 }
77 1 else
78 1 {
79 2 LCD_AllComsTemp[0] = NumDcbLib[10][0];
80 2 LCD_AllComsTemp[1] = NumDcbLib[10][1];
81 2 LCD_AllComsTemp[2] = NumDcbLib[10][2];
82 2 }
83 1
84 1 num = (current_freq % 1000) / 100;
85 1 LCD_AllComsTemp[3] = NumDcbLib[num][0];
86 1 LCD_AllComsTemp[4] = NumDcbLib[num][1];
87 1 LCD_AllComsTemp[5] = NumDcbLib[num][2];
88 1
89 1 num = (current_freq % 100) / 10;
90 1 LCD_AllComsTemp[6] = NumDcbLib[num][0];
91 1 LCD_AllComsTemp[7] = NumDcbLib[num][1];
92 1 LCD_AllComsTemp[8] = NumDcbLib[num][2]| 0x01;
93 1
94 1 num = current_freq % 10;
95 1 LCD_AllComsTemp[9] = NumDcbLib[num][0];//| 0x01;
96 1 LCD_AllComsTemp[10] = NumDcbLib[num][1];
97 1 LCD_AllComsTemp[11] = NumDcbLib[num][2]| 0x01;
98 1 if(value>VFULL)
99 1 {
100 2 LCD_AllComsTemp[9] |= 0x01;
101 2 LCD_AllComsTemp[12] = 0x07;
102 2 }
103 1 else if(value>VMIDDLE)
104 1 {
105 2 LCD_AllComsTemp[9] |= 0x01;
106 2 LCD_AllComsTemp[12] = 0x05;
107 2 }
108 1 else if(value>VEMPTY)
109 1 {
110 2 LCD_AllComsTemp[9] |= 0x01;
111 2 LCD_AllComsTemp[12] = 0x01;
112 2 }
113 1 else if(value>VL_ALARM)
114 1 {
115 2 LCD_AllComsTemp[12] = 0x01;
116 2 }
117 1 }
C51 COMPILER V7.50 MAIN 11/10/2007 23:09:45 PAGE 3
118 //发送显示缓存至LCD显示---------------------------------------------------------------------
119 void LCD_Refrush()
120 {
121 1 int i;
122 1 LCD_WriteStart();
123 1 LCD_Write(LCD_DATAWRITE,9,0x001); //传送写命令代码101和6位起始地址000000
124 1 for(i=0; i<LCD_SEGMENT_COUNT; i++ ) //传送显示数据
125 1 {
126 2 LCD_Write(LCD_AllComsTemp[i],LCD_DATA_BITS,0x01);
127 2 }
128 1 LCD_WriteEnd();
129 1 }
130 //FM发射模块静音开关------------------------------------------------------------------------
131 void FM_ON_OFF()
132 {
133 1 if(silence==1) //MUTE Disable
134 1 {
135 2 ISendByte(0X02,0X05);
136 2 silence=1;
137 2 }
138 1 if(silence==0) //MUTE Enable
139 1 {
140 2 ISendByte(0X02,0X0D);
141 2 silence=0;
142 2 }
143 1 }
144 //转换频率数据并写入发射模块-----------------------------------------------------------------
145 void FM_Changer()
146 {
147 1 unsigned char fre;
148 1 fre=(unsigned char)((current_freq)&(0x00ff));
149 1 ISendByte(0x00,fre);
150 1 fre=(unsigned char)((current_freq>>8)&(0x0007));
151 1 fre=(fre|0x78);
152 1 ISendByte(0x01,fre);
153 1 }
154 //按键判断及按键操作--------------------------------------------------------------------------
155 void key_process()
156 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -