📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 10/14/2008 22:00:14 PAGE 1
C51 COMPILER V8.02, 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 /********************************************************
2 程序名称:LED3216点阵反白交替显示图片
3 简要说明:可显示分辨率为32*16的图片
4 P0口接上行线,P2口接下行线,P3口接扫描线
5 P3.0接左屏译码器使能端(CS1)
6 P3.1接右屏译码器使能端(CS2)
7 编 写:JiangX.net
8 ********************************************************/
9 #include<AT89X52.h>
10 #define uchar unsigned char //宏定义
11 #define hang1 P0 //上半屏行线
12 #define hang2 P2 //下半屏行线
13 #define lie P1 //扫描列线
14 #define CS1 P3_0 //接左屏译码器使能端,低电平使能
15 #define CS2 P3_1 //接右屏译码器使能端,低电平使能
16
17 /*****参数调整项*****/
18 #define light 150 //显示亮度调节,数值不可过大,以不感到屏幕闪烁为准
19
20 /*******************************
21 图片取模:纵向取模,字节倒序
22 图片大小:32*16
23 *******************************/
24 uchar code pic[]={
25 0x00,0x00,0x08,0xF8,0xF8,0x08,0x00,0x00,0xF0,0xF8,0xFC,0xFC,0xFC,0xFC,0xF8,0xF0,
26 0xF8,0xFC,0xFC,0xFC,0xFC,0xF8,0xF0,0x00,0xF8,0xF8,0x00,0x00,0x00,0xF8,0xF8,0x00,
27 0x00,0x00,0x10,0x1F,0x1F,0x10,0x00,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,
28 0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x0F,0x1F,0x18,0x18,0x18,0x1F,0x0F,0x00 //I LOVE YOU
29 };
30
31 /*****延时子程序*****/
32 void delay() //专门设置的延时程序用来改变扫描速度以方便调节亮度
33 {
34 1 uchar i;
35 1 for(i=0;i<light;i++);
36 1 }
37
38 /*****显示子程序*****/
39 void display1()
40 {
41 1 uchar i,j;
42 1 CS2=1; //关右屏
43 1 CS1=0; //开左屏
44 1 for(i=0;i<16;i++)
45 1 {
46 2 lie=i; //左屏列扫描信号输出
47 2 hang1=pic[i];
48 2 hang2=pic[i+32]; //行信号输出
49 2 delay();
50 2 hang1=0;
51 2 hang2=0;
52 2 }
53 1 CS1=1; //关左屏
54 1 CS2=0; //开右屏
55 1 for(j=0;j<16;j++)
C51 COMPILER V8.02 MAIN 10/14/2008 22:00:14 PAGE 2
56 1 {
57 2 lie=j<<4;; //右屏列扫描信号输出
58 2 hang1=pic[j+16];
59 2 hang2=pic[j+48]; //行信号输出
60 2 delay();
61 2 hang1=0;
62 2 hang2=0;
63 2 }
64 1 }
65
66 /*****反白显示相同内容*****/
67 void display2()
68 {
69 1 uchar i,j;
70 1 CS2=1; //关右屏
71 1 CS1=0; //开左屏
72 1 for(i=0;i<16;i++)
73 1 {
74 2 lie=i; //左屏列扫描信号输出
75 2 hang1=~pic[i];
76 2 hang2=~pic[i+32]; //取反、行信号输出
77 2 delay();
78 2 hang1=0;
79 2 hang2=0;
80 2 }
81 1 CS1=1; //关左屏
82 1 CS2=0; //开右屏
83 1 for(j=0;j<16;j++)
84 1 {
85 2 lie=j<<4;; //右屏列扫描信号输出
86 2 hang1=~pic[j+16];
87 2 hang2=~pic[j+48]; //取反、行信号输出
88 2 delay();
89 2 hang1=0;
90 2 hang2=0;
91 2 }
92 1 }
93
94 /*****主程序*****/
95 void main()
96 {
97 1 uchar i;
98 1 while(1)
99 1 {
100 2 for(i=0;i<80;i++)
101 2 {
102 3 display1();
103 3 }
104 2 for(i=0;i<80;i++)
105 2 {
106 3 display2();
107 3 }
108 2 }
109 1 }
110
111 /*****END*****/
112 /*****欢迎到作者博客交流:http://www.jiangx.net*****/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 180 ----
CONSTANT SIZE = 64 ----
C51 COMPILER V8.02 MAIN 10/14/2008 22:00:14 PAGE 3
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -