yejin.c
来自「这是一段开始学单片机时写的LCD程序」· C语言 代码 · 共 106 行
C
106 行
#include<reg51.h> //包含常用头文件
#include<stdio.h>
#include<intrins.h>
#include<absacc.h>
#define uchar unsigned char
void LCD_INIT(void);
void LCD_DISPLAY_STR(uchar x,uchar y,char *DATA);
void LCD_CLR(uchar y);
int cnt;
main()
{
TMOD=0X22;
TH0=0X06;
TL0=0X06;
TR0=1;
ET0=1;
EA=1;
LCD_INIT();
LCD_DISPLAY_STR(1,1,PLAY_DESIGNER);
LCD_DISPLAY_STR(1,2,PLAY_NAME);
while(1);
}
void timer0(void) interrupt 1 using 0
{
cnt++;
if(cnt==8000)
{
LCD_CLR(1);
LCD_CLR(2);
LCD_DISPLAY_STR(1,1,PLAY_TEL);
LCD_DISPLAY_STR(1,2,PLAY_CODE_TEL);
}
if(cnt==16000)
{
LCD_CLR(1);
LCD_CLR(2);
LCD_DISPLAY_STR(1,1,PLAY_EMAIN);
LCD_DISPLAY_STR(1,2,PLAY_EMAIN1);
}
if(cnt==24000)
{
cnt=0;
LCD_CLR(1);
LCD_CLR(2);
LCD_DISPLAY_STR(1,1,PLAY_DESIGNER);
LCD_DISPLAY_STR(1,2,PLAY_NAME);
}
}
void LCD_DISPLAY_STR(uchar x,uchar y,char *DATA)
{
if(y==1)
{
if(x<(16+1)) //判断显示位置是否超出第一行
{
LCD_SEND_COMMAND(LCD_LINE1-1+x); //发送命令
for(;x<(16+1)&&*DATA!='\0';x++)
{
LCD_SEND_DATA(*DATA++); //发送数据
}
if(*DATA!='\0') //判断是否发送完毕
{
x=1;
y=2; //未发送完毕转第二行显示
}
}
}
if(y==2)
{
LCD_SEND_COMMAND(LCD_LINE2-1+x);
for(;x<(16+1)&&*DATA!='\0';x++)
{
LCD_SEND_DATA(*DATA++);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?