1.1
This commit is contained in:
parent
a524cfd714
commit
0e4230b984
@ -1,4 +1,4 @@
|
||||
C51 COMPILER V9.57.0.0 MAIN 06/14/2022 09:14:54 PAGE 1
|
||||
C51 COMPILER V9.57.0.0 MAIN 06/14/2022 09:51:18 PAGE 1
|
||||
|
||||
|
||||
C51 COMPILER V9.57.0.0, COMPILATION OF MODULE MAIN
|
||||
@ -62,7 +62,7 @@ line level source
|
||||
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
|
||||
C51 COMPILER V9.57.0.0 MAIN 06/14/2022 09:51:18 PAGE 2
|
||||
|
||||
55 {
|
||||
56 1 u8 one = 0x01;
|
||||
@ -126,7 +126,7 @@ line level source
|
||||
114 1 {
|
||||
115 2 turn = 1;
|
||||
116 2 }
|
||||
C51 COMPILER V9.57.0.0 MAIN 06/14/2022 09:14:54 PAGE 3
|
||||
C51 COMPILER V9.57.0.0 MAIN 06/14/2022 09:51:18 PAGE 3
|
||||
|
||||
117 1 else if(key==KEY2_PRESS)
|
||||
118 1 {
|
||||
@ -190,7 +190,7 @@ line level source
|
||||
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
|
||||
C51 COMPILER V9.57.0.0 MAIN 06/14/2022 09:51:18 PAGE 4
|
||||
|
||||
179 1 push(head_x,head_y);
|
||||
180 1 rand_apple();
|
||||
@ -222,9 +222,9 @@ line level source
|
||||
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);
|
||||
209 5 push(head_x,head_y);
|
||||
210 5 rand_apple();
|
||||
211 5 display(apple_x,apple_y);
|
||||
212 5 }
|
||||
213 4 else
|
||||
214 4 {
|
||||
@ -254,7 +254,7 @@ MODULE INFORMATION: STATIC OVERLAYABLE
|
||||
PDATA SIZE = ---- ----
|
||||
DATA SIZE = ---- ----
|
||||
IDATA SIZE = ---- ----
|
||||
C51 COMPILER V9.57.0.0 MAIN 06/14/2022 09:14:54 PAGE 5
|
||||
C51 COMPILER V9.57.0.0 MAIN 06/14/2022 09:51:18 PAGE 5
|
||||
|
||||
BIT SIZE = ---- ----
|
||||
END OF MODULE INFORMATION.
|
||||
|
@ -1,4 +1,4 @@
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 06/14/2022 09:14:54 PAGE 1
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 06/14/2022 09:51:18 PAGE 1
|
||||
|
||||
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY:
|
||||
@ -59,7 +59,7 @@ LINK MAP OF MODULE: .\Objects\snake (MAIN)
|
||||
|
||||
OVERLAY MAP OF MODULE: .\Objects\snake (MAIN)
|
||||
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 06/14/2022 09:14:54 PAGE 2
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 06/14/2022 09:51:18 PAGE 2
|
||||
|
||||
|
||||
|
||||
@ -119,7 +119,7 @@ SYMBOL TABLE OF MODULE: .\Objects\snake (MAIN)
|
||||
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
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 06/14/2022 09:51:18 PAGE 3
|
||||
|
||||
|
||||
D:00B0H PUBLIC P3
|
||||
@ -179,7 +179,7 @@ SYMBOL TABLE OF MODULE: .\Objects\snake (MAIN)
|
||||
------- 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
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 06/14/2022 09:51:18 PAGE 4
|
||||
|
||||
|
||||
D:0006H SYMBOL ten_us
|
||||
@ -239,7 +239,7 @@ SYMBOL TABLE OF MODULE: .\Objects\snake (MAIN)
|
||||
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
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 06/14/2022 09:51:18 PAGE 5
|
||||
|
||||
|
||||
C:056AH LINE# 18
|
||||
@ -299,7 +299,7 @@ SYMBOL TABLE OF MODULE: .\Objects\snake (MAIN)
|
||||
------- 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
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 06/14/2022 09:51:18 PAGE 6
|
||||
|
||||
|
||||
C:04CFH LINE# 56
|
||||
@ -359,7 +359,7 @@ SYMBOL TABLE OF MODULE: .\Objects\snake (MAIN)
|
||||
------- PROC _SHOW
|
||||
X:00B2H SYMBOL gled_row
|
||||
------- DO
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 06/14/2022 09:14:54 PAGE 7
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 06/14/2022 09:51:18 PAGE 7
|
||||
|
||||
|
||||
X:00B5H SYMBOL i
|
||||
@ -419,7 +419,7 @@ SYMBOL TABLE OF MODULE: .\Objects\snake (MAIN)
|
||||
------- 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
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 06/14/2022 09:51:18 PAGE 8
|
||||
|
||||
|
||||
C:0144H LINE# 145
|
||||
@ -479,7 +479,7 @@ SYMBOL TABLE OF MODULE: .\Objects\snake (MAIN)
|
||||
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
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 06/14/2022 09:51:18 PAGE 9
|
||||
|
||||
|
||||
C:00E0H LINE# 200
|
||||
|
111
Main/main.c
111
Main/main.c
@ -7,7 +7,8 @@
|
||||
sbit SRCLK=P3^6; //移位寄存器时钟输入
|
||||
sbit RCLK=P3^5; //存储寄存器时钟输入
|
||||
sbit SER=P3^4; //串行数据输入
|
||||
|
||||
sbit BEEP=P1^5; //音乐
|
||||
sbit led = P2^0;
|
||||
#define LEDDZ_COL_PORT P0 //点阵列控制端口
|
||||
|
||||
u8 death[8]={0x00,0x38,0x6e,0x7c,0x7c,0x6e,0x38,0x00};
|
||||
@ -16,48 +17,65 @@ 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 timer_level[3] = {0x4c,0x50,0x60};//难度控制
|
||||
u8 level = 0;
|
||||
|
||||
u8 queue_x[65];
|
||||
u8 queue_y[65];
|
||||
u8 leader=0;
|
||||
u8 tail=0;
|
||||
u8 length=0;
|
||||
u8 queue_x[65]; //循环队列x坐标
|
||||
u8 queue_y[65]; //循环队列y坐标
|
||||
u8 leader=0; //头指针
|
||||
u8 tail=0; //尾指针
|
||||
u8 length=0; //队列长度
|
||||
|
||||
u8 act=0;
|
||||
u8 game_over=0;
|
||||
u8 turn=0;
|
||||
u8 act=0; //是否执行
|
||||
u8 game_over=0; //游戏是否结束
|
||||
u8 turn=0; //转向方向
|
||||
|
||||
u8 direction=0;
|
||||
u8 head_x = 3;
|
||||
u8 head_y = 3;
|
||||
u8 direction=0; //当前方向
|
||||
u8 head_x = 3; //蛇头部节点x轴
|
||||
u8 head_y = 3; //蛇头部节点y轴
|
||||
|
||||
u8 apple_x=4;
|
||||
u8 apple_y=4;
|
||||
u8 apple_x=4; //食物节点x轴
|
||||
u8 apple_y=4; //食物节点y轴
|
||||
|
||||
u8 timer = 0;
|
||||
u8 timer = 0; //中断次数
|
||||
u16 sound_long = 0; //声音持续时间
|
||||
|
||||
u8 i;
|
||||
u8 j;
|
||||
/*******************************************************************************
|
||||
* 函 数 名 : hc595_write_data(u8 dat)
|
||||
* 函数功能 : 向74HC595写入一个字节的数据
|
||||
* 输 入 : dat:数据
|
||||
* 输 出 : 无
|
||||
*******************************************************************************/
|
||||
//music
|
||||
u8 music_index = 0;
|
||||
u8 soundtone_end[] = {6,5,4,3,2,1,1,2};
|
||||
u16 soundlong_end[] ={1,1,1,1,1,1,2,1};
|
||||
u8 freq_h[7] = {0XFC,0XFC,0XFD,0XFD,0XFD,0XFD,0XFE}; //音调 1 2 3 4 5 6 7
|
||||
u8 freq_l[7] = {0X44,0XAC,0X09,0X34,0X82,0XC8,0X06};
|
||||
u16 freq[7] = {261.6,293.6,329.6,349.2,392,440,493.8};//对应频率
|
||||
|
||||
void display(u8 x, u8 y)
|
||||
void play_init() //初始化
|
||||
{
|
||||
TR1 = 0;
|
||||
music_index = 0;
|
||||
BEEP = 0;
|
||||
timer1_reset(0xff,0xff);
|
||||
}
|
||||
|
||||
void play_death() //死亡后执行
|
||||
{
|
||||
TR1=1;
|
||||
}
|
||||
|
||||
void display(u8 x, u8 y) //显示某个点
|
||||
{
|
||||
u8 one = 0x01;
|
||||
map[x] = map[x] + (one<<y);
|
||||
}
|
||||
|
||||
void del(u8 x, u8 y)
|
||||
void del(u8 x, u8 y) //取消显示某个点
|
||||
{
|
||||
u8 one = 0x01;
|
||||
map[x] = map[x] - (one<<y);
|
||||
}
|
||||
|
||||
void push(u8 x, u8 y)
|
||||
void push(u8 x, u8 y) //循环队列:入队列
|
||||
{
|
||||
leader++;
|
||||
length++;
|
||||
@ -67,7 +85,7 @@ void push(u8 x, u8 y)
|
||||
display(x,y);
|
||||
}
|
||||
|
||||
void pop()
|
||||
void pop() //循环队列:出队列
|
||||
{
|
||||
u8 one = 0x01;
|
||||
tail++;
|
||||
@ -77,8 +95,7 @@ void pop()
|
||||
}
|
||||
|
||||
|
||||
|
||||
void hc595_write_data(u8 dat)
|
||||
void hc595_write_data(u8 dat) //数据写一排
|
||||
{
|
||||
u8 i=0;
|
||||
for(i=0;i<8;i++)//循环8次即可将一个字节写入寄存器中
|
||||
@ -95,7 +112,7 @@ void hc595_write_data(u8 dat)
|
||||
RCLK=1;//存储寄存器时钟上升沿将前面写入到寄存器的数据输出
|
||||
}
|
||||
|
||||
void show(u8 gled_row[8])
|
||||
void show(u8 gled_row[8]) //点阵显示
|
||||
{
|
||||
u8 i=0;
|
||||
for(i=0;i<8;i++)//循环8次扫描8行、列
|
||||
@ -107,7 +124,7 @@ void show(u8 gled_row[8])
|
||||
}
|
||||
}
|
||||
|
||||
void monitor_key()
|
||||
void monitor_key() //监控按键
|
||||
{
|
||||
u8 key=key_scan(0);
|
||||
if(key==KEY1_PRESS)
|
||||
@ -120,17 +137,16 @@ void monitor_key()
|
||||
}
|
||||
else if(key==KEY3_PRESS)
|
||||
{
|
||||
|
||||
level = (level+1)%2;
|
||||
}
|
||||
else if(key==KEY4_PRESS)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void timer0() interrupt 1
|
||||
void timer0() interrupt 1 //定时器0 控制每一步时间间隔
|
||||
{
|
||||
timer0_reset(0x4c,0x00);
|
||||
led = 0;
|
||||
//timer0_reset(0x4c,0x00);
|
||||
timer0_reset(timer_level[level],0x00);
|
||||
timer++;
|
||||
if(timer==15)
|
||||
{
|
||||
@ -138,8 +154,20 @@ void timer0() interrupt 1
|
||||
act=1;
|
||||
}
|
||||
}
|
||||
void timer1() interrupt 3 //定时器1 控制音乐播放速度
|
||||
{
|
||||
BEEP = !BEEP;
|
||||
sound_long++;
|
||||
timer1_reset(freq_h[soundtone_end[music_index]-1],freq_l[soundtone_end[music_index]-1]);
|
||||
if(sound_long > soundlong_end[music_index] * freq[music_index])
|
||||
{
|
||||
music_index++;
|
||||
sound_long = 0;
|
||||
}
|
||||
if(music_index==6){TR1 = 0;}
|
||||
}
|
||||
|
||||
void rand_apple()
|
||||
void rand_apple() //随机生成食物(包括避免生成在自己身上)
|
||||
{
|
||||
u8 k;
|
||||
u8 rand=TL0%(64-length);
|
||||
@ -158,7 +186,7 @@ void rand_apple()
|
||||
over = 1;
|
||||
}
|
||||
}
|
||||
if(over == 0)// over == 0 but not run rightly
|
||||
if(over == 0)
|
||||
{
|
||||
if(count == rand)
|
||||
{
|
||||
@ -175,14 +203,17 @@ void rand_apple()
|
||||
void main()
|
||||
{
|
||||
u8 i=0;
|
||||
timer0_init(0x01,0x4c,0x00);
|
||||
timer_init();
|
||||
play_init();
|
||||
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];
|
||||
@ -219,13 +250,15 @@ void main()
|
||||
turn = 0;
|
||||
act = 0;
|
||||
}
|
||||
|
||||
if(game_over)
|
||||
{
|
||||
show(death);
|
||||
play_death();
|
||||
}
|
||||
else
|
||||
{
|
||||
show(map);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
BIN
Objects/snake
BIN
Objects/snake
Binary file not shown.
@ -37,7 +37,7 @@ linking...
|
||||
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
|
||||
Build Time Elapsed: 00:00:00
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user