本帖最后由 liquidlin 于 2019-6-15 08:59 編輯
#include <REGX51.H>
#include <string.h>
#define uint unsigned int
#define uchar unsigned char
sbit RS=P2^0;
sbit RW=P2^1;
sbit EN=P2^2;
unsigned char i, x=0;c;
unsigned char xuehao1[]="LGL1605230139";
unsigned char xuehao2[]="ZCY1605230140";
unsigned char xuehao3[]="SGJ1605230126";
unsigned char xuehao4[]="XWQ1605230124";
unsigned char num[]={0X30,0X31,0X32,0X33,0X34,0X35,0X36,0X37,0X38,0X39};
void delay(int n)
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<200;j++);
}
void timer0()
{
TMOD=1;
TH0=(65536-9216)/256;
TL0=(65536-9216)%256;
EA=1;
ET0=1;
TR0=1;
}
void LCD1602_write_cmd(unsigned char cmd)
{
P0=cmd;
RS=0;
RW=0;
EN=1;
EN=0;
delay(10);
}
void LCD1602_write_Data(unsigned char Data)
{
P0=Data;
RS=1;
RW=0;
EN=1;
EN=0;
delay(10);
}
void LCD1602_init()
{
LCD1602_write_cmd(0x38);
LCD1602_write_cmd(0x0F);
LCD1602_write_cmd(0x06);
LCD1602_write_cmd(0x01);
}
void disp_LCD(uchar c)
{
LCD1602_write_cmd(0xC0);
LCD1602_write_Data(num[c/10]);
LCD1602_write_cmd(0XC1);
LCD1602_write_Data(num[c%10]);
}
void main()
{
LCD1602_init();
LCD1602_write_cmd(0X80);
for(i=0;i<strlen(xuehao1);i++)
{
LCD1602_write_Data(xuehao1);
}
LCD1602_write_cmd(0X80);
for(i=0;i<strlen(xuehao2);i++)
{
LCD1602_write_Data(xuehao2);
}
LCD1602_write_cmd(0X80);
for(i=0;i<strlen(xuehao3);i++)
{
LCD1602_write_Data(xuehao3);
}
LCD1602_write_cmd(0X80);
for(i=0;i<strlen(xuehao4);i++)
{
LCD1602_write_Data(xuehao4);
}
timer0();
while(1)
{
c=40;
disp_LCD(c);
if(x==100)
{
x=0;
c--;
}
}
}
void timer() interrupt 1
{
TH0=(65536-9216)/256;
TL0=(65536-9216)%256;
x++;
}
|