?? dianzhen.lst
字號:
C51 COMPILER V7.06 DIANZHEN 08/04/2008 15:26:32 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE DIANZHEN
OBJECT MODULE PLACED IN DianZhen.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE DianZhen.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include"reg51.h"
2 #include"for51.h"
3
4 typedef char bool;
5 #define TURE 1
6 #define FALSE 0
7
8 #define Length 31 //點陣長度
9
10 uchar x, y;//x表示8塊點陣中的哪一塊,y表示選中點陣的哪一列
11
12 void SendData(uchar ddata);
13 bool DisplayPic(uchar start, uchar* pic, uchar num); //向74HC595發送數據
14 void Delayms(uint ticks);
15
16 //圖片數據
17 /*-- 文字: 皇 --*/
18 /*-- 黑體12; 此字體下對應的點陣為:寬x高=16x16 --*/
19 uchar code Pic[] = {
20 0x00,0x00,0x7E,0x7E,0x56,0x57,0x57,0x56,0x56,0x56,0x56,0x7E,0x7E,0x00,0x00,0x00,
21 0x60,0x63,0x6B,0x6B,0x6B,0x6B,0x6B,0x7F,0x7F,0x6B,0x6B,0x6B,0x6B,0x63,0x60,0x00,
22 };
23
24 void main(void) {
25 1 while(1) {
26 2 DisplayPic(8, Pic, 32);//顯示pic1
27 2 Delayms(10);
28 2 }
29 1 }
30
31 /**************************************************
32 函數名稱: 串行數據發送函數
33 參數含義: ddata - 字節顯示數據
34 函數功能: 主機向從機發送一個字節串行數據
35 返 回 值: 無返回
36 **************************************************/
37 void SendData(uchar ddata) {
38 1 uchar count=0;
39 1 for(; count != 8; count++) {
40 2 SCK = 0;
41 2 if(ddata & 0x80)
42 2 MOSI=1; //發送數據
43 2 else
44 2 MOSI=0;
45 2 SCK = 1; //發送時鐘
46 2 ddata <<= 1; //數據右移一位
47 2 }
48 1 SS = 0;
49 1 SS = 1; //鎖存數據
50 1 SS = 0;
51 1 }
52
53 /**************************************************
54 函數名稱: 延時函數
55 參數含義: 延長時間
C51 COMPILER V7.06 DIANZHEN 08/04/2008 15:26:32 PAGE 2
56 函數功能: 延時
57 返 回 值: 無返回
58 **************************************************/
59 void Delayms(uint ticks) {
60 1 uchar i;
61 1 for(; ticks != 0; ticks--)
62 1 for(i = 100; i != 0; i--);
63 1 }
64
65
66 /**************************************************
67 函數名稱: 圖片顯示函數
68 參數含義: start - 從哪一列開始顯示
69 pic - 圖片數據指針
70 num - 圖片數組字節數
71 函數功能: 從某一列開始顯示一副圖片
72 返 回 值: bool類型,正確顯示返回TURE,異常返回FALSE
73 **************************************************/
74 bool DisplayPic(uchar start, uchar* pic, uchar num) {
75 1 uchar i;
76 1 uchar tempx, tempy;
77 1 if((Length - 8 + 1) < (start/2))//如果顯示長度不夠圖片顯示則出現異常返回FALSE
78 1 return FALSE;
79 1 x = start / 8;//選中哪一塊
80 1 y = start % 8;//選中那塊的哪一列
81 1 for(i = 0; i < num; i++) {
82 2 if(i < num/2) {//先掃描上一排
83 3 tempx = x;
84 3 tempy = y;
85 3 }
86 2 else {//掃描下一排
87 3 tempx = x + 4;
88 3 tempy = y;
89 3 }
90 2 if(tempy != y && tempy % 8 == 0) {//當此塊點陣掃描到最后一列,則換到下一塊
91 3 tempx++;
92 3 tempy = 0;
93 3 }
94 2 P0 &= 0xf0;//第幾塊點陣譯碼器
95 2 P0 |= 1;//關總顯示
96 2 SendData(pic[i]);//發送數據
97 2 P2 = tempy++;//第幾列譯碼器數據
98 2 P0 = tempx << 1;//第幾塊譯碼器數據
99 2 P0 &= 0xfe;//開塊譯碼器
100 2 Delayms(10);
101 2 }
102 1 return TURE;
103 1 }
104
105
106
107
108
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 202 ----
CONSTANT SIZE = 48 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 7
IDATA SIZE = ---- ----
C51 COMPILER V7.06 DIANZHEN 08/04/2008 15:26:32 PAGE 3
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 + -