📄 sy8.lst
字号:
C51 COMPILER V7.20 SY8 08/10/2008 08:47:17 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE SY8
OBJECT MODULE PLACED IN sy8.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE sy8.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <c8051f000.h>
2 #define uchar unsigned char
3 #define uint unsigned int
4
5 sbit LCD_CS=P3^0; //片选接口 低电平有效
6 sbit LCD_RES=P3^1; //单片机复位接口 低电平有效
7 sbit LCD_A0=P3^2; //数据/命令选择位 低电平命令 高电平数据
8 sbit LCD_SCK=P3^3; //时钟信号口 上升沿触发
9 sbit LCD_DA=P3^4; //数据信号口
10
11 void delay(uint i);
12 void sysclk_init();
13 void port_init();
14
15 float flash_re(uchar x);
16 void flash_wr(uchar x,float dat);
17
18
19
20 void lcd_send_data(uchar dat);
21 void lcd_send_cmd(uchar dat);
22 void lcd_init();
23 void lcd_set_page(uchar dat);
24 void lcd_set_colume(uchar dat);
25 void lcd_clr();
26 void lcd_point(uchar x,uchar y);
27 void lcd_display_one_num(uchar wordx,uchar wordy,uchar *n);
28 void lcd_word(uchar wordx,uchar wordy,uchar *word);
29 void lcd_display_num(uchar x,uchar y,float num);
30
31
32 //-------------------------------------------------------
33 //汉字字模
34 //每个汉字16X16 x+16 page+1 y+16
35 //-------------------------------------------------------
36 uchar code jia[]={0x02,0x02,0x3A,0xAA,0xAA,0xBE,0xAA,0xAA,0xAA,0xBE,0xAA,0xAA,0x3A,0x02,0x02,0x00,
37 0x00,0x80,0x80,0x5F,0x40,0x20,0x10,0x0E,0x10,0x20,0x60,0xDF,0x40,0x00,0x00,0x00};
38 uchar code zhi[]={0x00,0x08,0x08,0x08,0x08,0x08,0x09,0x0A,0x0C,0x88,0x48,0x28,0x1C,0x08,0x00,0x00,
39 0x20,0x60,0x30,0x08,0x18,0x24,0x24,0x22,0x41,0x40,0x40,0x40,0x40,0x40,0x40,0x00};
40 uchar code ye[]={0x10,0x61,0x06,0xE0,0x18,0x84,0xE4,0x1C,0x84,0x65,0xBE,0x24,0xA4,0x64,0x04,0x00,
41 0x04,0x04,0xFF,0x00,0x01,0x00,0xFF,0x41,0x21,0x12,0x0C,0x1B,0x61,0xC0,0x40,0x00};
42 uchar code jing[]={0x00,0x00,0x00,0x00,0x7E,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x7E,0x00,0x00,0x00,0x00,
43 0x00,0x7F,0x25,0x25,0x25,0x25,0x7F,0x00,0x00,0x7F,0x25,0x25,0x25,0x25,0x7F,0x00};
44 uchar code shi[]={0x00,0x10,0x0C,0x04,0x4C,0xB4,0x94,0x05,0xF6,0x04,0x04,0x04,0x14,0x0C,0x04,0x00,
45 0x00,0x82,0x82,0x42,0x42,0x23,0x12,0x0A,0x07,0x0A,0x12,0xE2,0x42,0x02,0x02,0x00};
46 uchar code yan[]={0x02,0xFA,0x82,0x82,0xFE,0x80,0x40,0x60,0x58,0x46,0x48,0x50,0x20,0x20,0x20,0x00,
47 0x08,0x08,0x04,0x24,0x40,0x3F,0x22,0x2C,0x21,0x2E,0x20,0x30,0x2C,0x23,0x20,0x00};
48 uchar code meng[]={0x40,0x44,0x24,0x14,0xFF,0x94,0x64,0x40,0x24,0x14,0xFF,0x0C,0x34,0x64,0x24,0x00,
49 0x00,0x80,0x88,0x88,0x46,0x45,0x29,0x31,0x11,0x09,0x05,0x03,0x01,0x00,0x00,0x00};
50 uchar code face[]={0xE0,0x10,0x0C,0x24,0x22,0x21,0x21,0x81,0x01,0x21,0x21,0x22,0x24,0x0C,0x10,0xE0,
51 0x07,0x08,0x30,0x20,0x40,0x88,0x90,0x97,0x94,0x90,0x88,0x40,0x20,0x30,0x08,0x07};
52
53 uchar * code zichuan[]={jia,meng,zhi,ye,jing,shi,yan,face};
54
55 //--------------------------------------------------------
C51 COMPILER V7.20 SY8 08/10/2008 08:47:17 PAGE 2
56 //数字字模
57 //每个数字8X16 x+8 page+2 y+16
58 //--------------------------------------------------------
59 uchar code num0[]={0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00};
60 uchar code num1[]={0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00};
61 uchar code num2[]={0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00};
62 uchar code num3[]={0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00};
63 uchar code num4[]={0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00};
64 uchar code num5[]={0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00};
65 uchar code num6[]={0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00};
66 uchar code num7[]={0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00};
67 uchar code num8[]={0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00};
68 uchar code num9[]={0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00};
69 uchar code dian[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00};
70
71 uchar * code albnum[]={num0,num1,num2,num3,num4,num5,num6,num7,num8,num9,dian};
72
73
74
75 void main()
76 {
77 1 uchar i;
78 1 sysclk_init();
79 1 port_init();
80 1 lcd_init();
81 1 lcd_clr(); //清屏
82 1 lcd_display_num(0,0,flash_re(0));//显示 读取FLASH中的数据
83 1 for(i=0;i<8;i++) //显示 贾梦之液晶实验 和一个 笑脸
84 1 {
85 2 lcd_word(16*i,2,zichuan[i]);
86 2 }
87 1 for(i=0;i<11;i++)
88 1 {
89 2 lcd_display_one_num(8*i,4,albnum[i]);
90 2 }
91 1 lcd_display_num(0,6,3.657);
92 1 flash_wr(0,8.14); //向flash中写数据
93 1
94 1 for(;;);
95 1 }
96
97
98 //--------------------------------------------
99 //显示10-0之间的小数 有效数字4位
100 //每个数字宽8 高16 带小数点共宽5位 40列
101 //x:数字列位置(0-87) y:数组行(页)(1-8) num:显示的数字(10-0之间的浮点数)
102 //--------------------------------------------
103 void lcd_display_num(uchar x,uchar y,float num)
104 {
105 1 lcd_display_one_num(x,y,albnum[(uchar)(num)]);
106 1 x+=8;
107 1 lcd_display_one_num(x,y,albnum[10]); //显示小数点
108 1 x+=8;
109 1 lcd_display_one_num(x,y,albnum[((uint)(num*=10))%10]);
110 1 x+=8;
111 1 lcd_display_one_num(x,y,albnum[((uint)(num*=10))%10]);
112 1 x+=8;
113 1 lcd_display_one_num(x,y,albnum[((uint)(num*=10))%10]);
114 1 }
115
116 //--------------------------------------------
117 //显示1个阿拉伯数字
C51 COMPILER V7.20 SY8 08/10/2008 08:47:17 PAGE 3
118 //每个数字宽8 高16
119 //wordx:数字列位置(0-119) wordy:数组行(页)(1-8) num:显示的数字(10-0之间的浮点数)
120 //--------------------------------------------
121
122 void lcd_display_one_num(uchar wordx,uchar wordy,uchar *n)
123 {
124 1 uchar i;
125 1 lcd_set_page(wordy);
126 1 lcd_set_colume(wordx);
127 1 for(i=0;i<8;i++)
128 1 lcd_send_data(*(n+i));
129 1 lcd_set_page(wordy+1);
130 1 lcd_set_colume(wordx);
131 1 for(i=0;i<8;i++)
132 1 lcd_send_data(*(n+i+8));
133 1 }
134 void delay(uint i)
135 {
136 1 for(;i>0;i--);
137 1 }
138 void lcd_send_data(uchar dat)
139 {
140 1 uchar i;
141 1 LCD_CS=0; //片选选通
142 1 LCD_A0=1; //选择发送数据
143 1 LCD_SCK=1;
144 1 for(i=0;i<8;i++)
145 1 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -