📄 dianzhen.lst
字号:
C51 COMPILER V7.06 DIANZHEN 08/20/2008 15:27:17 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE DIANZHEN
OBJECT MODULE PLACED IN DianZhen.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE DianZhen.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include"reg51.h"
2 #include"for51.h"
3
4 uchar start;
5 uchar CS_3_8_0, CS_3_8_1;
6
7 void SendData(uchar ddata);//向74HC595发送数据
8 void DisplayPic(uchar* Pic, uchar num);
9 void Delayms(uint ticks);
10
11 //图片数据
12 uchar code pic[] = {
13 /*-- 文字: 中 --*/
14 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
15 0x00,0x00,0xFC,0x08,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0x08,0xFC,0x08,0x00,0x00,
16 0x00,0x00,0x07,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x02,0x02,0x07,0x00,0x00,0x00,
17
18 /*-- 空格 --*/
19 //0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
20
21 /*-- 文字: 国 --*/
22 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
23 0x00,0xFE,0x02,0x0A,0x8A,0x8A,0x8A,0xFA,0x8A,0x8A,0x8A,0x0A,0x02,0xFE,0x00,0x00,
24 0x00,0xFF,0x40,0x48,0x48,0x48,0x48,0x4F,0x48,0x49,0x4E,0x48,0x40,0xFF,0x00,0x00,
25
26 /*-- 空格 --*/
27 //0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
28
29 /*-- 文字: 人 --*/
30 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
31 0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x3F,0xC2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
32 0x00,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x01,0x06,0x0C,0x18,0x30,0x60,0x20,0x00,
33
34 /*-- 空格 --*/
35 //0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
36
37 /*-- 文字: 民 --*/
38 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
39 0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0xF2,0x92,0x92,0x92,0x9E,0x80,0x80,0x00,0x00,
40 0x00,0x00,0xFF,0x40,0x20,0x10,0x00,0x00,0x03,0x0C,0x10,0x20,0x40,0xF0,0x00,0x00,
41
42 /*-- 空格 --*/
43 //0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
44
45 /*-- 文字: 解 --*/
46 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
47 0x08,0xF4,0x57,0x54,0xFC,0x54,0xF0,0x42,0xA2,0x1E,0x02,0xA2,0x62,0x3E,0x00,0x00,
48 0x80,0x7F,0x02,0x02,0x5F,0x82,0x7F,0x0A,0x09,0x09,0x09,0xFF,0x09,0x09,0x09,0x00,
49
50 /*-- 空格 --*/
51 //0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
52
53 /*-- 文字: 放 --*/
54 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
55 0x08,0x08,0xF8,0x49,0x4E,0xC8,0x88,0x40,0x38,0xCF,0x0A,0x08,0x88,0x78,0x08,0x00,
C51 COMPILER V7.06 DIANZHEN 08/20/2008 15:27:17 PAGE 2
56 0x40,0x30,0x0F,0x40,0x80,0x7F,0x00,0x40,0x20,0x10,0x0B,0x0E,0x31,0x60,0x20,0x00,
57
58 /*-- 空格 --*/
59 //0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
60
61 /*-- 文字: 军 --*/
62 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
63 0x00,0x18,0x26,0x22,0xA2,0x72,0x2E,0xAA,0x22,0x22,0x22,0x32,0x22,0x0A,0x06,0x00,
64 0x00,0x10,0x10,0x12,0x13,0x12,0x12,0xFF,0x12,0x12,0x12,0x13,0x12,0x18,0x10,0x00,
65
66 };
67
68
69 void main(void) {
70 1 while(1) {
71 2 start = 0;
72 2 DisplayPic(pic, 112);//显示pic1
73 2 Delayms(10);
74 2 }
75 1 }
76
77 /**************************************************
78 函数名称: 串行数据发送函数
79 参数含义: ddata - 字节显示数据
80 函数功能: 主机向从机发送一个字节串行数据
81 返 回 值: 无返回
82 **************************************************/
83 void SendData(uchar ddata) {
84 1 uchar count=0;
85 1 for(; count != 8; count++) {
86 2 SCK = 0;
87 2 if(ddata & 0x80)
88 2 MOSI=1; //发送数据
89 2 else
90 2 MOSI=0;
91 2 SCK = 1; //发送时钟
92 2 ddata <<= 1; //数据右移一位
93 2 }
94 1 SS = 0;
95 1 SS = 1; //锁存数据
96 1 SS = 0;
97 1 }
98
99 /**************************************************
100 函数名称: 延时函数
101 参数含义: 延长时间
102 函数功能: 延时
103 返 回 值: 无返回
104 **************************************************/
105 void Delayms(uint ticks) {
106 1 uchar i;
107 1 for(; ticks != 0; ticks--)
108 1 for(i = 100; i != 0; i--);
109 1 }
110
111
112 /**************************************************
113 函数名称: 图片显示函数
114 参数含义: start - 从哪一列开始显示
115 pic - 图片数据指针
116 num - 图片数组字节数
117 函数功能: 从某一列开始显示一副图片
C51 COMPILER V7.06 DIANZHEN 08/20/2008 15:27:17 PAGE 3
118 返 回 值: bool类型,正确显示返回TURE,异常返回FALSE
119 **************************************************/
120 void DisplayPic(uchar* Pic, uchar num) {
121 1 uchar temp_cs0, temp_cs1;
122 1 uchar i, j, k;
123 1 uchar tempdata;
124 1 for(i = 0; i < 32; i++) {//图片从最右边一列移动到最左边一列的显示代码
125 2 for(k = 0; k < 10; k++) {
126 3 if(i < 8) {//图片从最右边向左移动,所以最开始在最右边
127 4 CS_3_8_0 = 3;
128 4 CS_3_8_1 = (7 - i) % 8;
129 4 }
130 3 if(i >= 8 && i < 16) {//当向左移动到第二块范围
131 4 CS_3_8_0 = 2;
132 4 CS_3_8_1 = (7 - (i - 8)) % 8;
133 4 }
134 3 if(i >= 16 && i < 24) {//当向左移动到第三块范围
135 4 CS_3_8_0 = 1;
136 4 CS_3_8_1 = (7 - (i - 16)) % 8;
137 4 }
138 3 if(i >= 24 && i < 32) {//当向左移动到第四块范围
139 4 CS_3_8_0 = 0;
140 4 CS_3_8_1 = (7 - (i - 24)) % 8;
141 4 }
142 3
143 3 tempdata = start;//第一排起始数据偏移量
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -