?? main.lst
字號:
C51 COMPILER V8.05a MAIN 08/28/2007 12:41:23 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE sources\main.c BROWSE INCDIR(.\include) DEBUG OBJECTEXTEND PRINT(.\main.lst
-) OBJECT(main.obj)
line level source
1 //*************************************************************************************************
2 //*************************************************************************************************
3 //**<程序名>:點陣LCD顯示應用 **
4 //**<作者>:LastRitter **
5 //**<完成時間>:2007年8月26日 **
6 //**<聯系方式>:E-mail:superyongzhe@163.com;QQ:314665354。 **
7 //*************************************************************************************************
8 //*************************************************************************************************
9
10 //*************************************************************************************************
11 //* *
12 //* ******************************頭文件及宏定義************************** *
13 //* *
14 //*************************************************************************************************
15 #include "includes.h"
16
17
18 #define TIME1H 0x3C
19 #define TIME1L 0xB0 //定時器1溢出時間:50ms
20
21 #define SCANPORT P1
22
23
24 //*************************************************************************************************
25 //* *
26 //* ******************************全局變量************************************ *
27 //* *
28 //*************************************************************************************************
29
30 //unsigned char code uca_TEST[]={0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xF0,0xF0,0xF
-0,0xF0};
31 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
32 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<防抖動標志>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
33 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
34 bit b_KeyShock=0; //鍵盤防抖動標志位。
35 //當按鍵中斷產生時,首先判斷此位。
36 //0--執行鍵盤掃描及鍵碼處理程序;1--不執行。
37
38 bit b_KillShock=0; //防抖標志清除位:0--不清除;1--清除。
39
40 unsigned char uc_KillCount=0; //抖動標志清除計數,使用定時器1。
41
42
43 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
44 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<鍵盤掃描開啟標志>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
45 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
46 bit b_KeyScan=0; //0--不掃描;
47 //1--掃描。
48
49
50 //*************************************************************************************************
51 //* *
52 //* ********************************主函數****************************** *
53 //* *
C51 COMPILER V8.05a MAIN 08/28/2007 12:41:23 PAGE 2
54 //*************************************************************************************************
55
56
57 /*********************** main ************************/
58 void main(void)
59 {
60 1
61 1 vLCDInitialize();
62 1
63 1 vShowOneChin(0,0,uca_QING);
64 1 vShowOneChin(2,0,uca_SHU);
65 1 vShowOneChin(4,0,uca_RU);
66 1 vShowOneChin(6,0,uca_MAOHAO);
67 1
68 1 vShowGraph(2,60,32,4,uca_Pig);
69 1 vShowFrame();
70 1
71 1 SCANPORT=0x0F;
72 1
73 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<外部中斷0,用于開啟鍵盤掃描及鍵碼處理標志>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
74 1 IT0=1; // 中斷方式:下降沿。
75 1 EX0=1; // 開啟外部中斷。
76 1
77 1
78 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<定時器1,用于防抖動標志清除 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
79 1 TH1=TIME1H;
80 1 TL1=TIME1L;
81 1 TR1=1; //開啟定時器1
82 1 ET1=1; //開定時器1中斷
83 1
84 1 EA=1;
85 1
86 1 while(1)
87 1 {
88 2 if(b_KeyScan==1) //如果有按鍵按下,則進行按鍵掃描和鍵碼處理。
89 2 {
90 3 b_KeyScan=0;
91 3 vKeyProcess(ucKeyScan());
92 3 }
93 2 }
94 1 }
95
96
97
98 //*************************************************************************************************
99 //* *
100 //* ******************************外部中斷0,用于開啟鍵盤掃描及鍵碼處理****************** *
101 //* *
102 //*************************************************************************************************
103 void vINT0(void) interrupt 0
104 {
105 1 if(b_KeyShock==0)
106 1 {
107 2 b_KeyScan=1; //開啟鍵盤掃描標志。
108 2 b_KeyShock=1; //設置防抖動標志。
109 2 }
110 1 else b_KeyShock=0; //如果有抖動則不執行鍵掃描,恢復防抖動標志。
111 1
112 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<設置防抖動清除標志位 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
113 1 if(b_KeyShock==1)
114 1 b_KillShock=1; //如果防抖動標志位開啟則開啟防抖動標志清除位,
115 1 //300ms后清除防抖動標志。
C51 COMPILER V8.05a MAIN 08/28/2007 12:41:23 PAGE 3
116 1
117 1 }
118
119
120 //*************************************************************************************************
121 //* *
122 //* ****************定時器1中斷,用于計時功能和防抖動標志清除*************************** *
123 //* *
124 //*************************************************************************************************
125 void vTimer1(void) interrupt 3
126 {
127 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
128 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<防抖動標志清除>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
129 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
130 1 if(b_KillShock==1)
131 1 {
132 2 if(uc_KillCount==5) //當防抖動標志位為1時,計時300ms后清除抖動標志位。
133 2 {
134 3 b_KeyShock=0;
135 3 b_KillShock=0;
136 3 uc_KillCount=0;
137 3 }
138 2 else uc_KillCount++;
139 2 }
140 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
141 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<恢復定時器1溢出時間>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
142 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
143 1 TH1=TIME1H;
144 1 TL1=TIME1L;
145 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 161 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
IDATA SIZE = ---- ----
BIT SIZE = 3 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -