51单片机+1602的小游戏源码已经整理好,现在发布。请自行对照MAIN.H里的端口定义进行设置。视频链接:https://v.youku.com/v_show/id_XMzcxMzUxMDk0NA==.html
单片机源程序如下:
- #include<reg52.h>
- #include<main.h>
- //#include<rtx51tny.h>
- #define uint unsigned int
- #define uchar unsigned char
- xdata uchar table1[]="---<-----<-------<<-------<<------<----------<------<<<<<---------<<<---<-----<++++++++++++<+++++<-----<--+++++++<--";
- xdata uchar table2[]="<------<------<--------<-------<-------<<<-------<--------<----<-----------<--+++++++<<<<+++++<-----<----<+++<+<----";
- ///////////////////////01234567890123456789012345678901234567890123456789012345678901234567890123456789
- xdata uchar table3[]="-<You are lost>-";
- xdata uchar table4[]="-<************>-";
- uchar gb1;
- uchar di,ci;
- void delay(uint t)
- {
- uint j,k;
- for(j=t;j>0;j--)
- for(k=110;k>0;k--);
- }
- void delay_100()//////////////延时100微秒
- {uchar k;
- for(k=110;k>0;k--);}
- void write_com(unsigned char com)
- { lcdrs=0;
- lcdrw=0;
- P0=com;
- delay_100();
- lcden=1;
- delay_100();
- lcden=0;
- }
- void write_date(unsigned char date)
- {
- lcdrs=1;
- lcdrw=0;
- P0=date;
- delay_100();
- lcden=1;
- delay_100();
- lcden=0;
- }
- void light_init() //////////////////////////////////////////////////液晶初始化
- {
- lcden=0;
- write_com(0x38);///显示设置指令 把指令赋给P0口
- write_com(0x0c);////显示开/关及光标设置(开显示 显示/////光标 光标闪烁)
- write_com(0x06);///(不左移 地址指针自动加一且光标////加一,
- write_com(0x01);
- }
- void dis_1(uchar xi,uchar datt)
- {
- write_com(0x80+xi);
- {
- write_date(datt);
- }
- }
- void dis_2(uchar yi,uchar datt)
- {
-
- write_com(0xc0+yi);
- {
- write_date(datt);
- }
- }
- void dis_3()
- {
- uchar xi3=0;
- for(xi3=0;xi3<16;xi3++)
- {
- dis_1(xi3,table3[xi3]);
- dis_2(xi3,table4[xi3]);
- }
- }
- void key()
- {
- if(k1==0)
- {
- dis_1(3,'*');
- }
- if(k1==1)
- {
- dis_2(3,'*');
- }
- }
- void dis()
- {
- if(gb1==0)
- {
- if((di==3)&&(table2[di+ci]=='<')&&(k1==1))
- {
- los1=1;gb1=1;ci=64;
- }
- for(ci=0;ci<100;ci++)
- {for(di=16;di>0;di--)
- {
- dis_1(di,table1[di+ci]);
- dis_2(di,table2[di+ci]);
- key();
- if((di==3)&&(table2[di+ci]=='<')&&(k1==1))
- {
- los1=1;gb1=1;ci=100;
- }
- if((di==3)&&(table1[di+ci]=='<')&&(k1==0))
- {
- los1=1;gb1=1;ci=100;
- }
- //write_com(0x06);
- //dis_2(3,'*');
- delay(10);
- //os_wait2(K_TMO,150);
- }
- }
- }
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
GAME.rar
(31.69 KB, 下载次数: 38)
|