?? 四路搶答器.lst
字號:
C51 COMPILER V7.50 四路搶答芲 05/29/2007 20:06:31 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 四路搶答芲
OBJECT MODULE PLACED IN 四路搶答器.OBJ
COMPILER INVOKED BY: D:\實用工具\Keil\C51\BIN\C51.EXE 四路搶答器.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 sbit P2_0=P2^0;
3 sbit P2_2=P2^2;
4 unsigned char GroupNo;
5 unsigned char code Seg3code[5]={0x3f,0x06,0x5b,0x4f,0x66};//0到4的代碼
6
7 void delay(void)//延遲1毫秒
8 {
9 1 unsigned char i;
10 1 for(i=0;i<250;i++);
11 1 }
12
13 void ShowGroup(unsigned char n)//顯示出第幾組
14 {
15 1 P1=Seg3code[n];
16 1 }
17
18 unsigned char KeySweep(void)//鍵盤掃描,獲取組數
19 {
20 1 unsigned char temp,n=0;
21 1 if(P3!=0xff) //若有選手搶答
22 1 {
23 2 delay(); //延時消抖
24 2 if(P3!=0xff)
25 2 temp=~P3;
26 2 }
27 1 while(temp!=0)
28 1 {
29 2 temp=temp>>1;
30 2 n++;
31 2 }
32 1 return n; //返回組數
33 1 }
34
35 void timer0(void) interrupt 1
36 {
37 1 static unsigned j;
38 1 TH0=(65536-50000)/256;//裝載計數初值
39 1 TL0=(65536-50000)%256;
40 1 j++;
41 1 if(j%20==0)
42 1 {
43 2 EA=0;
44 2 }
45 1 P2_0=~P2^0;
46 1 }
47
48 void Time0(void)//定時器0初始化
49 {
50 1 TMOD=(TMOD&0xF0)|0x01;//定時器0方式1
51 1 TH0=(65536-50000)/256;//裝載計數初值
52 1 TL0=(65536-50000)%256;
53 1 ET0=1; //CPU開中斷
54 1 TR0=1; //啟動T/C0開始定時
55 1 }
C51 COMPILER V7.50 四路搶答芲 05/29/2007 20:06:31 PAGE 2
56
57 void main()
58 {
59 1 Time0();
60 1 while(1)
61 1 {
62 2 P3=0xff;
63 2 ShowGroup(0);
64 2 while(P3==0xff);
65 2 GroupNo=KeySweep();
66 2 ShowGroup(GroupNo);
67 2 EA=1;//CPU開中斷,進入中斷程序
68 2 while(P2_2==1);//若主持人無按鍵按下
69 2 delay(); //延時消抖
70 2 while(P2_2==1);
71 2 EA=0;//CPU關中斷
72 2 }
73 1 }
74
75
76
77
78
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 177 ----
CONSTANT SIZE = 5 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 ----
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 + -