程式實作了一個按鍵暫停,一個按鍵文字左右移
要加個按鍵按下顯示另外一個字,其他功能不變怎么改
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define data1 P0
#define data2 P2
sbit s1=P3^6;
sbit s2=P3^7;
bit fangxiang;
uint alt=0,net=0,sl=288;bit mode;uchar code tab[]={// (0) (1) 老(2) 師(3) ,(4) 你(5) 辛(6) 苦(7) 了(8) !0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",0*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",1*/0x02,0x10,0x22,0x10,0x22,0x20,0x22,0x20,0x22,0x40,0x22,0x7C,0xFE,0x92,0x23,0x12,0x23,0x22,0x22,0x22,0x26,0x42,0x2A,0x42,0x72,0x02,0x22,0x0E,0x02,0x00,0x00,0x00,/*"老",2*/0x00,0x02,0x3F,0xE4,0x00,0x08,0x00,0x70,0xFF,0x80,0x00,0x00,0x4F,0xF0,0x48,0x00,0x48,0x00,0x48,0x00,0x7F,0xFF,0x48,0x00,0x48,0x20,0x48,0x10,0x4F,0xE0,0x00,0x00,/*"師",3*/0x00,0x00,0x00,0x00,0x00,0x1A,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*",",4*/0x01,0x00,0x02,0x04,0x0C,0x1C,0x3F,0xC0,0xC0,0x1C,0x09,0x02,0x16,0x02,0x60,0x92,0x20,0x4A,0x2F,0x82,0x20,0x02,0x24,0x0E,0x22,0x00,0x31,0x90,0x20,0x0C,0x00,0x00,/*"您",5*/0x01,0x00,0x21,0x20,0x21,0x20,0x29,0x20,0x25,0x20,0x23,0x20,0xA1,0x20,0x61,0xFF,0x21,0x20,0x23,0x20,0x25,0x20,0x29,0x20,0x21,0x20,0x21,0x00,0x01,0x00,0x00,0x00,/*"辛",6*/0x02,0x00,0x22,0x00,0x22,0x00,0x22,0x7E,0x22,0x44,0xFA,0x44,0x22,0x44,0x2F,0xC4,0x22,0x44,0x22,0x44,0xFA,0x44,0x22,0x7E,0x22,0x00,0x22,0x00,0x22,0x00,0x00,0x00,/*"苦",7*/0x00,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x02,0x40,0x01,0x4F,0xFE,0x48,0x00,0x50,0x00,0x50,0x00,0x60,0x00,0x60,0x00,0x40,0x00,0x00,0x00,0x00,0x00,/*"了",8*/0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"!",9*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",14*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",15*/};
void delay(uint z) //延時子函式
{ uchar x;
for(;z>0;z--)
for(x=110;x>0;x--);}
void xianshi() //顯示
{ uchar aa,i;
for(i=0;i<16;i++)
{ P1=i; //列掃描
data1=tab[net+aa]; //取出上8行資料輸出
aa++;
data2=tab[net+aa]; //取出下8行資料輸出
aa++;
delay(5); //延時
data1=0; //清屏
data2=0; //清屏
P1=0x00; //消除余輝
if(aa>30) aa=0; //字模地址
} }
void main() //主函式
{ ET1=1; //使能定時器0
EA=1; //開啟總中斷
TR1=1; //開始計數
while(1) //無限回圈
{ xianshi(); //顯示
if(s1==0) //檢測按鍵
{ delay(30); //延時消抖
TR1=~TR1; //按下暫停 ,暫按繼續
while(!s1)xianshi();
delay(30); }
if(s2==0) //檢測按鍵
{ delay(30); //延時消抖 fangxiang=~fangxiang; //方向取反
while(!s2)xianshi();
delay(30); } }}
void timer1() interrupt 3
{ alt++; if(alt==10) //到一定的時間加以實作左移 { alt=0; if(fangxiang==0) //如果是正向 正向移動
{ net=net+2; if(net>sl) //字移動數量
net=0; }
else //否則反向移動
{ net=net-2; if(net<2) net=sl; //字移動數量 } } }
uj5u.com熱心網友回復:
有沒有大神幫幫忙


uj5u.com熱心網友回復:
代碼要貼在 “代碼” 你這樣看起來好累。
按鍵顯示另一個字,跟左右移不是一樣的道理嗎?只不過是手動設定 net 的值,不是+2和-2的方式
uj5u.com熱心網友回復:
不知道咋弄,能不能具體說下弄幾天了搞不會
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/123241.html
標籤:單片機/工控
上一篇:ccs6.1 連不上仿真器xds100,請各位大佬指教
下一篇:單片機實作VPDN接入
