- 打卡等级:偶尔看看III
- 打卡总天数:56
- 最近打卡:2025-04-15 09:09:55
中级会员
- 积分
- 246
|
主控芯片:stc8h8k64u(打狗棒)
#include "stc8h.h"
#include "intrins.h"
#define uint unsigned int
#define uchar unsigned char
#define lcd P2
sbit rs=P0^0;
sbit rw=P0^1;
sbit e=P0^2;
sbit psb=P0^3;
uchar code tab1[]={"店铺链接:"};
uchar code tab2[]={"KCER001.taobao.c"};
uchar code tab3[]={"STC 国芯启航"};
uchar code tab4[]={"STCMCUAI.COM"};
void init_io()
{
P0M0 = 0x00; P0M1 = 0x00;
P1M0 = 0x00; P1M1 = 0x00;
P2M0 = 0x00; P2M1 = 0x00;
P3M0 = 0x00; P3M1 = 0x00;
P4M0 = 0x00; P4M1 = 0x00;
P5M0 = 0x00; P5M1 = 0x00;
P6M0 = 0x00; P6M1 = 0x00;
P7M0 = 0x00; P7M1 = 0x00;
}
void Delay1000ms() //@11.0592MHz
{
unsigned char data i, j, k;
i = 57;
j = 27;
k = 112;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void Delay100ms() //@11.0592MHz
{
unsigned char data i, j, k;
_nop_();
i = 6;
j = 157;
k = 59;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void delayus(uint us)
{
while (us--);
}
void lcd_busy()
{
rs=0;
rw=1;
e=1;
lcd=0xff;
while((lcd&0x80)==0x80);
e=0;
}
void lcd_wcmd(uchar cmd)
{
lcd_busy();
rs=0;
rw=0;
e=0;
delayus(10);
lcd = cmd;
delayus(10);
e =1 ;
delayus(10);
e =0 ;
}
void lcd_wdat(uchar dat)
{
lcd_busy();
rs=1;
rw=0;
e=0;
delayus(10);
lcd = dat;
delayus(10);
e =1 ;
delayus(10);
e =0 ;
}
void lcd_pos(uchar x,uchar y)
{
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;}
if (y==0) {y=0x00;}
else if (y==1) {y=0x01;}
else if (y==2) {y=0x02;}
else if (y==3) {y=0x03;}
else if (y==1) {y=0x04;}
else if (y==2) {y=0x05;}
else if (y==3) {y=0x06;}
else if (y==3) {y=0x07;}
pos=x+y;
lcd_wcmd( pos );
}
void lcd_init()
{
psb= 1;
lcd_wcmd(0x34);
delayus(50);
lcd_wcmd(0x30);
delayus(50);
lcd_wcmd(0x0c);
delayus(50);
lcd_wcmd(0x01);
delayus(50);
}
main()
{
uchar i,z,x,j;
init_io();
lcd_init();
z=0;j=0;
lcd_pos(z,j); i = 0;
while(tab1[i] != '\0') {lcd_wdat(tab1[i]);Delay100ms(); i++ ;}
z++;
lcd_pos(z,j); i = 0;
while(tab2[i] != '\0') {lcd_wdat(tab2[i]);Delay100ms(); i++ ;}
z++;
lcd_pos(z,j); i = 0;
while(tab3[i] != '\0') {lcd_wdat(tab3[i]);Delay100ms(); i++ ;}
z++;
lcd_pos(z,j); i = 0;
while(tab4[i] != '\0') {lcd_wdat(tab4[i]);Delay100ms(); i++ ;}
while(1);
} |
-
|