{
lcd_set_xy(x >> 3,y); lcd_read_data();
data_h=lcd_read_data(); data_l=lcd_read_data(); lcd_set_xy(x >> 3,y);
lcd_write_data(1,data_h);
lcd_write_data(1,data_l|0xc0); break; } case 5: {
lcd_set_xy(x >> 3,y); lcd_read_data();
data_h=lcd_read_data(); data_l=lcd_read_data(); lcd_set_xy(x >> 3,y);
lcd_write_data(1,data_h);
lcd_write_data(1,data_l|0x30); break; } case 6: {
lcd_set_xy(x >> 3,y); lcd_read_data();
data_h=lcd_read_data(); data_l=lcd_read_data(); lcd_set_xy(x >> 3,y);
lcd_write_data(1,data_h);
lcd_write_data(1,data_l|0x0c); break; } case 7: {
lcd_set_xy(x >> 3,y); lcd_read_data();
data_h=lcd_read_data(); data_l=lcd_read_data(); lcd_set_xy(x >> 3,y);
lcd_write_data(1,data_h);
lcd_write_data(1,data_l|0x03); break; } default :
break; } }
//x 0~63 两位为单位 y(偶数) 0~63 //熄灭坐标对应的像素点
voidsnake_data_dele(ucharx,uchar y) {
uchardata_h,data_l; switch(x & 0x07) { case 0: {
lcd_set_xy(x >> 3,y); lcd_read_data();
data_h=lcd_read_data();
//data_l=lcd_read_data(); lcd_set_xy(x >> 3,y);
lcd_write_data(1,data_h&0x3f);
//lcd_write_data(1,data_l&(~(data<<6))); break; } case 1: {
lcd_set_xy(x >> 3,y); lcd_read_data();
data_h=lcd_read_data();
//data_l=lcd_read_data(); lcd_set_xy(x >> 3,y);
lcd_write_data(1,data_h&0xcf);
//lcd_write_data(1,data_l&(~(data<<6))); break; } case 2: {
lcd_set_xy(x >> 3,y); lcd_read_data();
data_h=lcd_read_data();
//data_l=lcd_read_data(); lcd_set_xy(x >> 3,y);
lcd_write_data(1,data_h&0xf3);
//lcd_write_data(1,data_l&(~(data<<6))); break; } case 3:
{
lcd_set_xy(x >> 3,y); lcd_read_data();
data_h=lcd_read_data();
//data_l=lcd_read_data(); lcd_set_xy(x >> 3,y);
lcd_write_data(1,data_h&0xfc);
//lcd_write_data(1,data_l&(~(data<<6))); break; } case 4: {
lcd_set_xy(x >> 3,y); lcd_read_data();
data_h=lcd_read_data(); data_l=lcd_read_data(); lcd_set_xy(x >> 3,y);
lcd_write_data(1,data_h);
lcd_write_data(1,data_l&0x3f); break; } case 5: {
lcd_set_xy(x >> 3,y); lcd_read_data();
data_h=lcd_read_data(); data_l=lcd_read_data(); lcd_set_xy(x >> 3,y);
lcd_write_data(1,data_h);
lcd_write_data(1,data_l&0xcf); break; } case 6: {
lcd_set_xy(x >> 3,y); lcd_read_data();
data_h=lcd_read_data(); data_l=lcd_read_data(); lcd_set_xy(x >> 3,y);
lcd_write_data(1,data_h);
lcd_write_data(1,data_l&0xf3); break; } case 7:
{
lcd_set_xy(x >> 3,y); lcd_read_data();
data_h = lcd_read_data(); data_l = lcd_read_data(); lcd_set_xy(x >> 3,y);
lcd_write_data(1,data_h);
lcd_write_data(1,data_l&0xfc); break; } default : break; } }
//x 0~63 两位为单位 y(偶数) 0~63 //读取坐标对应的像素点的值数据长度 2 ucharsnake_read_data(ucharx,uchar y) {
uchardata_h,data_l; switch(x & 0x07) { case 0: {
lcd_set_xy(x >> 3,y); lcd_read_data();
data_h=lcd_read_data(); return (data_h>>6); break; } case 1: {
lcd_set_xy(x >> 3,y); lcd_read_data();
data_h=lcd_read_data(); return ((data_h>>4)&0x03); break; } case 2: {
lcd_set_xy(x >> 3,y); lcd_read_data();
data_h=lcd_read_data(); return ((data_h>>2)&0x03); break;
} case 3: {
lcd_set_xy(x >> 3,y); lcd_read_data();
data_h=lcd_read_data(); return (data_h&0x03); break; } case 4: {
lcd_set_xy(x >> 3,y); lcd_read_data();
data_h=lcd_read_data(); data_l=lcd_read_data(); return (data_l>>6); break; } case 5: {
lcd_set_xy(x >> 3,y); lcd_read_data();
data_h=lcd_read_data(); data_l=lcd_read_data(); return ((data_l>>4)&0x03); break; } case 6: {
lcd_set_xy(x >> 3,y); lcd_read_data();
data_h=lcd_read_data(); data_l=lcd_read_data(); return ((data_l>>2)&0x03); break; } case 7: {
lcd_set_xy(x >> 3,y); lcd_read_data();
data_h=lcd_read_data(); data_l=lcd_read_data(); return (data_l&0x03); break;
Atmega16单片机贪吃蛇小游戏
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)