📄 16-16.lst
字号:
C51 COMPILER V8.05a 16_16 11/29/2008 22:14:44 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE 16_16
OBJECT MODULE PLACED IN 16-16.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 16-16.c OMF2 DEBUG
line level source
1 #include <AT89X52.H>
2 #include <intrins.h> //要用到 _nop_()
3 #define uint unsigned int
4 #define uchar unsigned char
5
6 sbit E1 =P3^4; //74HC154(18)-E1 为0开列(col)输出 显示允许控制信号端口
7 sbit ST_CP =P3^2; //74HC595(12)-ST_CP 上升沿--移位寄存器的数据进入数据存储寄存器 输出锁存器的时钟信号端口
8 sbit MR =P3^3; //74HC595(10)-MR 为0将移位寄存器的数据清0
9
10
11 uchar code bmp[32*6]={ //字模表
12
13 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//" "
14 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
15
16 0x00,0x08,0x00,0x08,0xF8,0x0B,0x28,0x09,0x29,0x09,0x2E,0x09,0x2A,0x09,0xF8,0xFF,
17 0x28,0x09,0x2C,0x09,0x2B,0x09,0x2A,0x09,0xF8,0x0B,0x00,0x08,0x00,0x08,0x00,0x00,/*"单",2*/
18
19 0x00,0x80,0x00,0x40,0x00,0x30,0xFE,0x0F,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,
20 0x10,0x01,0x1F,0x01,0x10,0x01,0x10,0xFF,0x10,0x00,0x18,0x00,0x10,0x00,0x00,0x00,/*"片",3*/
21
22 0x08,0x04,0x08,0x03,0xC8,0x00,0xFF,0xFF,0x48,0x00,0x88,0x41,0x08,0x30,0x00,0x0C,
23 0xFE,0x03,0x02,0x00,0x02,0x00,0x02,0x00,0xFE,0x3F,0x00,0x40,0x00,0x78,0x00,0x00,/*"机",4*/
24
25 0x40,0x00,0x20,0x00,0x10,0x00,0xEC,0x7F,0x07,0x40,0x0A,0x20,0x08,0x18,0x08,0x06,
26 0xF9,0x01,0x8A,0x10,0x8E,0x20,0x88,0x40,0x88,0x20,0xCC,0x1F,0x88,0x00,0x00,0x00,/*"仿",5*/
27
28 0x00,0x10,0x04,0x90,0x04,0x90,0x04,0x50,0xF4,0x5F,0x54,0x35,0x5C,0x15,0x57,0x15,
29 0x54,0x15,0x54,0x35,0x54,0x55,0xF4,0x5F,0x04,0x90,0x06,0x90,0x04,0x10,0x00,0x00,/*"真",6*/
30 };
31
32 void delayXms(uchar ms);
33
34 void main()
35 {
36 1 uchar base=0; //在bmp地址中移动,从0 到 rows - 15,每次加2,实现移动效果
37 1 // uchar cur=0; //显示base位置以后的一个字符宽度,16列,每列16bit
38 1 uchar tmp=0; //临时变量
39 1 uchar rows=sizeof(bmp); //" ",单,片,机,仿,真共6个字符块,每个16*16,共rows=96列
40 1 uchar col=0; //列选线
41 1 SCON = 0x00; //串口工作模式0;移位寄存器方式
42 1
43 1 MR=1;
44 1 while(1)
45 1 {
46 2 for(base=0;base<=rows;base=base+2)
47 2 {
48 3 for(tmp=0;tmp<5;tmp++) //每个字块显示5次
49 3 {
50 4 for(col=0;col<16;col++)
51 4 {
52 5 E1=0; //开154移位 列
53 5 MR=0; //清理行输出,将移位寄存器的数据清0
54 5 MR=1;
55 5 ST_CP=0; //上升沿
C51 COMPILER V8.05a 16_16 11/29/2008 22:14:44 PAGE 2
56 5 ST_CP=1;
57 5 SBUF=bmp[base+col*2];
58 5 while(TI==0); //等待发送完毕
59 5 T1 = 0;
60 5
61 5 SBUF=bmp[base+col*2+1];
62 5 while(TI==0); //等待发送完毕
63 5 T1 = 0;
64 5
65 5
66 5 P1=col; //列控制
67 5 ST_CP=0; //上升沿
68 5 ST_CP=1;
69 5
70 5
71 5 delayXms(2); //显示2ms
72 5 }
73 4 }
74 3 }
75 2 }
76 1 }
77 void delayXms(uchar ms) // 延时毫秒@12M,ms最大值255
78 {
79 1 uchar i;
80 1 while(ms--)
81 1 for(i = 0; i < 124; i++);
82 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 167 ----
CONSTANT SIZE = 192 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
EDATA SIZE = ---- ----
HDATA SIZE = ---- ----
XDATA CONST SIZE = ---- ----
FAR CONST SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -