📄 main.lst
字号:
C51 COMPILER V8.05a MAIN 11/06/2007 17:08:33 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\Target\main.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE sources\main.c BROWSE INCDIR(.\include) DEBUG OBJECTEXTEND PRINT(.\LST\main
-.lst) OBJECT(.\Target\main.obj)
line level source
1 //*************************************************************************************************
2 //*************************************************************************************************
3 //**<程 序 名>:俄罗斯方块游戏 **
4 //**<版本说明>:改进版v2.0,增加了游戏开始和结束提示,从而解决了方块不能随机产生的问题。 **
5 //**<完成时间>:2007年11月6日 **
6 //**<作 者>:LastRitter **
7 //**<联系方式>:E-mail:superyongzhe@163.com;QQ:314665354。 **
8 //*************************************************************************************************
9 //*************************************************************************************************
10
11 //*************************************************************************************************
12 //* *
13 //* ******************************头文件及宏定义************************** *
14 //* *
15 //*************************************************************************************************
16 #include "includes.h"
17
18
19 #define TIME1H 0x3C
20 #define TIME1L 0xB0 //定时器1溢出时间:50ms
21
22 #define SCANPORT P1
23
24 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
25 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<键盘扫描开启标志>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
26 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
27 unsigned char uc_KeyCode=0;
28
29 bit b_BlockDown=0;
30
31 //*************************************************************************************************
32 //* *
33 //* ********************************主函数****************************** *
34 //* *
35 //*************************************************************************************************
36 void main(void)
37 {
38 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<定时器1,用于方块定时下降 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
39 1 TH1=TIME1H;
40 1 TL1=TIME1L;
41 1 TR1=1; //开启定时器1
42 1 ET1=1; //开定时器1中断
43 1
44 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<外部中断0,用于开启键盘扫描及键码处理标志>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
45 1 IT0=1; // 中断方式:下降沿。
46 1 EX0=1; // 开启外部中断。
47 1 EA=1;
48 1
49 1
50 1 vLCDInitialize();
51 1
52 1 SCANPORT=0x0F;
53 1
54 1 vShowGraph(3,40,60,2,uca_GameStart);
C51 COMPILER V8.05a MAIN 11/06/2007 17:08:33 PAGE 2
55 1
56 1 while(1)
57 1 {
58 2 if(uc_KeyCode!=0) //如果有按键按下,则进行按键扫描和键码处理。
59 2 {
60 3 vKeyProcess(uc_KeyCode);
61 3 uc_KeyCode=0;
62 3 }
63 2 if(b_BlockDown) //方块定时下降。
64 2 {
65 3 b_BlockDown=0;
66 3 vBlockAction(ACTIONDOWN);
67 3 }
68 2 }
69 1 }
70
71
72
73 //*************************************************************************************************
74 //* *
75 //* ******************************外部中断0,用于开启键盘扫描及键码处理****************** *
76 //* *
77 //*************************************************************************************************
78 void vINT0(void) interrupt 0
79 {
80 1 unsigned char ucCount;
81 1
82 1 EX0=0;
83 1 for(ucCount=0;ucCount<10;ucCount++);
84 1 if(SCANPORT!=0x0F)
85 1 uc_KeyCode=SCANPORT&0x0F; //开启键盘扫描标志。
86 1 EX0=1;
87 1 }
88
89 //*************************************************************************************************
90 //* *
91 //* **************************定时器1中断,用于方块定时下降************************ *
92 //* *
93 //*************************************************************************************************
94 void vTimer1(void) interrupt 3
95 {
96 1 static unsigned char ucsDownCount=0;
97 1
98 1 if(b_GameStart)
99 1 {
100 2 if(ucsDownCount==100)
101 2 {
102 3 ucsDownCount=0;
103 3 b_BlockDown=1;
104 3 }
105 2 else
106 2 ucsDownCount++;
107 2 }
108 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<恢复定时器1溢出时间>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
109 1 TH1=TIME1H;
110 1 TL1=TIME1L;
111 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 136 ----
CONSTANT SIZE = ---- ----
C51 COMPILER V8.05a MAIN 11/06/2007 17:08:33 PAGE 3
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 + -