📄 main.lst
字号:
C51 COMPILER V7.08 MAIN 11/28/2006 01:12:13 PAGE 1
C51 COMPILER V7.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN Main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Main.c BROWSE DEBUG OBJECTEXTEND TABS(8)
line level source
1 // Khai bao cac file header
2 #include <AT89X52.H>
3 #include <Kit8051.h>
4
5 // Khai bao cac bien toan cuc
6 unsigned char code LED_code[] = {Number0,
7 Number1,
8 Number2,
9 Number3,
10 Number4,
11 Number5,
12 Number6,
13 Number7,
14 Number8,
15 Number9};
16 unsigned char stt=0;
17 // Khai bao cac ham
18 void Delay(unsigned int n);
19 void InitSystem(void);
20 void ScanMatrix(void);
21 void Display(unsigned char number);
22
23
24 // Dinh nghia cac ham
25 void Delay(unsigned int n)
26 {
27 1 unsigned int i,j;
28 1 for(i=0;i<n;i++)
29 1 for(j=0;j<100;j++);
30 1 }
31 void Display(unsigned char number)
32 {
33 1 // Hien thi so thu tu phim bam ra LED cuoi cung
34 1 LED = LED_code[number];
35 1 K4 = 0;
36 1 Delay(1);
37 1 K4 = 1;
38 1 }
39 void InitSystem(void)
40 {
41 1 // Cam LCD
42 1 LCD_E = 0;
43 1 // Cau hinh Timer0 o che do 16 bit
44 1 TMOD = 0x01;
45 1 // Cho phep ngat tran Timer 0
46 1 ET0 = 1;
47 1 EA = 1;
48 1 // Cho Timer 0 chay
49 1 TR0 = 1;
50 1 }
51 void Timer0Interrupt(void) interrupt TF0_VECTOR
52 {
53 1 // Dung Timer 0
54 1 TR0 = 0;
55 1 // Nap lai gia tri = 55536--> con 10000 clock nua la tran
C51 COMPILER V7.08 MAIN 11/28/2006 01:12:13 PAGE 2
56 1 TH0 = (unsigned char)(55536>>8);
57 1 TL0 = (unsigned char)(55536);
58 1 // Tiep tuc cho chay Timer 0
59 1 TR0 = 1;
60 1 Display(stt);
61 1 }
62 void ScanMatrix(void)
63 {
64 1 // Chuyen cac hang lam dau vao, cac cot lam dau ra muc thap
65 1 ROW_1 = 1;
66 1 ROW_2 = 1;
67 1 ROW_3 = 1;
68 1 COL_1 = 0;
69 1 COL_2 = 0;
70 1 COL_3 = 0;
71 1 // Kiem tra xem co phim bam?
72 1 if((!ROW_1)|(!ROW_2)|(!ROW_3))
73 1 {
74 2 // Chong rung phim
75 2 Delay(100);
76 2 // Kiem tra lai
77 2 // Neu la hang 1 co phim bam
78 2 if(!ROW_1)
79 2 {
80 3 // Chuyen cac cot lam dau vao
81 3 COL_1 = 1;
82 3 COL_2 = 1;
83 3 COL_3 = 1;
84 3 // Hang 1 lam dau ra muc thap
85 3 ROW_1 = 0;
86 3 // Kiem tra cac cot de xac dinh phim
87 3 if(!COL_1) stt = 1;
88 3 else if (!COL_2) stt = 2;
89 3 else if (!COL_3) stt = 3;
90 3 }
91 2 // Neu la hang 2 co phim bam
92 2 if(!ROW_2)
93 2 {
94 3 // Chuyen cac cot lam dau vao
95 3 COL_1 = 1;
96 3 COL_2 = 1;
97 3 COL_3 = 1;
98 3 // Hang 2 lam dau ra muc thap
99 3 ROW_2 = 0;
100 3 // Kiem tra cac cot de xac dinh phim
101 3 if(!COL_1) stt = 4;
102 3 else if (!COL_2) stt = 5;
103 3 else if (!COL_3) stt = 6;
104 3 }
105 2 // Neu la hang 3 co phim bam
106 2 if(!ROW_3)
107 2 {
108 3 // Chuyen cac cot lam dau vao
109 3 COL_1 = 1;
110 3 COL_2 = 1;
111 3 COL_3 = 1;
112 3 // Hang 3 lam dau ra muc thap
113 3 ROW_3 = 0;
114 3 // Kiem tra cac cot de xac dinh phim
115 3 if(!COL_1) stt = 7;
116 3 else if (!COL_2) stt = 8;
117 3 else if (!COL_3) stt = 9;
C51 COMPILER V7.08 MAIN 11/28/2006 01:12:13 PAGE 3
118 3 }
119 2 }
120 1 }
121 // Chuong trinh chinh
122 void main(void)
123 {
124 1 // Khoi tao he thong
125 1 InitSystem();
126 1 // Vong lap vo tan
127 1 while(1)
128 1 {
129 2 ScanMatrix();
130 2 }
131 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 256 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
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 + -