程序如下:
#include
#define LCD_DB P0
sbit LCD_RS=P2^2;
sbit LCD_RW=P2^3;
sbit LCD_E=P2^4;
//函数定义
#define uchar unsigned char
#define uint unsigned int
void LCD_init(void); //初始化
void LCD_write_command(uchar command); //写指令
void LCD_write_data(uchar dat); //写数据
void LCD_disp_char(uchar x,uchar y,uchar dat); //显示位置,X(0-16),y(1-2)
void delay_n40us(uint n); //延时
void LCD_init(void) //初始化
{
LCD_write_command(0x01); //清除屏幕显示
LCD_write_command(0x3c); //设置8位格式,2行,5x7?
LCD_write_command(0x0c); //整体显示,关光标,不闪烁?
LCD_write_command(0x06); //设定输入方式,增量不移位
delay_n40us(100);
}
void LCD_write_command(uchar dat) //写指令
{
LCD_DB=dat;
LCD_RS=0; //指令
LCD_RW=0; //写入
LCD_E=1; //允许
LCD_E=0;
delay_n40us(5);
}
void LCD_write_data(uchar dat) //写数据
{
LCD_DB=dat;
LCD_RS=1; //数据
LCD_RW=0; //写入
LCD_E=1; //允许
LCD_E=0;
delay_n40us(5);
}
void LCD_disp_char(uchar x,uchar y,uchar dat) //显示一个字符
{
uchar address;
if(y==0)
address=0x80+x;
else
address=0xc0+x;
LCD_write_command(address);
LCD_write_data(dat);
}
void delay_n40us(uint n) //延时函数
{
uchar j;
for(n=n;n>0;n--)
for(j=0;j<2;j++)
;
}
//主函数
void main(void)
{
char a;
char b[16]="123456789abcdeef";
char c[16]="ABCDEFGHIGKLMNOP";
delay_n40us(200);
LCD_init();
for(a=0;a<16;a++)
{
LCD_disp_char(a,0,b[a]);
LCD_disp_char(a,1,c[a]);
}
while(1);
}
关键字:1602液晶 测试程序 REGX52
引用地址:
1602液晶测试程序1
推荐阅读最新更新时间:2024-11-07 06:17
LPC2103学习板-按键测试程序
/**************ARM7(LPC2103)练习程序**************************/ /*****File Function : KEY test *****/ /*****Program Author : ClimberWin *****/ /*****MCU : LPC2103F 外部11.0592M晶振 *****/ /*****Compile Date : 2011/04/01 *****/ /*****Edition Info : V1.0 *
[单片机]
51单片机 1602液晶显示静态字符
#include reg52.h #define LCD1602_DB P0 typedef unsigned char uchar; typedef unsigned int uint; typedef unsigned long ulong; sbit LCD1602_RS = P1^0; sbit LCD1602_RW = P1^1; sbit LCD1602_E = P1^5; void initLCD1602(); void LCDShowStr(uchar i, uchar j, uchar * pCh); void LCDWaitRdy(); void
[单片机]
C51 液晶显示1602模块
代码: #include reg52.h #define uchar unsigned char #define uint unsigned int uchar num; uint i,j; sbit rs=P3^5; 定义液晶数据命令选择端 sbit wr=P3^6; 定义液晶读写选择端 sbit lcden=P3^4; 定义液晶使能选择端 sbit dula=P2^6; sbit wela=P2^7; uchar code table1 = study every day ; uchar code table2 = thanks for reading ; void delay(uint x) { fo
[单片机]
51单片机驱动1602液晶(4线串行)
/*单片机I/O口使单片机资源的重要组成部分,也是用来扩展外围设备的必选资源,尽可能以更少的I/O口实现更多的功能是单片机工程师追求的目标,现在的一些串行器件也为这一目标的实现添加了更多的可能性,比如I2C总线,MAXIM力推的1-WIRE等等,都可以以很少的I/O口实现更多的功能,当然这是以降低一定的速度为代价的。 废话少说,进入正题。 显示器件多见的是LED数码管,LCD液晶屏等。一般的数码管成本低廉,在显示内容要求不多的时候适用;LCD液晶屏以更多的显示空间得到了许多人的爱好,不过成本上要高的多(市场价在20元左右),本文以LCD1602为例说明如何驱动液晶屏。 LCD1602外接的控制接口有RS,R/W,E;数据接口为D
[单片机]
STC12C4052 PCA用于16位定时器测试程序
//STC12C4052 PCA用于16位定时器测试程序 //2009/11/21 liweiqiang #include stc12c4052ad.h sbit P37=P3^7; void main(void) { CMOD=0x00; //PCA =fosc/12计数模式 CL=0; //清PCA计数低位 CH=0; //清PCA计数高位 CCAP0H=0xff;//置比较高位值 CCAP0L=0xff;//置比较高低值 EA=1;//开总中断 EPCA_LVD=1;//开PCA中断 CR=1;//启动PCA计数 CCAPM0=0x49;//PCA_0模块为16位定时模式,并开中断 while(1);//此处循环
[单片机]
S3C2440 测试程序(三) ADC实验
该实验比较简单,就是使用了S3C2440上的ADC硬件接口AIN2。 下面看下设置。 根据Datasheet,A/D转换的频率为50MHz/(prescaler+1) eg. A/D converter freq. = 50MHz/(49+1) = 1MHz Conversion time = 1/(1MHz / 5cycles) = 1/200KHz = 5 us 看下程序,我们使用了2.5MHz,所有prescaler=19 代码如下: prescaler=19; ADCCON=(1 14)|(prescaler 6)|(2 3); 注: bit :Read only, 0--A/D conversion in
[单片机]
msp430g2553-串口调试测试程序
/****************************************************************************** 本程序是单片机 MSP430G2553 P1.2----------------------------UCA0TXD 串口发送端 P1.1----------------------------UCA0RXD 串口接受端 P1.0---------------------------- 红灯指示 P1.6---------------------------- 绿灯指示 利用主辅时钟为 1MHZ ,串口波特率 9600 , 波特率: 1000000/9600=104 UC
[单片机]
51单片机驱动1602液晶显示器c程序
/* 程序效果:单片机控制液晶显示器1602显示字母数字,用户自行更改io 程序版权:http://www.51hei.com */ #include reg52.h //头文件 #define uchar unsigned char //宏定义 #define uint unsigned int uchar code table ="51HEI XING XING " ; //显示的字母 uchar code table1 ="51HEI MCU XUE YUAU" ; sbit lcdrs=P1^0; //寄存器选择引脚 sbit lcdwr=P1^1; //读写引脚 sbit lcde=P1^2; //片选引脚 void de
[单片机]