📄 can
字号:
C51 COMPILER V8.02 二节点 03/11/2012 14:11:13 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 二节点
OBJECT MODULE PLACED IN 二节点.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 二节点.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 #include <intrins.h>
3 #include <can_def.h>
4 #define u8 unsigned char
5 #define u16 unsigned int
6 void CAN_init(void ); // 初始化CAN总线芯片
7 void CAN_TXD( void );//CAN发送子函数
8 void CAN_RXD(void);
9 void xsg(void);
10 void xswsd(void);
11 void CAN_yuan( void );
12 void Delay(uint delay_time);//延时子函数
13 unsigned char CYCLE; //定义周期 该数字X基准定时时间 如果是10 则周期是10 x 0.1ms
14 unsigned char PWM_ON ;//定义高电平时间
15 unsigned char PWM_Num;
16 sbit RST = P2^3; //芯片复位 0有效
17 sbit SCE = P2^0; //芯片使能 0有效
18 sbit D_C = P2^2; //模式选择 1写数据 0写指令
19 sbit DIN = P2^1; //串行数据线 数据类型---8位
20 sbit SCK = P2^4; //串行时钟线 上升沿有效
21 sbit p11=P1^1;
22 sbit p10=P1^0;
23 sbit p12=P1^2;
24 sbit p13=P1^3;
25 sbit p14=P1^4;
26 sbit p15=P1^5;
27
28 bit qh,qieh;
29
30 /////////////////////////////////////////////////////////////////////////////////////////////////////
31 u8 code Chinese_table[]=
32 {
33 /*-- 文字0: 温 --*/
34 /*-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=17x16 --*/
35
36 0x08,0x84,0x61,0x0E,0x00,0x7E,0x52,0x52,0x52,0x52,0x52,0x7E,0x00,0x00,0x00,0x00,
37 0x40,0x7F,0x80,0x02,0xFE,0x82,0x82,0xFE,0x82,0x82,0xFE,0x82,0x82,0xFE,0x02,0x00,
38
39 /*-- 文字1: 度 --*/
40 /*-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=17x16 --*/
41 0x00,0x00,0x3F,0x20,0x24,0x24,0x3F,0xA5,0x65,0x25,0x3F,0x24,0x24,0x24,0x20,0x00,
42 0x01,0x06,0xF8,0x01,0x01,0x42,0x62,0x54,0x48,0x48,0x54,0x64,0x42,0x03,0x02,0x00,
43 /*-- 文字2: 湿 --*/
44 /*-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=17x16 --*/
45 0x08,0x06,0x40,0x33,0x00,0x00,0x7C,0x54,0x55,0x54,0x55,0x54,0x7C,0x00,0x00,0x00,
46 0x10,0x10,0x7F,0x80,0x02,0x42,0x32,0x02,0xFE,0x02,0xFE,0x12,0x22,0x42,0x02,0x00,
47 /*-- 文字3: 度 --*/
48 /*-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=17x16 --*/
49 0x00,0x00,0x3F,0x20,0x24,0x24,0x3F,0xA5,0x65,0x25,0x3F,0x24,0x24,0x24,0x20,0x00,
50 0x01,0x06,0xF8,0x01,0x01,0x42,0x62,0x54,0x48,0x48,0x54,0x64,0x42,0x03,0x02,0x00,
51 /*-- 文字4: 光 --*/
52 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
53 0x00,0x02,0x42,0x22,0x3A,0x13,0x02,0xFE,0x02,0x03,0x0A,0x72,0x22,0x06,0x02,0x00,
54 0x00,0x01,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0xFC,0x02,0x02,0x02,0x02,0x1E,0x00,
55
C51 COMPILER V8.02 二节点 03/11/2012 14:11:13 PAGE 2
56 /*-- 文字5: 照 --*/
57 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
58 0x00,0x00,0x7F,0x44,0x44,0x7F,0x02,0x84,0x8B,0xF2,0x82,0x8A,0x86,0xFB,0x00,0x00,
59 0x02,0x06,0xDC,0x80,0x90,0xCC,0x06,0x00,0xF0,0x4C,0x46,0x40,0x50,0xEC,0x06,0x00,
60
61 /*-- 文字6: 等 --*/
62 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
63 0x09,0x11,0xE5,0x45,0x65,0x5D,0x45,0x1F,0xE5,0x45,0x65,0x5D,0x45,0x41,0x01,0x00,
64 0x00,0x20,0x20,0x20,0x20,0x30,0x2C,0x20,0x22,0x21,0xFE,0x20,0x20,0x20,0x00,0x00,
65
66 /*-- 文字7: 级 --*/
67 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
68 0x04,0x0C,0x35,0xC6,0x04,0x18,0x40,0x41,0x7E,0x41,0x42,0x4E,0x72,0x03,0x02,0x00,
69 0x08,0xC8,0x88,0x92,0x94,0x89,0x31,0xC2,0x02,0xC4,0x28,0x18,0x66,0x83,0x02,0x00,
70 /*-- 文字8: 为 --*/
71 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
72 0x00,0x08,0x08,0x48,0x28,0x38,0x08,0x0F,0xF9,0x08,0x08,0x08,0x08,0x1F,0x08,0x00,
73 0x00,0x00,0x02,0x04,0x08,0x10,0x60,0x80,0x00,0x88,0x64,0x02,0x04,0xF8,0x00,0x00,
74 /*-- 文字9: 已 --*/
75 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
76 0x00,0x00,0x47,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x7E,0x00,0x00,0x00,0x00,
77 0x00,0x00,0xFC,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x3C,0x08,0x00,
78
79 /*-- 文字10: 发 --*/
80 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
81 0x00,0x08,0x7C,0x08,0x08,0x0F,0xF9,0x09,0x09,0x49,0x29,0x38,0x08,0x08,0x08,0x00,
82 0x02,0x04,0x08,0x11,0xE1,0x82,0x62,0x14,0x08,0x14,0xE4,0x02,0x03,0x02,0x00,0x00,
83
84 /*-- 文字11: 送 --*/
85 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
86 0x02,0x82,0x63,0x00,0x02,0x12,0x92,0x72,0x1F,0x32,0xD2,0x12,0x12,0x02,0x00,0x00,
87 0x02,0x04,0xF8,0x04,0x02,0x12,0x22,0xC2,0x02,0x82,0x42,0x32,0x02,0x02,0x02,0x00
88 };
89 /* 数字 0~9 */
90 u8 code charater_table[]=
91 {
92 0x00,0x07,0x08,0x10,0x10,0x08,0x07,0x00,0x00,0xF0,0x08,0x04,0x04,0x08,0xF0,0x00,
93 0x00,0x08,0x08,0x1F,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0xFC,0x04,0x04,0x00,0x00,
94 0x00,0x0E,0x10,0x10,0x10,0x11,0x0E,0x00,0x00,0x0C,0x14,0x24,0x44,0x84,0x0C,0x00,
95 0x00,0x0C,0x10,0x11,0x11,0x12,0x0C,0x00,0x00,0x18,0x04,0x04,0x04,0x88,0x70,0x00,
96 0x00,0x00,0x03,0x04,0x08,0x1F,0x00,0x00,0x00,0xE0,0x20,0x24,0x24,0xFC,0x24,0x00,
97 0x00,0x1F,0x10,0x11,0x11,0x10,0x10,0x00,0x00,0x98,0x84,0x04,0x04,0x88,0x70,0x00,
98 0x00,0x07,0x08,0x11,0x11,0x18,0x00,0x00,0x00,0xF0,0x88,0x04,0x04,0x88,0x70,0x00,
99 0x00,0x1C,0x10,0x10,0x13,0x1C,0x10,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,
100 0x00,0x0E,0x11,0x10,0x10,0x11,0x0E,0x00,0x00,0x38,0x44,0x84,0x84,0x44,0x38,0x00,
101 0x00,0x07,0x08,0x10,0x10,0x08,0x07,0x00,0x00,0x00,0x8C,0x44,0x44,0x88,0xF0,0x00,
102 0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00,
103 0x18,0x10,0x10,0x1F,0x10,0x10,0x18,0x00,0x00,0x00,0x04,0xFC,0x04,0x00,0x00,0x00
104 };
105
106
107
108
109 ///////////////////////////////////////////////////////////////////////////////////////////////
110 ///////////////////////////////////////////////////////////////////////////////////////////////
111 //delay_1ms: 大约延时1ms
112 void delay_1ms(void)//1ms延时函数
113 {
114 1 u16 i;
115 1 for (i=0;i<500;i++)
116 1 {
117 2 ;
C51 COMPILER V8.02 二节点 03/11/2012 14:11:13 PAGE 3
118 2 }
119 1
120 1 }
121
122
123 ///////////////////////////////////////////////////////////// /////////////////////////////////
124 //////////////////////////////////////////////////////////////////////////////////////////////
125 //LCD_Write_Byte: 写数据或命令到LCD
126 //输入参数:u8 Data_or_Command:要写入的数据或命令;
127 // u8 D_or_C :1 写数据/ 0 写命令
128
129 void LCD_Write_Byte(u8 Data_or_Command,u8 D_or_C)
130 {
131 1 u8 i;
132 1 SCE=0;//选择芯片
133 1 D_C=D_or_C;// 数据? 命令?
134 1 for(i=0;i<8;i++)//写
135 1 {
136 2 if(0x80==(Data_or_Command&0x80))
137 2 {
138 3 DIN=1;
139 3 }
140 2 else
141 2 {
142 3 DIN=0;
143 3 }
144 2
145 2
146 2 Data_or_Command<<=1;//移位
147 2
148 2 //造个上升沿
149 2 SCK=0;
150 2 _nop_();
151 2 _nop_();
152 2 _nop_();
153 2 _nop_();
154 2
155 2 SCK=1;
156 2 }
157 1 //回复到安全状态 保险
158 1 D_C=1;
159 1 SCE=1;
160 1 DIN=1;
161 1 }
162 /////////////////////////////////////////////////////////////////////////////////////////
163 void LCD_Write_Byte2(u8 Data_or_Command,u8 D_or_C)
164 {
165 1 u8 i;
166 1 SCE=0;//选择芯片
167 1 D_C=D_or_C;// 数据? 命令?
168 1 for(i=0;i<8;i++)//写
169 1 {
170 2 if(0x01==(Data_or_Command&0x01))
171 2 {
172 3 DIN=1;
173 3 }
174 2 else
175 2 {
176 3 DIN=0;
177 3 }
178 2
179 2
C51 COMPILER V8.02 二节点 03/11/2012 14:11:13 PAGE 4
180 2 Data_or_Command>>=1;//移位
181 2
182 2 //造个上升沿
183 2 SCK=0;
184 2 _nop_();
185 2 _nop_();
186 2 _nop_();
187 2 _nop_();
188 2 SCK=1;
189 2 }
190 1 //回复到安全状态 保险
191 1 D_C=1;
192 1 SCE=1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -