w3571604@163.com
什么MPU都可以,51,430,arm的更好,I/O口模拟总线的。
如果有的话希望能发给我,我将非常感谢,多多加分!
请问st7920的使能信号应该怎么接啊,我用的是c8051f020的单片机
是不是要用定时器自己产生一个波形啊
新手
#include
#include
#define uint unsigned int
#define uchar unsigned char
sbit cs=P2^5; //片选端 高电平有效
sbit sid=P2^6; //数据线
sbit sclk=P2^7; //串行时钟信号 下降沿有效
uchar table[]="我是个小兵却乐天知命,在你的世界说鸟语,在我的世界对不起请说汉语";
uchar datecnt;
void delayms(uint z)//单位延时一毫秒
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void send_byte(uchar byte)//发送一个字节函数
{
uchar j;
cs=1;
for(j=0;j<8;j++)
{
sclk=0;
byte=byte<<1;
sid=CY;
sclk=1;
sclk=0;
}
cs=0;
}
void writecom_12864(uchar com)//写命令控制函数
{
uchar HDATA,LDATA;
HDATA=com&0xf0;
LDATA=((com<<4)&0xf0);
send_byte(0xf8);
send_byte(HDATA);
send_byte(LDATA);
}
void writedate_12864(uchar date)//写数据控制函数
{
uchar HDATA,LDATA;
HDATA=date&0xf0;
LDATA=((date<<4)&0xf0);
send_byte(0xfa);
send_byte(HDATA);
send_byte(LDATA);
}
void init_12864()//初始化12864
{
writecom_12864(0x30);
writecom_12864(0x30);
writecom_12864(0x0c);
writecom_12864(0x01);//清屏
writecom_12864(0x06);
}
void display_12864()
{
for(datecnt=0;datecnt<64;datecnt++)
{
if(datecnt==0) writecom_12864(0x80);
if(datecnt==16)writecom_12864(0x90);
if(datecnt==32)writecom_12864(0x88);
if(datecnt==48)writecom_12864(0x98);
writedate_12864(table[datecnt]);
}
}
void main()
{
init_12864();
display_12864();
while(1);
}