?? ymain.lst
字號:
C51 COMPILER V8.08 YMAIN 08/13/2007 11:03:18 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE YMAIN
OBJECT MODULE PLACED IN ymain.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ymain.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*8279鍵盤和 LED顯 示程序* /
2 /*此程序響應8279的鍵盤中斷,并根據按鍵來更新LED 顯示 */
3
4 #include<reg51.h>
5 #include<absacc.h>
6 #include<yh.h>
7
8 bit int_flag=0; /*中斷標志位*/
9 uchar key_value;/*中斷返回鍵值 */
10 uchar js;
11 /*共陰的七段數碼管譯碼0 1 2 3 4 5 6 7 8 9 a b c d e f*/
12 uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
13 uchar code sinbo[]={0x80,0x83,0x86,0x8D,0x90,0x96,0x99,0x9C,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,
14 0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,
15 0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,
16 0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
17 0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,
18 0xf1,0xef,0xee,0xec,0xeb,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xdf,0xdd,0xda,0xd8,0xd6,
19 0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,
20 0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x7c,
21 0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,
22 0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,
23 0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,
24 0x07,0x06,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
25 0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,
26 0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,
27 0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,
28 0x5b,0x60,0x63,0x66,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80};
29
30
31
32
33 ///////////////////////////////////////////////////////////////////////////////
34
35 //讀取鍵盤數據,返回當前被按下的鍵號
36 uchar keyin(void)
37 {
38 1 uchar i;
39 1 COM8279=0x40;
40 1 i=DAT8279;
41 1 i=i&0x3f; //取鍵盤數據低7位
42 1 return(i);
43 1 }
44
45
46 void main(void)
47 {
48 1 //////////////////////////////////////////////////////////////////////////////
49 1 //初始化單片機
51 1
52 1 delay(1000);
53 1 //////////////////////////////////////////////////////////////////////////////
54 1 //初始化8279
55 1 COM8279=0xd1;//1101 0001b 清除所有顯示
C51 COMPILER V8.08 YMAIN 08/13/2007 11:03:18 PAGE 2
56 1 do{ACC=COM8279;}
57 1 while(clflag==1); //清除起來比較慢,所以一條指令執行的時間不足以完成所有清除,故需等待
58 1 COM8279=0x00;
59 1 DA0832=0;
60 1 COM8255=0x80; //pa,pb以方式0工作,三個口都是輸出
61 1 COM8255=0x80;
62 1 COM8255=0x80;
63 1 IE=0x83; //開中斷
64 1 // IE=0x81;
65 1 TCON=0x01;
66 1 TMOD=0x00; //用定時器0,方式0
67 1 TH0=0x0F4;
68 1 TL0=0x010;
69 1 TR0=1;
70 1 //////////////////////////////////////////////////////////////////////////////
71 1
72 1 //大循環
73 1 while(1)
74 1 {
75 2 while(int_flag==0) /*等待中斷 */
76 2 {
77 3 //此處可填入后臺程序
78 3 }
79 2
80 2 int_flag=0;
81 2
82 2 //根據鍵值調用鍵盤響應函數
83 2 switch(key_value)
84 2 {
85 3 case 0x00:key0();break;
86 3 case 0x01:key1();break;
87 3 case 0x02:key2();break;
88 3 case 0x03:key3();break;
89 3 case 0x08:key4();break;
90 3 case 0x09:key5();break;
91 3
92 3 default:break;
93 3 }
94 2 }
95 1 }
96
97 //INT0的中斷服務函數
98 //INT0由8279在鍵盤按下時發出
99 //注意關鍵字interrupt
100 void int_int0() interrupt 0 using 0
101 {
102 1 //設置標志,告訴主循環中斷發生了
103 1 int_flag=1;
104 1 //讀取鍵值
105 1 key_value=keyin();
106 1 }
107
108
109 void DA_time0() interrupt 1 using 1
110 {
111 1
112 1 TR0=0;
113 1 TH0=0x0F4;
114 1 TL0=0x010;
115 1 //DA0832 5Hz 正弦波輸出
116 1 DA0832=sinbo[js];
117 1 js++;
C51 COMPILER V8.08 YMAIN 08/13/2007 11:03:18 PAGE 3
118 1 if(js==251)
119 1 js=0;
120 1
121 1 TR0=1;
122 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 198 ----
CONSTANT SIZE = 267 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -