📄 上卷帘显示郭少斌.lst
字号:
C51 COMPILER V9.00 上卷帘显示筥少盻 04/12/2010 10:14:19 PAGE 1
C51 COMPILER V9.00, COMPILATION OF MODULE 上卷帘显示筥少盻
OBJECT MODULE PLACED IN 上卷帘显示郭少斌.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 上卷帘显示郭少斌.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #define BLKN 2
3 #define uchar unsigned char
4 #define uint unsigned int
5 uchar i,j,k;
6 //uint i;
-
-
7 sbit G =P2^7;
8 sbit RCK=P2^6;
9 sbit SCLR=P2^5;
10 void delay(uchar x)
11 {
12 1 uchar a,b;
13 1 for(a=x;a>0;a--)
14 1 for(b=110;b>0;b--);
15 1 }
16 uchar code bmp[][32]=
17 {
18 {
19 0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x01,0x04,0xFF,0xFE,0x00,0x10,
20 0x1F,0xF8,0x10,0x10,0x10,0x10,0x1F,0xF0,0x09,0x20,0x11,0x18,0x65,0x08,0x02,0x00
21 },//景
22 {
23 0x01,0x00,0x01,0x08,0x7F,0xFC,0x01,0x00,0x3F,0xF8,0x02,0x00,0xFF,0xFE,0x04,0x40,
24 0x09,0x20,0x39,0x30,0xC5,0x4E,0x03,0x84,0x0D,0x60,0x11,0x10,0x05,0x00,0x02,0x00
25 },//泰
26 {
27 0x08,0x20,0x08,0x24,0xFF,0xFE,0x08,0x20,0x04,0x90,0x24,0xF8,0x25,0x00,0x26,0x40,
28 0x24,0x20,0x04,0x08,0x3F,0xFC,0x24,0x48,0x24,0x48,0x24,0x48,0xFF,0xFE,0x00,0x00
29 } //蓝
30 };
31 uchar data dispram[32]; //显示缓存
32 void main()
33 {
34 1
35 1
36 1 SCON=0x00; //串口工作模式0;移位寄存器方式
37 1 TMOD=0x01; //定时器T0工作方式1:16位方式
38 1 TR0=1; //启动定时器t0
39 1 P1=0x3f; //P1端口初值:允许接收、锁定、显示
40 1 IE=0x82;
41 1
42 1 while(1)
43 1 {
44 2 for(i=0;i<3;i++)
45 2 {
46 3 for(j=0;j<16;j++)
47 3 {
48 4 for(k=0;k<15;k++)
49 4 {
50 5 dispram[k*BLKN]=dispram[(k+1)*BLKN];
51 5 dispram[k*BLKN+1]=dispram[(k+1)*BLKN+1];
52 5
53 5 }
C51 COMPILER V9.00 上卷帘显示筥少盻 04/12/2010 10:14:19 PAGE 2
54 4 dispram[30]=~bmp[i][j*BLKN];
55 4 dispram[31]=~bmp[i][j*BLKN+1];
56 4 delay(100);
57 4 }
58 3
59 3 }
60 2 }
61 1
62 1 }
63 void leddisplay(void) interrupt 1 using 1
64 {
65 1 uchar i,j=BLKN; //设定显示屏刷新率62.5帧/s
66 1 TH0=0xfd;
67 1 TL0=0xf0;
68 1 i=P1; //读取当前显示的行列
69 1 i=++i&0x0f; /*行数自动加一,屏蔽高4位 ,注意P1.0,P1.1,P1.2,P1,3控制行的显示,
70 1 通过4线16线译码器,对16行进行控制*/
71 1 do
72 1 {
73 2 j--;
74 2 SBUF=dispram[i*BLKN+j]; //送显示数据,SBUF串行数据缓冲寄存器
75 2 while(!TI); /*串行发送停止位的开始时,由内部硬件使T11,向CPU发出中断请求
76 2 ,在中断服务程序中,必须用软件使其清0*/
77 2 TI=0;
78 2 }
79 1 while(j); //完成一行数据的发送
80 1 G=1; //消隐(关闭显示)
81 1 P1&=0xf0; //行号端口清0
82 1 RCK=1; //显示数据打入输出锁存器
83 1 P1|=i; //写入行号
84 1 RCK=0; //锁存显示数据
85 1 G=0; //打开显示
86 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 224 ----
CONSTANT SIZE = 96 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 35 ----
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 + -