1.0.0
This commit is contained in:
parent
95b346834e
commit
3600e931c4
76
Includes/com_send.h
Normal file
76
Includes/com_send.h
Normal file
@ -0,0 +1,76 @@
|
||||
#ifndef _com_send_H
|
||||
#define _com_send_H
|
||||
|
||||
#include "public.h"
|
||||
|
||||
typedef unsigned char BYTE;
|
||||
typedef unsigned int WORD;
|
||||
|
||||
#define FOSC 11059200L //System frequency
|
||||
#define BAUD 9600 //UART baudrate
|
||||
|
||||
bit busy;
|
||||
|
||||
sfr T2CON = 0xC8;
|
||||
sfr RCAP2L = 0xCA;
|
||||
sfr RCAP2H = 0xCB;
|
||||
sfr TL2 = 0xCC;
|
||||
sfr TH2 = 0xCD;
|
||||
|
||||
void send_init();
|
||||
void send_data(BYTE dat);
|
||||
void send_string(char *s);
|
||||
|
||||
void send_init()
|
||||
{
|
||||
SCON = 0x50;
|
||||
TL2 = RCAP2L = (65536-(FOSC/32/BAUD)); //Set auto-reload vaule
|
||||
TH2 = RCAP2H = (65536-(FOSC/32/BAUD)) >> 8;
|
||||
T2CON = 0x34; //Timer2 start run
|
||||
ES = 1; //Enable UART interrupt
|
||||
EA = 1; //Open master interrupt switch
|
||||
}
|
||||
|
||||
/*----------------------------
|
||||
UART interrupt service routine
|
||||
----------------------------*/
|
||||
void uart_isr() interrupt 4
|
||||
{
|
||||
if (RI)
|
||||
{
|
||||
RI = 0; //Clear receive interrupt flag
|
||||
}
|
||||
if (TI)
|
||||
{
|
||||
TI = 0; //Clear transmit interrupt flag
|
||||
busy = 0; //Clear transmit busy flag
|
||||
}
|
||||
}
|
||||
|
||||
/*----------------------------
|
||||
Send a byte data to UART
|
||||
Input: dat (data to be sent)
|
||||
Output:None
|
||||
----------------------------*/
|
||||
void send_data(BYTE dat)
|
||||
{
|
||||
while (busy); //Wait for the completion of the previous data is sent
|
||||
ACC = dat; //Calculate the even parity bit P (PSW.0)
|
||||
busy = 1;
|
||||
SBUF = ACC; //Send data to UART buffer
|
||||
}
|
||||
|
||||
/*----------------------------
|
||||
Send a string to UART
|
||||
Input: s (address of string)
|
||||
Output:None
|
||||
----------------------------*/
|
||||
void send_string(char *s)
|
||||
{
|
||||
while (*s) //Check the end of the string
|
||||
{
|
||||
send_data(*s++); //Send current char and increment string ptr
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
59
Includes/key.h
Normal file
59
Includes/key.h
Normal file
@ -0,0 +1,59 @@
|
||||
#ifndef _key_H
|
||||
#define _key_H
|
||||
|
||||
#include "public.h"
|
||||
|
||||
//定义独立按键控制脚
|
||||
sbit KEY1=P3^1;
|
||||
sbit KEY2=P3^0;
|
||||
sbit KEY3=P3^2;
|
||||
sbit KEY4=P3^3;
|
||||
|
||||
|
||||
//使用宏定义独立按键按下的键值
|
||||
#define KEY1_PRESS 1
|
||||
#define KEY2_PRESS 2
|
||||
#define KEY3_PRESS 3
|
||||
#define KEY4_PRESS 4
|
||||
#define KEY_UNPRESS 0
|
||||
|
||||
|
||||
u8 key_scan(u8 mode);
|
||||
|
||||
/*******************************************************************************
|
||||
* 函 数 名 : key_scan
|
||||
* 函数功能 : 检测独立按键是否按下,按下则返回对应键值
|
||||
* 输 入 : mode=0:单次扫描按键
|
||||
mode=1:连续扫描按键
|
||||
* 输 出 : KEY1_PRESS:K1按下
|
||||
KEY2_PRESS:K2按下
|
||||
KEY3_PRESS:K3按下
|
||||
KEY4_PRESS:K4按下
|
||||
KEY_UNPRESS:未有按键按下
|
||||
*******************************************************************************/
|
||||
u8 key_scan(u8 mode)
|
||||
{
|
||||
static u8 key=1;
|
||||
|
||||
if(mode)key=1;//连续扫描按键
|
||||
if(key==1&&(KEY1==0||KEY2==0||KEY3==0||KEY4==0))//任意按键按下
|
||||
{
|
||||
delay_10us(1000);//消抖
|
||||
key=0;
|
||||
if(KEY1==0)
|
||||
return KEY1_PRESS;
|
||||
else if(KEY2==0)
|
||||
return KEY2_PRESS;
|
||||
else if(KEY3==0)
|
||||
return KEY3_PRESS;
|
||||
else if(KEY4==0)
|
||||
return KEY4_PRESS;
|
||||
}
|
||||
else if(KEY1==1&&KEY2==1&&KEY3==1&&KEY4==1) //无按键按下
|
||||
{
|
||||
key=1;
|
||||
}
|
||||
return KEY_UNPRESS;
|
||||
}
|
||||
|
||||
#endif
|
39
Includes/public.h
Normal file
39
Includes/public.h
Normal file
@ -0,0 +1,39 @@
|
||||
#ifndef _public_H
|
||||
#define _public_H
|
||||
|
||||
#include "reg51.h"
|
||||
|
||||
typedef unsigned int u16; //对系统默认数据类型进行重定义
|
||||
typedef unsigned char u8;
|
||||
typedef unsigned long u32;
|
||||
|
||||
//函数声明
|
||||
void delay_10us(u16 ten_us);
|
||||
void delay_ms(u16 ms);
|
||||
|
||||
/*******************************************************************************
|
||||
* 函 数 名 : delay_10us
|
||||
* 函数功能 : 延时函数,ten_us=1时,大约延时10us
|
||||
* 输 入 : ten_us
|
||||
* 输 出 : 无
|
||||
*******************************************************************************/
|
||||
void delay_10us(u16 ten_us)
|
||||
{
|
||||
while(ten_us--);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* 函 数 名 : delay_ms
|
||||
* 函数功能 : ms延时函数,ms=1时,大约延时1ms
|
||||
* 输 入 : ms:ms延时时间
|
||||
* 输 出 : 无
|
||||
*******************************************************************************/
|
||||
void delay_ms(u16 ms)
|
||||
{
|
||||
u16 i,j;
|
||||
for(i=ms;i>0;i--)
|
||||
for(j=110;j>0;j--);
|
||||
}
|
||||
|
||||
|
||||
#endif
|
43
Includes/timer.h
Normal file
43
Includes/timer.h
Normal file
@ -0,0 +1,43 @@
|
||||
#ifndef _timer_H
|
||||
#define _timer_H
|
||||
|
||||
#include "public.h"
|
||||
|
||||
void timer0_init(u8 tmod, u8 th0, u8 tl0);
|
||||
void timer0_reset(u8 th0, u8 tl0);
|
||||
void timer1_init(u8 tmod, u8 th0, u8 tl0);
|
||||
void timer1_reset(u8 th0, u8 tl0);
|
||||
|
||||
void timer0_init(u8 tmod, u8 th0, u8 tl0)
|
||||
{
|
||||
TMOD=(TMOD&0xF0)|(tmod&0x0F);//选择为定时器0模式
|
||||
TH0=th0;
|
||||
TL0=tl0;
|
||||
ET0=1;//打开定时器0中断允许
|
||||
EA=1;//打开总中断
|
||||
TR0=1;
|
||||
}
|
||||
|
||||
void timer0_reset(u8 th0, u8 tl0)
|
||||
{
|
||||
TH0=th0;
|
||||
TL0=tl0;
|
||||
}
|
||||
|
||||
void timer1_init(u8 tmod, u8 th1, u8 tl1)
|
||||
{
|
||||
TMOD=(TMOD&0x0F)|(tmod&0xF0);//选择为定时器1模式
|
||||
TH1=th1;
|
||||
TL1=tl1;
|
||||
ET1=1;//打开定时器0中断允许
|
||||
EA=1;//打开总中断
|
||||
TR1=1;//打开定时器
|
||||
}
|
||||
|
||||
void timer1_reset(u8 th1, u8 tl1)
|
||||
{
|
||||
TH1=th1;
|
||||
TL1=tl1;
|
||||
}
|
||||
|
||||
#endif
|
263
Listings/main.lst
Normal file
263
Listings/main.lst
Normal file
@ -0,0 +1,263 @@
|
||||
C51 COMPILER V9.57.0.0 MAIN 06/14/2022 09:14:54 PAGE 1
|
||||
|
||||
|
||||
C51 COMPILER V9.57.0.0, COMPILATION OF MODULE MAIN
|
||||
OBJECT MODULE PLACED IN .\Objects\main.obj
|
||||
COMPILER INVOKED BY: C:\Keil_v5\C51\BIN\C51.EXE Main\main.c LARGE OPTIMIZE(8,SPEED) BROWSE INCDIR(.\Includes) DEBUG OBJE
|
||||
-CTEXTEND PRINT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj)
|
||||
|
||||
line level source
|
||||
|
||||
1 #include "public.h"
|
||||
2 #include "key.h"
|
||||
3 #include "stdio.h"
|
||||
4 #include "timer.h"
|
||||
5
|
||||
6 //定义74HC595控制管脚
|
||||
7 sbit SRCLK=P3^6; //移位寄存器时钟输入
|
||||
8 sbit RCLK=P3^5; //存储寄存器时钟输入
|
||||
9 sbit SER=P3^4; //串行数据输入
|
||||
10
|
||||
11 #define LEDDZ_COL_PORT P0 //点阵列控制端口
|
||||
12
|
||||
13 u8 death[8]={0x00,0x38,0x6e,0x7c,0x7c,0x6e,0x38,0x00};
|
||||
14
|
||||
15 u8 gled_col[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED点阵显示图像的列数据
|
||||
16 u8 map[8] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
|
||||
17 u8 step[4][2] = {{1,0},{0,1},{-1,0},{0,-1}};
|
||||
18
|
||||
19
|
||||
20 u8 queue_x[65];
|
||||
21 u8 queue_y[65];
|
||||
22 u8 leader=0;
|
||||
23 u8 tail=0;
|
||||
24 u8 length=0;
|
||||
25
|
||||
26 u8 act=0;
|
||||
27 u8 game_over=0;
|
||||
28 u8 turn=0;
|
||||
29
|
||||
30 u8 direction=0;
|
||||
31 u8 head_x = 3;
|
||||
32 u8 head_y = 3;
|
||||
33
|
||||
34 u8 apple_x=4;
|
||||
35 u8 apple_y=4;
|
||||
36
|
||||
37 u8 timer = 0;
|
||||
38
|
||||
39 u8 i;
|
||||
40 u8 j;
|
||||
41 /*******************************************************************************
|
||||
42 * 函 数 名 : hc595_write_data(u8 dat)
|
||||
43 * 函数功能 : 向74HC595写入一个字节的数据
|
||||
44 * 输 入 : dat:数据
|
||||
45 * 输 出 : 无
|
||||
46 *******************************************************************************/
|
||||
47
|
||||
48 void display(u8 x, u8 y)
|
||||
49 {
|
||||
50 1 u8 one = 0x01;
|
||||
51 1 map[x] = map[x] + (one<<y);
|
||||
52 1 }
|
||||
53
|
||||
54 void del(u8 x, u8 y)
|
||||
C51 COMPILER V9.57.0.0 MAIN 06/14/2022 09:14:54 PAGE 2
|
||||
|
||||
55 {
|
||||
56 1 u8 one = 0x01;
|
||||
57 1 map[x] = map[x] - (one<<y);
|
||||
58 1 }
|
||||
59
|
||||
60 void push(u8 x, u8 y)
|
||||
61 {
|
||||
62 1 leader++;
|
||||
63 1 length++;
|
||||
64 1 leader %= 65;
|
||||
65 1 queue_x[leader] = x;
|
||||
66 1 queue_y[leader] = y;
|
||||
67 1 display(x,y);
|
||||
68 1 }
|
||||
69
|
||||
70 void pop()
|
||||
71 {
|
||||
72 1 u8 one = 0x01;
|
||||
73 1 tail++;
|
||||
74 1 length--;
|
||||
75 1 tail %= 65;
|
||||
76 1 del(queue_x[tail], queue_y[tail]);
|
||||
77 1 }
|
||||
78
|
||||
79
|
||||
80
|
||||
81 void hc595_write_data(u8 dat)
|
||||
82 {
|
||||
83 1 u8 i=0;
|
||||
84 1 for(i=0;i<8;i++)//循环8次即可将一个字节写入寄存器中
|
||||
85 1 {
|
||||
86 2 SER=dat>>7;//优先传输一个字节中的高位
|
||||
87 2 dat<<=1;//将低位移动到高位
|
||||
88 2 SRCLK=0;
|
||||
89 2 delay_10us(1);
|
||||
90 2 SRCLK=1;
|
||||
91 2 delay_10us(1);//移位寄存器时钟上升沿将端口数据送入寄存器中
|
||||
92 2 }
|
||||
93 1 RCLK=0;
|
||||
94 1 delay_10us(1);
|
||||
95 1 RCLK=1;//存储寄存器时钟上升沿将前面写入到寄存器的数据输出
|
||||
96 1 }
|
||||
97
|
||||
98 void show(u8 gled_row[8])
|
||||
99 {
|
||||
100 1 u8 i=0;
|
||||
101 1 for(i=0;i<8;i++)//循环8次扫描8行、列
|
||||
102 1 {
|
||||
103 2 LEDDZ_COL_PORT=gled_col[i];//传送列选数据
|
||||
104 2 hc595_write_data(gled_row[i]);//传送行选数据
|
||||
105 2 delay_10us(100);//延时一段时间,等待显示稳定
|
||||
106 2 hc595_write_data(0x00);//消影
|
||||
107 2 }
|
||||
108 1 }
|
||||
109
|
||||
110 void monitor_key()
|
||||
111 {
|
||||
112 1 u8 key=key_scan(0);
|
||||
113 1 if(key==KEY1_PRESS)
|
||||
114 1 {
|
||||
115 2 turn = 1;
|
||||
116 2 }
|
||||
C51 COMPILER V9.57.0.0 MAIN 06/14/2022 09:14:54 PAGE 3
|
||||
|
||||
117 1 else if(key==KEY2_PRESS)
|
||||
118 1 {
|
||||
119 2 turn = 3;
|
||||
120 2 }
|
||||
121 1 else if(key==KEY3_PRESS)
|
||||
122 1 {
|
||||
123 2
|
||||
124 2 }
|
||||
125 1 else if(key==KEY4_PRESS)
|
||||
126 1 {
|
||||
127 2
|
||||
128 2 }
|
||||
129 1 }
|
||||
130
|
||||
131 void timer0() interrupt 1
|
||||
132 {
|
||||
133 1 timer0_reset(0x4c,0x00);
|
||||
134 1 timer++;
|
||||
135 1 if(timer==15)
|
||||
136 1 {
|
||||
137 2 timer = 0;
|
||||
138 2 act=1;
|
||||
139 2 }
|
||||
140 1 }
|
||||
141
|
||||
142 void rand_apple()
|
||||
143 {
|
||||
144 1 u8 k;
|
||||
145 1 u8 rand=TL0%(64-length);
|
||||
146 1 u8 count = 0;
|
||||
147 1 u8 over = 0;
|
||||
148 1 for(i=0;i<8;i++)
|
||||
149 1 {
|
||||
150 2 for(j=0;j<8;j++)
|
||||
151 2 {
|
||||
152 3 k = tail;
|
||||
153 3 over = 0;
|
||||
154 3 while(k != leader){
|
||||
155 4 k = (k+1)%65;
|
||||
156 4 if(i == queue_x[k] && j == queue_y[k])
|
||||
157 4 {
|
||||
158 5 over = 1;
|
||||
159 5 }
|
||||
160 4 }
|
||||
161 3 if(over == 0)// over == 0 but not run rightly
|
||||
162 3 {
|
||||
163 4 if(count == rand)
|
||||
164 4 {
|
||||
165 5 apple_x = i;
|
||||
166 5 apple_y = j;
|
||||
167 5 return;
|
||||
168 5 }
|
||||
169 4 count++;
|
||||
170 4 }
|
||||
171 3 }
|
||||
172 2 }
|
||||
173 1 }
|
||||
174
|
||||
175 void main()
|
||||
176 {
|
||||
177 1 u8 i=0;
|
||||
178 1 timer0_init(0x01,0x4c,0x00);
|
||||
C51 COMPILER V9.57.0.0 MAIN 06/14/2022 09:14:54 PAGE 4
|
||||
|
||||
179 1 push(head_x,head_y);
|
||||
180 1 rand_apple();
|
||||
181 1 display(apple_x, apple_y);
|
||||
182 1 while(1)
|
||||
183 1 {
|
||||
184 2 monitor_key();
|
||||
185 2 if(act && game_over == 0){
|
||||
186 3 direction += turn;
|
||||
187 3 direction %= 4;
|
||||
188 3 head_x += step[direction][0];
|
||||
189 3 head_y += step[direction][1];
|
||||
190 3 if(head_x >=8 || head_x < 0 || head_y >= 8 || head_y < 0)
|
||||
191 3 {
|
||||
192 4 game_over = 1;
|
||||
193 4 }
|
||||
194 3
|
||||
195 3 i = tail;
|
||||
196 3 while(i != leader){
|
||||
197 4 i = (i+1)%65;
|
||||
198 4 if(head_x == queue_x[i] && head_y == queue_y[i])
|
||||
199 4 {
|
||||
200 5 game_over = 1;
|
||||
201 5 }
|
||||
202 4 }
|
||||
203 3
|
||||
204 3 if(game_over == 0)
|
||||
205 3 {
|
||||
206 4 if(head_x == apple_x && head_y == apple_y)
|
||||
207 4 {
|
||||
208 5 del(apple_x,apple_y);
|
||||
209 5 rand_apple();
|
||||
210 5 display(apple_x,apple_y);
|
||||
211 5 push(head_x,head_y);
|
||||
212 5 }
|
||||
213 4 else
|
||||
214 4 {
|
||||
215 5 push(head_x,head_y);
|
||||
216 5 pop();
|
||||
217 5 }
|
||||
218 4 }
|
||||
219 3 turn = 0;
|
||||
220 3 act = 0;
|
||||
221 3 }
|
||||
222 2 if(game_over)
|
||||
223 2 {
|
||||
224 3 show(death);
|
||||
225 3 }
|
||||
226 2 else
|
||||
227 2 {
|
||||
228 3 show(map);
|
||||
229 3 }
|
||||
230 2 }
|
||||
231 1 }
|
||||
|
||||
|
||||
MODULE INFORMATION: STATIC OVERLAYABLE
|
||||
CODE SIZE = 1063 ----
|
||||
CONSTANT SIZE = ---- ----
|
||||
XDATA SIZE = 177 7
|
||||
PDATA SIZE = ---- ----
|
||||
DATA SIZE = ---- ----
|
||||
IDATA SIZE = ---- ----
|
||||
C51 COMPILER V9.57.0.0 MAIN 06/14/2022 09:14:54 PAGE 5
|
||||
|
||||
BIT SIZE = ---- ----
|
||||
END OF MODULE INFORMATION.
|
||||
|
||||
|
||||
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|
534
Listings/snake.m51
Normal file
534
Listings/snake.m51
Normal file
@ -0,0 +1,534 @@
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 06/14/2022 09:14:54 PAGE 1
|
||||
|
||||
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY:
|
||||
C:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj TO .\Objects\snake PRINT (.\Listings\snake.m51) RAMSIZE (256)
|
||||
|
||||
|
||||
MEMORY MODEL: LARGE
|
||||
|
||||
|
||||
INPUT MODULES INCLUDED:
|
||||
.\Objects\main.obj (MAIN)
|
||||
C:\KEIL_V5\C51\LIB\C51L.LIB (?C_STARTUP)
|
||||
C:\KEIL_V5\C51\LIB\C51L.LIB (?C?CLDOPTR)
|
||||
C:\KEIL_V5\C51\LIB\C51L.LIB (?C?UIDIV)
|
||||
C:\KEIL_V5\C51\LIB\C51L.LIB (?C_INIT)
|
||||
|
||||
|
||||
LINK MAP OF MODULE: .\Objects\snake (MAIN)
|
||||
|
||||
|
||||
TYPE BASE LENGTH RELOCATION SEGMENT NAME
|
||||
-----------------------------------------------------
|
||||
|
||||
* * * * * * * D A T A M E M O R Y * * * * * * *
|
||||
REG 0000H 0008H ABSOLUTE "REG BANK 0"
|
||||
IDATA 0008H 0001H UNIT ?STACK
|
||||
|
||||
* * * * * * * X D A T A M E M O R Y * * * * * * *
|
||||
XDATA 0000H 00B1H UNIT ?XD?MAIN
|
||||
XDATA 00B1H 0005H UNIT _XDATA_GROUP_
|
||||
|
||||
* * * * * * * C O D E M E M O R Y * * * * * * *
|
||||
CODE 0000H 0003H ABSOLUTE
|
||||
CODE 0003H 0007H UNIT ?PR?_TIMER0_RESET?MAIN
|
||||
000AH 0001H *** GAP ***
|
||||
CODE 000BH 0003H ABSOLUTE
|
||||
CODE 000EH 0136H UNIT ?PR?MAIN?MAIN
|
||||
CODE 0144H 00A2H UNIT ?PR?RAND_APPLE?MAIN
|
||||
CODE 01E6H 008CH UNIT ?C_C51STARTUP
|
||||
CODE 0272H 0082H UNIT ?C?LIB_CODE
|
||||
CODE 02F4H 0061H UNIT ?C_INITSEG
|
||||
CODE 0355H 0056H UNIT ?PR?_KEY_SCAN?MAIN
|
||||
CODE 03ABH 0050H UNIT ?PR?_SHOW?MAIN
|
||||
CODE 03FBH 003DH UNIT ?PR?_PUSH?MAIN
|
||||
CODE 0438H 0039H UNIT ?PR?POP?MAIN
|
||||
CODE 0471H 0034H UNIT ?PR?TIMER0?MAIN
|
||||
CODE 04A5H 002AH UNIT ?PR?_HC595_WRITE_DATA?MAIN
|
||||
CODE 04CFH 0026H UNIT ?PR?_DEL?MAIN
|
||||
CODE 04F5H 0025H UNIT ?PR?_DISPLAY?MAIN
|
||||
CODE 051AH 001EH UNIT ?PR?_DELAY_MS?MAIN
|
||||
CODE 0538H 001BH UNIT ?PR?MONITOR_KEY?MAIN
|
||||
CODE 0553H 001AH UNIT ?PR?_TIMER0_INIT?MAIN
|
||||
CODE 056DH 001AH UNIT ?PR?_TIMER1_INIT?MAIN
|
||||
CODE 0587H 000FH UNIT ?PR?_DELAY_10US?MAIN
|
||||
CODE 0596H 0007H UNIT ?PR?_TIMER1_RESET?MAIN
|
||||
|
||||
|
||||
|
||||
OVERLAY MAP OF MODULE: .\Objects\snake (MAIN)
|
||||
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 06/14/2022 09:14:54 PAGE 2
|
||||
|
||||
|
||||
|
||||
SEGMENT XDATA_GROUP
|
||||
+--> CALLED SEGMENT START LENGTH
|
||||
--------------------------------------------------
|
||||
?PR?TIMER0?MAIN ----- -----
|
||||
+--> ?PR?_TIMER0_RESET?MAIN
|
||||
|
||||
*** NEW ROOT ***************************************************
|
||||
|
||||
?C_C51STARTUP ----- -----
|
||||
+--> ?PR?MAIN?MAIN
|
||||
+--> ?C_INITSEG
|
||||
|
||||
?PR?MAIN?MAIN 00B1H 0001H
|
||||
+--> ?PR?_TIMER0_INIT?MAIN
|
||||
+--> ?PR?_PUSH?MAIN
|
||||
+--> ?PR?RAND_APPLE?MAIN
|
||||
+--> ?PR?_DISPLAY?MAIN
|
||||
+--> ?PR?MONITOR_KEY?MAIN
|
||||
+--> ?PR?_DEL?MAIN
|
||||
+--> ?PR?POP?MAIN
|
||||
+--> ?PR?_SHOW?MAIN
|
||||
|
||||
?PR?_PUSH?MAIN ----- -----
|
||||
+--> ?PR?_DISPLAY?MAIN
|
||||
|
||||
?PR?RAND_APPLE?MAIN 00B2H 0001H
|
||||
|
||||
?PR?MONITOR_KEY?MAIN ----- -----
|
||||
+--> ?PR?_KEY_SCAN?MAIN
|
||||
|
||||
?PR?_KEY_SCAN?MAIN ----- -----
|
||||
+--> ?PR?_DELAY_10US?MAIN
|
||||
|
||||
?PR?POP?MAIN 00B2H 0001H
|
||||
+--> ?PR?_DEL?MAIN
|
||||
|
||||
?PR?_SHOW?MAIN 00B2H 0004H
|
||||
+--> ?PR?_HC595_WRITE_DATA?MAIN
|
||||
+--> ?PR?_DELAY_10US?MAIN
|
||||
|
||||
?PR?_HC595_WRITE_DATA?MAIN ----- -----
|
||||
+--> ?PR?_DELAY_10US?MAIN
|
||||
|
||||
|
||||
|
||||
SYMBOL TABLE OF MODULE: .\Objects\snake (MAIN)
|
||||
|
||||
VALUE TYPE NAME
|
||||
----------------------------------
|
||||
|
||||
------- MODULE MAIN
|
||||
C:0000H SYMBOL _ICE_DUMMY_
|
||||
D:0080H PUBLIC P0
|
||||
X:0001H PUBLIC queue_x
|
||||
B:00B0H.6 PUBLIC SRCLK
|
||||
X:0042H PUBLIC queue_y
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 06/14/2022 09:14:54 PAGE 3
|
||||
|
||||
|
||||
D:00B0H PUBLIC P3
|
||||
X:0083H PUBLIC length
|
||||
B:00A8H.7 PUBLIC EA
|
||||
X:0084H PUBLIC death
|
||||
B:00B0H.1 PUBLIC KEY1
|
||||
B:00B0H.0 PUBLIC KEY2
|
||||
C:0144H PUBLIC rand_apple
|
||||
B:00B0H.2 PUBLIC KEY3
|
||||
B:00B0H.3 PUBLIC KEY4
|
||||
X:008CH PUBLIC timer
|
||||
C:000EH PUBLIC main
|
||||
X:008DH PUBLIC tail
|
||||
B:00B0H.5 PUBLIC RCLK
|
||||
D:0089H PUBLIC TMOD
|
||||
C:04CFH PUBLIC _del
|
||||
C:0538H PUBLIC monitor_key
|
||||
X:008EH PUBLIC act
|
||||
X:008FH PUBLIC game_over
|
||||
C:058BH PUBLIC _delay_10us
|
||||
X:0090H PUBLIC step
|
||||
X:0098H PUBLIC gled_col
|
||||
X:00A0H PUBLIC map
|
||||
C:0405H PUBLIC _push
|
||||
C:03ABH PUBLIC _show
|
||||
X:00A8H PUBLIC direction
|
||||
B:00A8H.1 PUBLIC ET0
|
||||
B:00A8H.3 PUBLIC ET1
|
||||
X:00A9H PUBLIC turn
|
||||
D:008CH PUBLIC TH0
|
||||
D:008DH PUBLIC TH1
|
||||
C:0438H PUBLIC pop
|
||||
D:008AH PUBLIC TL0
|
||||
D:008BH PUBLIC TL1
|
||||
C:0355H PUBLIC _key_scan
|
||||
C:051AH PUBLIC _delay_ms
|
||||
C:0471H PUBLIC timer0
|
||||
B:0088H.4 PUBLIC TR0
|
||||
B:0088H.6 PUBLIC TR1
|
||||
C:0003H PUBLIC _timer0_reset
|
||||
C:0596H PUBLIC _timer1_reset
|
||||
X:00AAH PUBLIC i
|
||||
X:00ABH PUBLIC j
|
||||
B:00B0H.4 PUBLIC SER
|
||||
C:0553H PUBLIC _timer0_init
|
||||
X:00ACH PUBLIC head_x
|
||||
C:056DH PUBLIC _timer1_init
|
||||
X:00ADH PUBLIC apple_x
|
||||
X:00AEH PUBLIC head_y
|
||||
X:00AFH PUBLIC apple_y
|
||||
X:00B0H PUBLIC leader
|
||||
C:04FFH PUBLIC _display
|
||||
C:04A5H PUBLIC _hc595_write_data
|
||||
C:0587H SYMBOL L?0087
|
||||
------- PROC L?0086
|
||||
------- ENDPROC L?0086
|
||||
C:0587H SYMBOL L?0087
|
||||
------- PROC _DELAY_10US
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 06/14/2022 09:14:54 PAGE 4
|
||||
|
||||
|
||||
D:0006H SYMBOL ten_us
|
||||
C:058BH LINE# 20
|
||||
C:058BH LINE# 21
|
||||
C:058BH LINE# 22
|
||||
C:0595H LINE# 23
|
||||
------- ENDPROC _DELAY_10US
|
||||
------- PROC _DELAY_MS
|
||||
D:0006H SYMBOL ms
|
||||
------- DO
|
||||
D:0006H SYMBOL i
|
||||
D:0004H SYMBOL j
|
||||
------- ENDDO
|
||||
C:051AH LINE# 31
|
||||
C:051AH LINE# 32
|
||||
C:051AH LINE# 34
|
||||
C:0523H LINE# 35
|
||||
C:0537H LINE# 36
|
||||
------- ENDPROC _DELAY_MS
|
||||
------- PROC _KEY_SCAN
|
||||
D:0007H SYMBOL mode
|
||||
------- DO
|
||||
X:0000H SYMBOL key
|
||||
------- ENDDO
|
||||
C:0355H LINE# 34
|
||||
C:0355H LINE# 35
|
||||
C:0355H LINE# 38
|
||||
C:035EH LINE# 39
|
||||
C:0372H LINE# 40
|
||||
C:0372H LINE# 41
|
||||
C:0379H LINE# 42
|
||||
C:037EH LINE# 43
|
||||
C:0381H LINE# 44
|
||||
C:0384H LINE# 45
|
||||
C:0387H LINE# 46
|
||||
C:038AH LINE# 47
|
||||
C:038DH LINE# 48
|
||||
C:0390H LINE# 49
|
||||
C:0393H LINE# 50
|
||||
C:0396H LINE# 51
|
||||
C:0396H LINE# 52
|
||||
C:03A2H LINE# 53
|
||||
C:03A2H LINE# 54
|
||||
C:03A8H LINE# 55
|
||||
C:03A8H LINE# 56
|
||||
C:03AAH LINE# 57
|
||||
------- ENDPROC _KEY_SCAN
|
||||
------- PROC _TIMER0_INIT
|
||||
D:0007H SYMBOL tmod
|
||||
D:0005H SYMBOL th0
|
||||
D:0003H SYMBOL tl0
|
||||
C:0553H LINE# 11
|
||||
C:0553H LINE# 12
|
||||
C:0553H LINE# 13
|
||||
C:055EH LINE# 14
|
||||
C:0562H LINE# 15
|
||||
C:0566H LINE# 16
|
||||
C:0568H LINE# 17
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 06/14/2022 09:14:54 PAGE 5
|
||||
|
||||
|
||||
C:056AH LINE# 18
|
||||
C:056CH LINE# 19
|
||||
------- ENDPROC _TIMER0_INIT
|
||||
------- PROC _TIMER0_RESET
|
||||
D:0007H SYMBOL th0
|
||||
D:0005H SYMBOL tl0
|
||||
C:0003H LINE# 21
|
||||
C:0003H LINE# 22
|
||||
C:0003H LINE# 23
|
||||
C:0005H LINE# 24
|
||||
C:0009H LINE# 25
|
||||
------- ENDPROC _TIMER0_RESET
|
||||
------- PROC _TIMER1_INIT
|
||||
D:0007H SYMBOL tmod
|
||||
D:0005H SYMBOL th1
|
||||
D:0003H SYMBOL tl1
|
||||
C:056DH LINE# 27
|
||||
C:056DH LINE# 28
|
||||
C:056DH LINE# 29
|
||||
C:0578H LINE# 30
|
||||
C:057CH LINE# 31
|
||||
C:0580H LINE# 32
|
||||
C:0582H LINE# 33
|
||||
C:0584H LINE# 34
|
||||
C:0586H LINE# 35
|
||||
------- ENDPROC _TIMER1_INIT
|
||||
------- PROC _TIMER1_RESET
|
||||
D:0007H SYMBOL th1
|
||||
D:0005H SYMBOL tl1
|
||||
C:0596H LINE# 37
|
||||
C:0596H LINE# 38
|
||||
C:0596H LINE# 39
|
||||
C:0598H LINE# 40
|
||||
C:059CH LINE# 41
|
||||
------- ENDPROC _TIMER1_RESET
|
||||
------- PROC L?0085
|
||||
------- ENDPROC L?0085
|
||||
------- PROC _DISPLAY
|
||||
D:0007H SYMBOL x
|
||||
D:0005H SYMBOL y
|
||||
------- DO
|
||||
D:0006H SYMBOL one
|
||||
------- ENDDO
|
||||
C:04FFH LINE# 48
|
||||
C:04FFH LINE# 49
|
||||
C:04FFH LINE# 50
|
||||
C:0501H LINE# 51
|
||||
C:0519H LINE# 52
|
||||
------- ENDPROC _DISPLAY
|
||||
------- PROC _DEL
|
||||
D:0007H SYMBOL x
|
||||
D:0005H SYMBOL y
|
||||
------- DO
|
||||
D:0006H SYMBOL one
|
||||
------- ENDDO
|
||||
C:04CFH LINE# 54
|
||||
C:04CFH LINE# 55
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 06/14/2022 09:14:54 PAGE 6
|
||||
|
||||
|
||||
C:04CFH LINE# 56
|
||||
C:04D1H LINE# 57
|
||||
C:04F4H LINE# 58
|
||||
------- ENDPROC _DEL
|
||||
C:0400H SYMBOL L?0084
|
||||
------- PROC L?0083
|
||||
------- ENDPROC L?0083
|
||||
C:0400H SYMBOL L?0084
|
||||
------- PROC _PUSH
|
||||
D:0007H SYMBOL x
|
||||
D:0005H SYMBOL y
|
||||
C:0405H LINE# 60
|
||||
C:0405H LINE# 61
|
||||
C:0405H LINE# 62
|
||||
C:040BH LINE# 63
|
||||
C:0411H LINE# 64
|
||||
C:041CH LINE# 65
|
||||
C:0429H LINE# 66
|
||||
C:0435H LINE# 67
|
||||
------- ENDPROC _PUSH
|
||||
------- PROC POP
|
||||
------- DO
|
||||
X:00B2H SYMBOL one
|
||||
------- ENDDO
|
||||
C:0438H LINE# 70
|
||||
C:0438H LINE# 71
|
||||
C:0438H LINE# 72
|
||||
C:043EH LINE# 73
|
||||
C:0444H LINE# 74
|
||||
C:044AH LINE# 75
|
||||
C:0455H LINE# 76
|
||||
------- ENDPROC POP
|
||||
------- PROC _HC595_WRITE_DATA
|
||||
D:0005H SYMBOL dat
|
||||
------- DO
|
||||
D:0003H SYMBOL i
|
||||
------- ENDDO
|
||||
C:04A5H LINE# 81
|
||||
C:04A7H LINE# 82
|
||||
C:04A7H LINE# 83
|
||||
C:04A9H LINE# 84
|
||||
C:04A9H LINE# 85
|
||||
C:04A9H LINE# 86
|
||||
C:04B4H LINE# 87
|
||||
C:04B8H LINE# 88
|
||||
C:04BAH LINE# 89
|
||||
C:04BDH LINE# 90
|
||||
C:04BFH LINE# 91
|
||||
C:04C2H LINE# 92
|
||||
C:04C7H LINE# 93
|
||||
C:04C9H LINE# 94
|
||||
C:04CCH LINE# 95
|
||||
C:04CEH LINE# 96
|
||||
------- ENDPROC _HC595_WRITE_DATA
|
||||
------- PROC _SHOW
|
||||
X:00B2H SYMBOL gled_row
|
||||
------- DO
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 06/14/2022 09:14:54 PAGE 7
|
||||
|
||||
|
||||
X:00B5H SYMBOL i
|
||||
------- ENDDO
|
||||
C:03ABH LINE# 98
|
||||
C:03B6H LINE# 99
|
||||
C:03B6H LINE# 100
|
||||
C:03B9H LINE# 101
|
||||
C:03BAH LINE# 102
|
||||
C:03BAH LINE# 103
|
||||
C:03CBH LINE# 104
|
||||
C:03E2H LINE# 105
|
||||
C:03E9H LINE# 106
|
||||
C:03EEH LINE# 107
|
||||
C:03FAH LINE# 108
|
||||
------- ENDPROC _SHOW
|
||||
------- PROC MONITOR_KEY
|
||||
------- DO
|
||||
D:0007H SYMBOL key
|
||||
------- ENDDO
|
||||
C:0538H LINE# 110
|
||||
C:0538H LINE# 111
|
||||
C:0538H LINE# 112
|
||||
C:053DH LINE# 113
|
||||
C:0541H LINE# 114
|
||||
C:0541H LINE# 115
|
||||
C:0547H LINE# 116
|
||||
C:0548H LINE# 117
|
||||
C:054CH LINE# 118
|
||||
C:054CH LINE# 119
|
||||
C:0552H LINE# 120
|
||||
C:0552H LINE# 121
|
||||
C:0552H LINE# 122
|
||||
C:0552H LINE# 124
|
||||
C:0552H LINE# 125
|
||||
C:0552H LINE# 126
|
||||
C:0552H LINE# 128
|
||||
C:0552H LINE# 129
|
||||
------- ENDPROC MONITOR_KEY
|
||||
------- PROC TIMER0
|
||||
C:0471H LINE# 131
|
||||
C:0480H LINE# 133
|
||||
C:0487H LINE# 134
|
||||
C:048DH LINE# 135
|
||||
C:0491H LINE# 136
|
||||
C:0491H LINE# 137
|
||||
C:0493H LINE# 138
|
||||
C:0498H LINE# 139
|
||||
C:0498H LINE# 140
|
||||
------- ENDPROC TIMER0
|
||||
------- PROC RAND_APPLE
|
||||
------- DO
|
||||
D:0007H SYMBOL k
|
||||
X:00B2H SYMBOL rand
|
||||
D:0003H SYMBOL count
|
||||
D:0002H SYMBOL over
|
||||
------- ENDDO
|
||||
C:0144H LINE# 142
|
||||
C:0144H LINE# 143
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 06/14/2022 09:14:54 PAGE 8
|
||||
|
||||
|
||||
C:0144H LINE# 145
|
||||
C:0160H LINE# 146
|
||||
C:0162H LINE# 147
|
||||
C:0162H LINE# 148
|
||||
C:0166H LINE# 149
|
||||
C:0166H LINE# 150
|
||||
C:016BH LINE# 151
|
||||
C:016BH LINE# 152
|
||||
C:0170H LINE# 153
|
||||
C:0172H LINE# 154
|
||||
C:0179H LINE# 155
|
||||
C:0189H LINE# 156
|
||||
C:01AFH LINE# 157
|
||||
C:01AFH LINE# 158
|
||||
C:01B1H LINE# 159
|
||||
C:01B1H LINE# 160
|
||||
C:01B3H LINE# 161
|
||||
C:01B6H LINE# 162
|
||||
C:01B6H LINE# 163
|
||||
C:01BDH LINE# 164
|
||||
C:01BDH LINE# 165
|
||||
C:01C5H LINE# 166
|
||||
C:01CEH LINE# 168
|
||||
C:01CEH LINE# 169
|
||||
C:01CFH LINE# 170
|
||||
C:01CFH LINE# 171
|
||||
C:01DAH LINE# 172
|
||||
C:01E5H LINE# 173
|
||||
------- ENDPROC RAND_APPLE
|
||||
------- PROC MAIN
|
||||
------- DO
|
||||
X:00B1H SYMBOL i
|
||||
------- ENDDO
|
||||
C:000EH LINE# 175
|
||||
C:000EH LINE# 176
|
||||
C:000EH LINE# 177
|
||||
C:0013H LINE# 178
|
||||
C:001BH LINE# 179
|
||||
C:001EH LINE# 180
|
||||
C:0021H LINE# 181
|
||||
C:0024H LINE# 182
|
||||
C:0024H LINE# 183
|
||||
C:0024H LINE# 184
|
||||
C:0027H LINE# 185
|
||||
C:0037H LINE# 186
|
||||
C:0042H LINE# 187
|
||||
C:0046H LINE# 188
|
||||
C:005BH LINE# 189
|
||||
C:006FH LINE# 190
|
||||
C:008EH LINE# 191
|
||||
C:008EH LINE# 192
|
||||
C:0094H LINE# 193
|
||||
C:0094H LINE# 195
|
||||
C:009CH LINE# 196
|
||||
C:00A9H LINE# 197
|
||||
C:00B9H LINE# 198
|
||||
C:00E0H LINE# 199
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 06/14/2022 09:14:54 PAGE 9
|
||||
|
||||
|
||||
C:00E0H LINE# 200
|
||||
C:00E6H LINE# 201
|
||||
C:00E6H LINE# 202
|
||||
C:00E8H LINE# 204
|
||||
C:00EEH LINE# 205
|
||||
C:00EEH LINE# 206
|
||||
C:0107H LINE# 207
|
||||
C:0107H LINE# 208
|
||||
C:010AH LINE# 209
|
||||
C:010DH LINE# 210
|
||||
C:0110H LINE# 211
|
||||
C:0113H LINE# 212
|
||||
C:0115H LINE# 214
|
||||
C:0115H LINE# 215
|
||||
C:011AH LINE# 216
|
||||
C:011DH LINE# 217
|
||||
C:011DH LINE# 218
|
||||
C:011DH LINE# 219
|
||||
C:0122H LINE# 220
|
||||
C:0126H LINE# 221
|
||||
C:0126H LINE# 222
|
||||
C:012CH LINE# 223
|
||||
C:012CH LINE# 224
|
||||
C:0135H LINE# 225
|
||||
C:0138H LINE# 227
|
||||
C:0138H LINE# 228
|
||||
C:0141H LINE# 229
|
||||
C:0141H LINE# 230
|
||||
------- ENDPROC MAIN
|
||||
------- ENDMOD MAIN
|
||||
|
||||
------- MODULE ?C?CLDOPTR
|
||||
C:0272H PUBLIC ?C?CLDOPTR
|
||||
------- ENDMOD ?C?CLDOPTR
|
||||
|
||||
------- MODULE ?C?UIDIV
|
||||
C:029FH PUBLIC ?C?UIDIV
|
||||
------- ENDMOD ?C?UIDIV
|
||||
|
||||
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
|
||||
SEGMENT: ?PR?_DELAY_MS?MAIN
|
||||
|
||||
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
|
||||
SEGMENT: ?PR?_TIMER1_INIT?MAIN
|
||||
|
||||
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
|
||||
SEGMENT: ?PR?_TIMER1_RESET?MAIN
|
||||
|
||||
Program Size: data=9.0 xdata=182 code=1436
|
||||
LINK/LOCATE RUN COMPLETE. 3 WARNING(S), 0 ERROR(S)
|
231
Main/main.c
Normal file
231
Main/main.c
Normal file
@ -0,0 +1,231 @@
|
||||
#include "public.h"
|
||||
#include "key.h"
|
||||
#include "stdio.h"
|
||||
#include "timer.h"
|
||||
|
||||
//定义74HC595控制管脚
|
||||
sbit SRCLK=P3^6; //移位寄存器时钟输入
|
||||
sbit RCLK=P3^5; //存储寄存器时钟输入
|
||||
sbit SER=P3^4; //串行数据输入
|
||||
|
||||
#define LEDDZ_COL_PORT P0 //点阵列控制端口
|
||||
|
||||
u8 death[8]={0x00,0x38,0x6e,0x7c,0x7c,0x6e,0x38,0x00};
|
||||
|
||||
u8 gled_col[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED点阵显示图像的列数据
|
||||
u8 map[8] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
|
||||
u8 step[4][2] = {{1,0},{0,1},{-1,0},{0,-1}};
|
||||
|
||||
|
||||
u8 queue_x[65];
|
||||
u8 queue_y[65];
|
||||
u8 leader=0;
|
||||
u8 tail=0;
|
||||
u8 length=0;
|
||||
|
||||
u8 act=0;
|
||||
u8 game_over=0;
|
||||
u8 turn=0;
|
||||
|
||||
u8 direction=0;
|
||||
u8 head_x = 3;
|
||||
u8 head_y = 3;
|
||||
|
||||
u8 apple_x=4;
|
||||
u8 apple_y=4;
|
||||
|
||||
u8 timer = 0;
|
||||
|
||||
u8 i;
|
||||
u8 j;
|
||||
/*******************************************************************************
|
||||
* 函 数 名 : hc595_write_data(u8 dat)
|
||||
* 函数功能 : 向74HC595写入一个字节的数据
|
||||
* 输 入 : dat:数据
|
||||
* 输 出 : 无
|
||||
*******************************************************************************/
|
||||
|
||||
void display(u8 x, u8 y)
|
||||
{
|
||||
u8 one = 0x01;
|
||||
map[x] = map[x] + (one<<y);
|
||||
}
|
||||
|
||||
void del(u8 x, u8 y)
|
||||
{
|
||||
u8 one = 0x01;
|
||||
map[x] = map[x] - (one<<y);
|
||||
}
|
||||
|
||||
void push(u8 x, u8 y)
|
||||
{
|
||||
leader++;
|
||||
length++;
|
||||
leader %= 65;
|
||||
queue_x[leader] = x;
|
||||
queue_y[leader] = y;
|
||||
display(x,y);
|
||||
}
|
||||
|
||||
void pop()
|
||||
{
|
||||
u8 one = 0x01;
|
||||
tail++;
|
||||
length--;
|
||||
tail %= 65;
|
||||
del(queue_x[tail], queue_y[tail]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void hc595_write_data(u8 dat)
|
||||
{
|
||||
u8 i=0;
|
||||
for(i=0;i<8;i++)//循环8次即可将一个字节写入寄存器中
|
||||
{
|
||||
SER=dat>>7;//优先传输一个字节中的高位
|
||||
dat<<=1;//将低位移动到高位
|
||||
SRCLK=0;
|
||||
delay_10us(1);
|
||||
SRCLK=1;
|
||||
delay_10us(1);//移位寄存器时钟上升沿将端口数据送入寄存器中
|
||||
}
|
||||
RCLK=0;
|
||||
delay_10us(1);
|
||||
RCLK=1;//存储寄存器时钟上升沿将前面写入到寄存器的数据输出
|
||||
}
|
||||
|
||||
void show(u8 gled_row[8])
|
||||
{
|
||||
u8 i=0;
|
||||
for(i=0;i<8;i++)//循环8次扫描8行、列
|
||||
{
|
||||
LEDDZ_COL_PORT=gled_col[i];//传送列选数据
|
||||
hc595_write_data(gled_row[i]);//传送行选数据
|
||||
delay_10us(100);//延时一段时间,等待显示稳定
|
||||
hc595_write_data(0x00);//消影
|
||||
}
|
||||
}
|
||||
|
||||
void monitor_key()
|
||||
{
|
||||
u8 key=key_scan(0);
|
||||
if(key==KEY1_PRESS)
|
||||
{
|
||||
turn = 1;
|
||||
}
|
||||
else if(key==KEY2_PRESS)
|
||||
{
|
||||
turn = 3;
|
||||
}
|
||||
else if(key==KEY3_PRESS)
|
||||
{
|
||||
|
||||
}
|
||||
else if(key==KEY4_PRESS)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void timer0() interrupt 1
|
||||
{
|
||||
timer0_reset(0x4c,0x00);
|
||||
timer++;
|
||||
if(timer==15)
|
||||
{
|
||||
timer = 0;
|
||||
act=1;
|
||||
}
|
||||
}
|
||||
|
||||
void rand_apple()
|
||||
{
|
||||
u8 k;
|
||||
u8 rand=TL0%(64-length);
|
||||
u8 count = 0;
|
||||
u8 over = 0;
|
||||
for(i=0;i<8;i++)
|
||||
{
|
||||
for(j=0;j<8;j++)
|
||||
{
|
||||
k = tail;
|
||||
over = 0;
|
||||
while(k != leader){
|
||||
k = (k+1)%65;
|
||||
if(i == queue_x[k] && j == queue_y[k])
|
||||
{
|
||||
over = 1;
|
||||
}
|
||||
}
|
||||
if(over == 0)// over == 0 but not run rightly
|
||||
{
|
||||
if(count == rand)
|
||||
{
|
||||
apple_x = i;
|
||||
apple_y = j;
|
||||
return;
|
||||
}
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
u8 i=0;
|
||||
timer0_init(0x01,0x4c,0x00);
|
||||
push(head_x,head_y);
|
||||
rand_apple();
|
||||
display(apple_x, apple_y);
|
||||
while(1)
|
||||
{
|
||||
monitor_key();
|
||||
if(act && game_over == 0){
|
||||
direction += turn;
|
||||
direction %= 4;
|
||||
head_x += step[direction][0];
|
||||
head_y += step[direction][1];
|
||||
if(head_x >=8 || head_x < 0 || head_y >= 8 || head_y < 0)
|
||||
{
|
||||
game_over = 1;
|
||||
}
|
||||
|
||||
i = tail;
|
||||
while(i != leader){
|
||||
i = (i+1)%65;
|
||||
if(head_x == queue_x[i] && head_y == queue_y[i])
|
||||
{
|
||||
game_over = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if(game_over == 0)
|
||||
{
|
||||
if(head_x == apple_x && head_y == apple_y)
|
||||
{
|
||||
del(apple_x,apple_y);
|
||||
rand_apple();
|
||||
display(apple_x,apple_y);
|
||||
push(head_x,head_y);
|
||||
}
|
||||
else
|
||||
{
|
||||
push(head_x,head_y);
|
||||
pop();
|
||||
}
|
||||
}
|
||||
turn = 0;
|
||||
act = 0;
|
||||
}
|
||||
if(game_over)
|
||||
{
|
||||
show(death);
|
||||
}
|
||||
else
|
||||
{
|
||||
show(map);
|
||||
}
|
||||
}
|
||||
}
|
BIN
Objects/snake
Normal file
BIN
Objects/snake
Normal file
Binary file not shown.
43
Objects/snake.build_log.htm
Normal file
43
Objects/snake.build_log.htm
Normal file
@ -0,0 +1,43 @@
|
||||
<html>
|
||||
<body>
|
||||
<pre>
|
||||
<h1>µVision Build Log</h1>
|
||||
<h2>Tool Versions:</h2>
|
||||
IDE-Version: ¦ÌVision V5.24.2.86
|
||||
Copyright (C) 2017 ARM Ltd and ARM Germany GmbH. All rights reserved.
|
||||
License Information: leaf green, oair, LIC=3U39U-SKLG7-H1EPN-YJ8UA-X3RTS-RJMY6
|
||||
|
||||
Tool Versions:
|
||||
Toolchain: MDK51 Professional Version: 9.57.0.0
|
||||
Toolchain Path: C:\Keil_v5\C51\BIN
|
||||
C Compiler: C51.exe V9.57.0.0
|
||||
Assembler: A51.exe V8.2.7.0
|
||||
Linker/Locator: BL51.exe V6.22.2.0
|
||||
Library Manager: LIB51.exe V4.30.1.0
|
||||
Hex Converter: OH51.exe V2.7.0.0
|
||||
CPU DLL: S8051.DLL V3.113.0.0
|
||||
Dialog DLL: DP51.DLL V2.64.0.0
|
||||
Target DLL: MON51.DLL V2.47.0.0
|
||||
Dialog DLL: TP51.DLL V2.60.0.0
|
||||
|
||||
<h2>Project:</h2>
|
||||
C:\Users\Simular\Desktop\snake\snake.uvproj
|
||||
Project File Date: 06/13/2022
|
||||
|
||||
<h2>Output:</h2>
|
||||
Rebuild target 'Target 1'
|
||||
compiling main.c...
|
||||
linking...
|
||||
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
|
||||
SEGMENT: ?PR?_DELAY_MS?MAIN
|
||||
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
|
||||
SEGMENT: ?PR?_TIMER1_INIT?MAIN
|
||||
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
|
||||
SEGMENT: ?PR?_TIMER1_RESET?MAIN
|
||||
Program Size: data=9.0 xdata=182 code=1436
|
||||
creating hex file from ".\Objects\snake"...
|
||||
".\Objects\snake" - 0 Error(s), 3 Warning(s).
|
||||
Build Time Elapsed: 00:00:01
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
3
Objects/snake.lnp
Normal file
3
Objects/snake.lnp
Normal file
@ -0,0 +1,3 @@
|
||||
".\Objects\main.obj"
|
||||
TO ".\Objects\snake"
|
||||
PRINT(".\Listings\snake.m51") RAMSIZE(256)
|
1893
snake.uvgui.Simular
Normal file
1893
snake.uvgui.Simular
Normal file
File diff suppressed because one or more lines are too long
197
snake.uvopt
Normal file
197
snake.uvopt
Normal file
@ -0,0 +1,197 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_opt.xsd">
|
||||
|
||||
<SchemaVersion>1.0</SchemaVersion>
|
||||
|
||||
<Header>### uVision Project, (C) Keil Software</Header>
|
||||
|
||||
<Extensions>
|
||||
<cExt>*.c</cExt>
|
||||
<aExt>*.s*; *.src; *.a*</aExt>
|
||||
<oExt>*.obj; *.o</oExt>
|
||||
<lExt>*.lib</lExt>
|
||||
<tExt>*.txt; *.h; *.inc</tExt>
|
||||
<pExt>*.plm</pExt>
|
||||
<CppX>*.cpp</CppX>
|
||||
<nMigrate>0</nMigrate>
|
||||
</Extensions>
|
||||
|
||||
<DaveTm>
|
||||
<dwLowDateTime>0</dwLowDateTime>
|
||||
<dwHighDateTime>0</dwHighDateTime>
|
||||
</DaveTm>
|
||||
|
||||
<Target>
|
||||
<TargetName>Target 1</TargetName>
|
||||
<ToolsetNumber>0x0</ToolsetNumber>
|
||||
<ToolsetName>MCS-51</ToolsetName>
|
||||
<TargetOption>
|
||||
<CLK51>24000000</CLK51>
|
||||
<OPTTT>
|
||||
<gFlags>1</gFlags>
|
||||
<BeepAtEnd>1</BeepAtEnd>
|
||||
<RunSim>1</RunSim>
|
||||
<RunTarget>0</RunTarget>
|
||||
<RunAbUc>0</RunAbUc>
|
||||
</OPTTT>
|
||||
<OPTHX>
|
||||
<HexSelection>0</HexSelection>
|
||||
<FlashByte>65535</FlashByte>
|
||||
<HexRangeLowAddress>0</HexRangeLowAddress>
|
||||
<HexRangeHighAddress>0</HexRangeHighAddress>
|
||||
<HexOffset>0</HexOffset>
|
||||
</OPTHX>
|
||||
<OPTLEX>
|
||||
<PageWidth>120</PageWidth>
|
||||
<PageLength>65</PageLength>
|
||||
<TabStop>8</TabStop>
|
||||
<ListingPath>.\Listings\</ListingPath>
|
||||
</OPTLEX>
|
||||
<ListingPage>
|
||||
<CreateCListing>1</CreateCListing>
|
||||
<CreateAListing>1</CreateAListing>
|
||||
<CreateLListing>1</CreateLListing>
|
||||
<CreateIListing>0</CreateIListing>
|
||||
<AsmCond>1</AsmCond>
|
||||
<AsmSymb>1</AsmSymb>
|
||||
<AsmXref>0</AsmXref>
|
||||
<CCond>1</CCond>
|
||||
<CCode>0</CCode>
|
||||
<CListInc>0</CListInc>
|
||||
<CSymb>0</CSymb>
|
||||
<LinkerCodeListing>0</LinkerCodeListing>
|
||||
</ListingPage>
|
||||
<OPTXL>
|
||||
<LMap>1</LMap>
|
||||
<LComments>1</LComments>
|
||||
<LGenerateSymbols>1</LGenerateSymbols>
|
||||
<LLibSym>1</LLibSym>
|
||||
<LLines>1</LLines>
|
||||
<LLocSym>1</LLocSym>
|
||||
<LPubSym>1</LPubSym>
|
||||
<LXref>0</LXref>
|
||||
<LExpSel>0</LExpSel>
|
||||
</OPTXL>
|
||||
<OPTFL>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<IsCurrentTarget>1</IsCurrentTarget>
|
||||
</OPTFL>
|
||||
<CpuCode>255</CpuCode>
|
||||
<Books>
|
||||
<Book>
|
||||
<Number>0</Number>
|
||||
<Title>Data Sheet</Title>
|
||||
<Path>DATASHTS\ATMEL\AT89C52_DS.PDF</Path>
|
||||
</Book>
|
||||
<Book>
|
||||
<Number>1</Number>
|
||||
<Title>Instruction Set Manual</Title>
|
||||
<Path>DATASHTS\ATMEL\AT_C51ISM.PDF</Path>
|
||||
</Book>
|
||||
</Books>
|
||||
<DebugOpt>
|
||||
<uSim>0</uSim>
|
||||
<uTrg>1</uTrg>
|
||||
<sLdApp>1</sLdApp>
|
||||
<sGomain>1</sGomain>
|
||||
<sRbreak>1</sRbreak>
|
||||
<sRwatch>1</sRwatch>
|
||||
<sRmem>1</sRmem>
|
||||
<sRfunc>1</sRfunc>
|
||||
<sRbox>1</sRbox>
|
||||
<tLdApp>1</tLdApp>
|
||||
<tGomain>0</tGomain>
|
||||
<tRbreak>1</tRbreak>
|
||||
<tRwatch>1</tRwatch>
|
||||
<tRmem>1</tRmem>
|
||||
<tRfunc>0</tRfunc>
|
||||
<tRbox>1</tRbox>
|
||||
<tRtrace>1</tRtrace>
|
||||
<sRSysVw>1</sRSysVw>
|
||||
<tRSysVw>1</tRSysVw>
|
||||
<sRunDeb>0</sRunDeb>
|
||||
<sLrtime>0</sLrtime>
|
||||
<bEvRecOn>1</bEvRecOn>
|
||||
<bSchkAxf>0</bSchkAxf>
|
||||
<bTchkAxf>0</bTchkAxf>
|
||||
<nTsel>0</nTsel>
|
||||
<sDll></sDll>
|
||||
<sDllPa></sDllPa>
|
||||
<sDlgDll></sDlgDll>
|
||||
<sDlgPa></sDlgPa>
|
||||
<sIfile></sIfile>
|
||||
<tDll></tDll>
|
||||
<tDllPa></tDllPa>
|
||||
<tDlgDll></tDlgDll>
|
||||
<tDlgPa></tDlgPa>
|
||||
<tIfile></tIfile>
|
||||
<pMon>BIN\MON51.DLL</pMon>
|
||||
</DebugOpt>
|
||||
<Breakpoint/>
|
||||
<Tracepoint>
|
||||
<THDelay>0</THDelay>
|
||||
</Tracepoint>
|
||||
<DebugFlag>
|
||||
<trace>0</trace>
|
||||
<periodic>1</periodic>
|
||||
<aLwin>0</aLwin>
|
||||
<aCover>0</aCover>
|
||||
<aSer1>0</aSer1>
|
||||
<aSer2>0</aSer2>
|
||||
<aPa>0</aPa>
|
||||
<viewmode>0</viewmode>
|
||||
<vrSel>0</vrSel>
|
||||
<aSym>0</aSym>
|
||||
<aTbox>0</aTbox>
|
||||
<AscS1>0</AscS1>
|
||||
<AscS2>0</AscS2>
|
||||
<AscS3>0</AscS3>
|
||||
<aSer3>0</aSer3>
|
||||
<eProf>0</eProf>
|
||||
<aLa>0</aLa>
|
||||
<aPa1>0</aPa1>
|
||||
<AscS4>0</AscS4>
|
||||
<aSer4>0</aSer4>
|
||||
<StkLoc>0</StkLoc>
|
||||
<TrcWin>0</TrcWin>
|
||||
<newCpu>0</newCpu>
|
||||
<uProt>0</uProt>
|
||||
</DebugFlag>
|
||||
<LintExecutable></LintExecutable>
|
||||
<LintConfigFile></LintConfigFile>
|
||||
<bLintAuto>0</bLintAuto>
|
||||
<bAutoGenD>0</bAutoGenD>
|
||||
<LntExFlags>0</LntExFlags>
|
||||
<pMisraName></pMisraName>
|
||||
<pszMrule></pszMrule>
|
||||
<pSingCmds></pSingCmds>
|
||||
<pMultCmds></pMultCmds>
|
||||
<pMisraNamep></pMisraNamep>
|
||||
<pszMrulep></pszMrulep>
|
||||
<pSingCmdsp></pSingCmdsp>
|
||||
<pMultCmdsp></pMultCmdsp>
|
||||
</TargetOption>
|
||||
</Target>
|
||||
|
||||
<Group>
|
||||
<GroupName>Source Group 1</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>1</GroupNumber>
|
||||
<FileNumber>1</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>.\Main\main.c</PathWithFileName>
|
||||
<FilenameWithoutPath>main.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
</ProjectOpt>
|
378
snake.uvproj
Normal file
378
snake.uvproj
Normal file
@ -0,0 +1,378 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_proj.xsd">
|
||||
|
||||
<SchemaVersion>1.1</SchemaVersion>
|
||||
|
||||
<Header>### uVision Project, (C) Keil Software</Header>
|
||||
|
||||
<Targets>
|
||||
<Target>
|
||||
<TargetName>Target 1</TargetName>
|
||||
<ToolsetNumber>0x0</ToolsetNumber>
|
||||
<ToolsetName>MCS-51</ToolsetName>
|
||||
<uAC6>0</uAC6>
|
||||
<TargetOption>
|
||||
<TargetCommonOption>
|
||||
<Device>AT89C52</Device>
|
||||
<Vendor>Microchip</Vendor>
|
||||
<Cpu>IRAM(0-0xFF) IROM(0-0x1FFF) CLOCK(24000000)</Cpu>
|
||||
<FlashUtilSpec></FlashUtilSpec>
|
||||
<StartupFile>"LIB\STARTUP.A51" ("Standard 8051 Startup Code")</StartupFile>
|
||||
<FlashDriverDll></FlashDriverDll>
|
||||
<DeviceId>2980</DeviceId>
|
||||
<RegisterFile>REGX52.H</RegisterFile>
|
||||
<MemoryEnv></MemoryEnv>
|
||||
<Cmp></Cmp>
|
||||
<Asm></Asm>
|
||||
<Linker></Linker>
|
||||
<OHString></OHString>
|
||||
<InfinionOptionDll></InfinionOptionDll>
|
||||
<SLE66CMisc></SLE66CMisc>
|
||||
<SLE66AMisc></SLE66AMisc>
|
||||
<SLE66LinkerMisc></SLE66LinkerMisc>
|
||||
<SFDFile></SFDFile>
|
||||
<bCustSvd>0</bCustSvd>
|
||||
<UseEnv>0</UseEnv>
|
||||
<BinPath></BinPath>
|
||||
<IncludePath></IncludePath>
|
||||
<LibPath></LibPath>
|
||||
<RegisterFilePath>Atmel\</RegisterFilePath>
|
||||
<DBRegisterFilePath>Atmel\</DBRegisterFilePath>
|
||||
<TargetStatus>
|
||||
<Error>0</Error>
|
||||
<ExitCodeStop>0</ExitCodeStop>
|
||||
<ButtonStop>0</ButtonStop>
|
||||
<NotGenerated>0</NotGenerated>
|
||||
<InvalidFlash>1</InvalidFlash>
|
||||
</TargetStatus>
|
||||
<OutputDirectory>.\Objects\</OutputDirectory>
|
||||
<OutputName>snake</OutputName>
|
||||
<CreateExecutable>1</CreateExecutable>
|
||||
<CreateLib>0</CreateLib>
|
||||
<CreateHexFile>1</CreateHexFile>
|
||||
<DebugInformation>1</DebugInformation>
|
||||
<BrowseInformation>1</BrowseInformation>
|
||||
<ListingPath>.\Listings\</ListingPath>
|
||||
<HexFormatSelection>0</HexFormatSelection>
|
||||
<Merge32K>0</Merge32K>
|
||||
<CreateBatchFile>0</CreateBatchFile>
|
||||
<BeforeCompile>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopU1X>0</nStopU1X>
|
||||
<nStopU2X>0</nStopU2X>
|
||||
</BeforeCompile>
|
||||
<BeforeMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopB1X>0</nStopB1X>
|
||||
<nStopB2X>0</nStopB2X>
|
||||
</BeforeMake>
|
||||
<AfterMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopA1X>0</nStopA1X>
|
||||
<nStopA2X>0</nStopA2X>
|
||||
</AfterMake>
|
||||
<SelectedForBatchBuild>0</SelectedForBatchBuild>
|
||||
<SVCSIdString></SVCSIdString>
|
||||
</TargetCommonOption>
|
||||
<CommonProperty>
|
||||
<UseCPPCompiler>0</UseCPPCompiler>
|
||||
<RVCTCodeConst>0</RVCTCodeConst>
|
||||
<RVCTZI>0</RVCTZI>
|
||||
<RVCTOtherData>0</RVCTOtherData>
|
||||
<ModuleSelection>0</ModuleSelection>
|
||||
<IncludeInBuild>1</IncludeInBuild>
|
||||
<AlwaysBuild>0</AlwaysBuild>
|
||||
<GenerateAssemblyFile>0</GenerateAssemblyFile>
|
||||
<AssembleAssemblyFile>0</AssembleAssemblyFile>
|
||||
<PublicsOnly>0</PublicsOnly>
|
||||
<StopOnExitCode>3</StopOnExitCode>
|
||||
<CustomArgument></CustomArgument>
|
||||
<IncludeLibraryModules></IncludeLibraryModules>
|
||||
<ComprImg>1</ComprImg>
|
||||
<BankNo>65535</BankNo>
|
||||
</CommonProperty>
|
||||
<DllOption>
|
||||
<SimDllName>S8051.DLL</SimDllName>
|
||||
<SimDllArguments></SimDllArguments>
|
||||
<SimDlgDll>DP51.DLL</SimDlgDll>
|
||||
<SimDlgDllArguments>-p52</SimDlgDllArguments>
|
||||
<TargetDllName>S8051.DLL</TargetDllName>
|
||||
<TargetDllArguments></TargetDllArguments>
|
||||
<TargetDlgDll>TP51.DLL</TargetDlgDll>
|
||||
<TargetDlgDllArguments>-p52</TargetDlgDllArguments>
|
||||
</DllOption>
|
||||
<DebugOption>
|
||||
<OPTHX>
|
||||
<HexSelection>0</HexSelection>
|
||||
<HexRangeLowAddress>0</HexRangeLowAddress>
|
||||
<HexRangeHighAddress>0</HexRangeHighAddress>
|
||||
<HexOffset>0</HexOffset>
|
||||
<Oh166RecLen>16</Oh166RecLen>
|
||||
</OPTHX>
|
||||
<Simulator>
|
||||
<UseSimulator>0</UseSimulator>
|
||||
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
|
||||
<RunToMain>1</RunToMain>
|
||||
<RestoreBreakpoints>1</RestoreBreakpoints>
|
||||
<RestoreWatchpoints>1</RestoreWatchpoints>
|
||||
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
|
||||
<RestoreFunctions>1</RestoreFunctions>
|
||||
<RestoreToolbox>1</RestoreToolbox>
|
||||
<LimitSpeedToRealTime>0</LimitSpeedToRealTime>
|
||||
<RestoreSysVw>1</RestoreSysVw>
|
||||
</Simulator>
|
||||
<Target>
|
||||
<UseTarget>1</UseTarget>
|
||||
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
|
||||
<RunToMain>0</RunToMain>
|
||||
<RestoreBreakpoints>1</RestoreBreakpoints>
|
||||
<RestoreWatchpoints>1</RestoreWatchpoints>
|
||||
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
|
||||
<RestoreFunctions>0</RestoreFunctions>
|
||||
<RestoreToolbox>1</RestoreToolbox>
|
||||
<RestoreTracepoints>1</RestoreTracepoints>
|
||||
<RestoreSysVw>1</RestoreSysVw>
|
||||
</Target>
|
||||
<RunDebugAfterBuild>0</RunDebugAfterBuild>
|
||||
<TargetSelection>0</TargetSelection>
|
||||
<SimDlls>
|
||||
<CpuDll></CpuDll>
|
||||
<CpuDllArguments></CpuDllArguments>
|
||||
<PeripheralDll></PeripheralDll>
|
||||
<PeripheralDllArguments></PeripheralDllArguments>
|
||||
<InitializationFile></InitializationFile>
|
||||
</SimDlls>
|
||||
<TargetDlls>
|
||||
<CpuDll></CpuDll>
|
||||
<CpuDllArguments></CpuDllArguments>
|
||||
<PeripheralDll></PeripheralDll>
|
||||
<PeripheralDllArguments></PeripheralDllArguments>
|
||||
<InitializationFile></InitializationFile>
|
||||
<Driver>BIN\MON51.DLL</Driver>
|
||||
</TargetDlls>
|
||||
</DebugOption>
|
||||
<Utilities>
|
||||
<Flash1>
|
||||
<UseTargetDll>0</UseTargetDll>
|
||||
<UseExternalTool>0</UseExternalTool>
|
||||
<RunIndependent>0</RunIndependent>
|
||||
<UpdateFlashBeforeDebugging>0</UpdateFlashBeforeDebugging>
|
||||
<Capability>0</Capability>
|
||||
<DriverSelection>-1</DriverSelection>
|
||||
</Flash1>
|
||||
<bUseTDR>0</bUseTDR>
|
||||
<Flash2></Flash2>
|
||||
<Flash3>"" ()</Flash3>
|
||||
<Flash4></Flash4>
|
||||
<pFcarmOut></pFcarmOut>
|
||||
<pFcarmGrp></pFcarmGrp>
|
||||
<pFcArmRoot></pFcArmRoot>
|
||||
<FcArmLst>0</FcArmLst>
|
||||
</Utilities>
|
||||
<Target51>
|
||||
<Target51Misc>
|
||||
<MemoryModel>2</MemoryModel>
|
||||
<RTOS>0</RTOS>
|
||||
<RomSize>2</RomSize>
|
||||
<DataHold>0</DataHold>
|
||||
<XDataHold>0</XDataHold>
|
||||
<UseOnchipRom>0</UseOnchipRom>
|
||||
<UseOnchipArithmetic>0</UseOnchipArithmetic>
|
||||
<UseMultipleDPTR>0</UseMultipleDPTR>
|
||||
<UseOnchipXram>0</UseOnchipXram>
|
||||
<HadIRAM>1</HadIRAM>
|
||||
<HadXRAM>0</HadXRAM>
|
||||
<HadIROM>1</HadIROM>
|
||||
<Moda2>0</Moda2>
|
||||
<Moddp2>0</Moddp2>
|
||||
<Modp2>0</Modp2>
|
||||
<Mod517dp>0</Mod517dp>
|
||||
<Mod517au>0</Mod517au>
|
||||
<Mode2>0</Mode2>
|
||||
<useCB>0</useCB>
|
||||
<useXB>0</useXB>
|
||||
<useL251>0</useL251>
|
||||
<useA251>0</useA251>
|
||||
<Mx51>0</Mx51>
|
||||
<ModC812>0</ModC812>
|
||||
<ModCont>0</ModCont>
|
||||
<Lp51>0</Lp51>
|
||||
<useXBS>0</useXBS>
|
||||
<ModDA>0</ModDA>
|
||||
<ModAB2>0</ModAB2>
|
||||
<Mx51P>0</Mx51P>
|
||||
<hadXRAM2>0</hadXRAM2>
|
||||
<uocXram2>0</uocXram2>
|
||||
<ModC2>0</ModC2>
|
||||
<ModH2>0</ModH2>
|
||||
<Mdu_R515>0</Mdu_R515>
|
||||
<Mdu_F120>0</Mdu_F120>
|
||||
<Psoc>0</Psoc>
|
||||
<hadIROM2>0</hadIROM2>
|
||||
<ModSmx2>0</ModSmx2>
|
||||
<cBanks>0</cBanks>
|
||||
<xBanks>0</xBanks>
|
||||
<OnChipMemories>
|
||||
<RCB>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0xffff</Size>
|
||||
</RCB>
|
||||
<RXB>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x0</Size>
|
||||
</RXB>
|
||||
<Ocm1>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x0</Size>
|
||||
</Ocm1>
|
||||
<Ocm2>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x0</Size>
|
||||
</Ocm2>
|
||||
<Ocm3>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x0</Size>
|
||||
</Ocm3>
|
||||
<Ocr1>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x0</Size>
|
||||
</Ocr1>
|
||||
<Ocr2>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x0</Size>
|
||||
</Ocr2>
|
||||
<Ocr3>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x0</Size>
|
||||
</Ocr3>
|
||||
<IRO>
|
||||
<Type>1</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x2000</Size>
|
||||
</IRO>
|
||||
<IRA>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x100</Size>
|
||||
</IRA>
|
||||
<XRA>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x0</Size>
|
||||
</XRA>
|
||||
<XRA512>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x0</Size>
|
||||
</XRA512>
|
||||
<IROM512>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x0</Size>
|
||||
</IROM512>
|
||||
</OnChipMemories>
|
||||
</Target51Misc>
|
||||
<C51>
|
||||
<RegisterColoring>0</RegisterColoring>
|
||||
<VariablesInOrder>0</VariablesInOrder>
|
||||
<IntegerPromotion>1</IntegerPromotion>
|
||||
<uAregs>0</uAregs>
|
||||
<UseInterruptVector>1</UseInterruptVector>
|
||||
<Fuzzy>3</Fuzzy>
|
||||
<Optimize>8</Optimize>
|
||||
<WarningLevel>2</WarningLevel>
|
||||
<SizeSpeed>1</SizeSpeed>
|
||||
<ObjectExtend>1</ObjectExtend>
|
||||
<ACallAJmp>0</ACallAJmp>
|
||||
<InterruptVectorAddress>0</InterruptVectorAddress>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath>.\Includes</IncludePath>
|
||||
</VariousControls>
|
||||
</C51>
|
||||
<Ax51>
|
||||
<UseMpl>0</UseMpl>
|
||||
<UseStandard>1</UseStandard>
|
||||
<UseCase>0</UseCase>
|
||||
<UseMod51>0</UseMod51>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath></IncludePath>
|
||||
</VariousControls>
|
||||
</Ax51>
|
||||
<Lx51>
|
||||
<useFile>0</useFile>
|
||||
<linkonly>0</linkonly>
|
||||
<UseMemoryFromTarget>1</UseMemoryFromTarget>
|
||||
<CaseSensitiveSymbols>0</CaseSensitiveSymbols>
|
||||
<WarningLevel>2</WarningLevel>
|
||||
<DataOverlaying>1</DataOverlaying>
|
||||
<OverlayString></OverlayString>
|
||||
<MiscControls></MiscControls>
|
||||
<DisableWarningNumbers></DisableWarningNumbers>
|
||||
<LinkerCmdFile></LinkerCmdFile>
|
||||
<Assign></Assign>
|
||||
<ReserveString></ReserveString>
|
||||
<CClasses></CClasses>
|
||||
<UserClasses></UserClasses>
|
||||
<CSection></CSection>
|
||||
<UserSection></UserSection>
|
||||
<CodeBaseAddress></CodeBaseAddress>
|
||||
<XDataBaseAddress></XDataBaseAddress>
|
||||
<PDataBaseAddress></PDataBaseAddress>
|
||||
<BitBaseAddress></BitBaseAddress>
|
||||
<DataBaseAddress></DataBaseAddress>
|
||||
<IDataBaseAddress></IDataBaseAddress>
|
||||
<Precede></Precede>
|
||||
<Stack></Stack>
|
||||
<CodeSegmentName></CodeSegmentName>
|
||||
<XDataSegmentName></XDataSegmentName>
|
||||
<BitSegmentName></BitSegmentName>
|
||||
<DataSegmentName></DataSegmentName>
|
||||
<IDataSegmentName></IDataSegmentName>
|
||||
</Lx51>
|
||||
</Target51>
|
||||
</TargetOption>
|
||||
<Groups>
|
||||
<Group>
|
||||
<GroupName>Source Group 1</GroupName>
|
||||
<Files>
|
||||
<File>
|
||||
<FileName>main.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Main\main.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
</Groups>
|
||||
</Target>
|
||||
</Targets>
|
||||
|
||||
</Project>
|
Loading…
x
Reference in New Issue
Block a user