📄 16×16 c52.lst
字号:
C51 COMPILER V8.05a 16×16_C52 11/29/2008 22:13:53 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE 16×16_C52
OBJECT MODULE PLACED IN 16×16 C52.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 16×16 C52.c OMF2 DEBUG
line level source
1 #include <AT89X52.H>
2 #include <intrins.h>
3 #define uint unsigned int
4 #define uchar unsigned char
5
6 #define BLKN 2 /*列存贮器数,表示8*8led组合的行数*/
7
8 sbit E1 =P3^4; //74HC154(18)-E1 为0开列(col)输出 显示允许控制信号端口
9 sbit ST_CP =P3^2; //74HC595(12)-ST_CP 上升沿--移位寄存器的数据进入数据存储寄存器 输出锁存器的时钟信号端口
10 sbit MR =P3^3; //74HC595(10)-MR 为0将移位寄存器的数据清0
11
12 void delay(unsigned int); //延时函数
13 uchar data dispram[32]; //显示缓存
14
15
16 uchar code bmp[][32]={ //字模表
17 //{
18 //0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//" "
19 //0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
20 //},
21 {
22 0x00,0x08,0x00,0x08,0xF8,0x0B,0x28,0x09,0x29,0x09,0x2E,0x09,0x2A,0x09,0xF8,0xFF,
23 0x28,0x09,0x2C,0x09,0x2B,0x09,0x2A,0x09,0xF8,0x0B,0x00,0x08,0x00,0x08,0x00,0x00,/*"单",2*/
24 },{
25 0x00,0x80,0x00,0x40,0x00,0x30,0xFE,0x0F,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,
26 0x10,0x01,0x1F,0x01,0x10,0x01,0x10,0xFF,0x10,0x00,0x18,0x00,0x10,0x00,0x00,0x00,/*"片",3*/
27 },{
28 0x08,0x04,0x08,0x03,0xC8,0x00,0xFF,0xFF,0x48,0x00,0x88,0x41,0x08,0x30,0x00,0x0C,
29 0xFE,0x03,0x02,0x00,0x02,0x00,0x02,0x00,0xFE,0x3F,0x00,0x40,0x00,0x78,0x00,0x00,/*"机",4*/
30 },{
31 0x40,0x00,0x20,0x00,0x10,0x00,0xEC,0x7F,0x07,0x40,0x0A,0x20,0x08,0x18,0x08,0x06,
32 0xF9,0x01,0x8A,0x10,0x8E,0x20,0x88,0x40,0x88,0x20,0xCC,0x1F,0x88,0x00,0x00,0x00,/*"仿",5*/
33 },{
34 0x00,0x10,0x04,0x90,0x04,0x90,0x04,0x50,0xF4,0x5F,0x54,0x35,0x5C,0x15,0x57,0x15,
35 0x54,0x15,0x54,0x35,0x54,0x55,0xF4,0x5F,0x04,0x90,0x06,0x90,0x04,0x10,0x00,0x00,/*"真",6*/
36 } };
37
38 void main( )
39 {
40 1 uchar num,cur,tmp,nums=sizeof(bmp)/32;
41 1 //num:当前显示的文字块指针
42 1 //cur:当前文字块的断码指针(bmp)
43 1 //tmp:临时变量
44 1 //nums:总文字块数
45 1 SCON = 0x00; //串口工作模式0;移位寄存器方式
46 1 TMOD = 0x01; //定时器T0工作方式1:16位方式
47 1 TR0 = 1; //T1
48 1 P1 = 0x3f; //
49 1 IE = 0x82; //中断允许设置
50 1
51 1
52 1
53 1 while (1)
54 1 {
55 2 delay(1000); //2种效果之间的停顿
C51 COMPILER V8.05a 16×16_C52 11/29/2008 22:13:53 PAGE 2
56 2 // for(tmp=0;tmp<1;tmp++) //让卷动效果只显示一次
57 2 {
58 3 //delay(2000); //延时2s 一条标语滚动一次前的延时时间
59 3 delay(100);
60 3 for(num=0;num<nums;num++)
61 3 {
62 4 for(cur=0;cur<32;cur++) //显示效果:卷帘出
63 4 {
64 5 dispram[cur]=bmp[num][cur];
65 5 if((cur % 2)==1)
66 5 delay(100);
67 5 }
68 4 delay(100);
69 4 }
70 3 }
71 2 delay(1000); //2种效果之间的停顿
72 2 // for(tmp=0;tmp<1;tmp++) //让卷动效果只显示一次
73 2 {
74 3 //delay(2000); //延时2s 一条标语滚动一次前的延时时间
75 3 delay(100);
76 3 for(num=0;num<nums;num++)
77 3 {
78 4 for(cur=31;cur<0xff;cur--)//显示效果:卷帘入 当cur为0时,再循环一次就为0xff
79 4 {
80 5 dispram[cur]=bmp[num][cur];
81 5 if((cur % 2)==0)
82 5 delay(100);
83 5 }
84 4 delay(100);
85 4 }
86 3 }
87 2 }
88 1 }
*** WARNING C280 IN LINE 40 OF 16×16 C52.C: 'tmp': unreferenced local variable
89
90
91 ///////延时函数
92 void delay(uint dt)
93 {
94 1 uchar bt;
95 1 for(;dt;dt--)
96 1 for(bt=0;bt<255;bt++);
97 1
98 1 }
99
100 //////////显示屏扫描(定时器T0中断)函数
101 void leddisplay(void) interrupt 1 using 1
102 {
103 1 static uchar col=0;
104 1
105 1 TH0 = 0xF8; //设定显示屏刷新率62.5帧/S
106 1 TL0 = 0x30;
107 1
108 1 MR=0; //清理行输出,将移位寄存器的数据清0
109 1 MR=1;
110 1
111 1 SBUF = dispram[col*2]; //送显示数据
112 1 while(TI==0); //等待发送完毕
113 1 T1 = 0;
114 1 SBUF = dispram[col*2+1]; //送显示数据
115 1 while(TI==0); //等待发送完毕
116 1 T1 = 0;
C51 COMPILER V8.05a 16×16_C52 11/29/2008 22:13:53 PAGE 3
117 1
118 1 E1 = 1; //消隐(关闭显示)
119 1
120 1 P1 = 0xF0; //行号端口清0 多余2行,但是去掉后不行
121 1 P1 = 0xF0; //行号端口清0
122 1
123 1
124 1 E1 = 0; //打开显示
125 1 ST_CP =1; //显示数据打入输出锁存器
126 1 ST_CP = 0; //锁存显示数据
127 1 P1 = col; //写入行号
128 1 col=(col+1)%16;
129 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 286 ----
CONSTANT SIZE = 160 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 33 4
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
EDATA SIZE = ---- ----
HDATA SIZE = ---- ----
XDATA CONST SIZE = ---- ----
FAR CONST SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -