我想在12864显示屏上显示一个动态数字,从0~99,但显示屏上效果只有一个0,而且不变化,跪求大神能指点一下
(目前第二行和第三行还断码),附上主函数,循环显示的语句在最后,望大神赐教
#include
#include"Twist_Switch.h"
#include"STC15.H"
uchar code dis1[]={"C101实验室"};
uchar code dis2[]={"上旋钮:"};
uchar code dis3[]={"下旋钮:"};
uchar code dis4[]={"感谢使用"};
uchar Number[2];
void delay_ms(uint x)
{
uint i,j;
for(j=0;j<x;j++)
for(i=0;i<110;i++);
}
void LcdGPIO_Init(void) //设置准双向口
{
P0M1 = 0; P0M0 = 0;
P1M1 = 0; P1M0 = 0;
P2M1 = 0; P2M0 = 0;
P3M1 = 0; P3M0 = 0;
P4M1 = 0; P4M0 = 0;
P5M1 = 0; P5M0 = 0;
P6M1 = 0; P6M0 = 0;
P7M1 = 0; P7M0 = 0;
}
void write_cmd(uchar cmd) //写指令
{
LCD_RS=0;
LCD_RW=0;
LCD_EN=0;
LCD_data=cmd;
delay_ms(5);
LCD_EN=1;
delay_ms(5);
LCD_EN=0;
}
void write_dat(uchar dat) //写数据
{
LCD_RS=1;
LCD_RW=0;
LCD_EN=0;
LCD_data=dat;
delay_ms(5);
LCD_EN=1;
delay_ms(5);
LCD_EN=0;
}
void lcd_pos(uchar X,uchar Y) //LCD屏幕显示位置
{
uchar pos;
if(X==0)
{X=0x80;}
else if (X==1)
{X=0x90;}
else if (X==2)
{X=0x88;}
else if (X==3)
{X=0x98;}
pos=X+Y;
write_cmd(pos);
}
void lcd_init() //液晶屏初始化
{
//LCD_PSB=1;
write_cmd(0x30);
delay_ms(5);
write_cmd(0x0C);
delay_ms(5);
write_cmd(0x01);
delay_ms(5);
}
void main()
{
LcdGPIO_Init();
delay_ms(10);
lcd_init();
while(1)
{
uchar i,k;
lcd_pos(0,1);
i=0;
while(dis1[i]!='\0')
{
write_dat(dis1[i]);
i++;
}
lcd_pos(1,0);
i=0;
while(dis2[i]!='\0')
{
write_dat(dis2[i]);
i++;
}
lcd_pos(2,0);
i=0;
while(dis3[i]!='\0')
{
write_dat(dis3[i]);
i++;
}
lcd_pos(3,2);
i=0;
while(dis4[i]!='\0') //δ½áÊø
{
write_dat(dis4[i]);
i++;
}
lcd_pos(1,4);
for(k=0;k<100;k++)
{
for(a=0;a<100;a++)
{
Number[0]=a/10;
Number[1]=a%10;
sprintf(&Number, "%d", a); //½«ÕûÐÎת»»³É×Ö·û´®
write_dat(Number[k]);
}
}
}
}
(没有附加Twist_Switch.h和STC15.H程序,头文件里应该没有问题)
再次感谢!!!!