|
LCD1602数码管显示 下面程序分为三个部分 8管位移 简单方便学习 希望能给大家一点帮助 还有模拟电路图赠上
#ifndef _LCD_H_
#define _LCD_H_
#include<reg51.h>
#ifndef uint
#define uint unsigned int
#endif
#ifndef uchar
#define uchar unsigned char
#endif
#define LCD1602_DATAPIN P1
sbit LCD1602_E=P2^4;
sbit LCD1602_RS=P2^5;
sbit LCD1602_RW=P2^6;
void LCD1602_WriteCom(uint com);
void LCD1602_WriteData(uint dat);
void Delay(uint i);
void LCDInit();
#endif
#include<lcd.h>
typedef unsigned char u8;
typedef unsigned int u16;
void Delay(uint i)
{
uint z,k;
for(z=0;z<i;z++)
for(k=0;k<200;k++);
}
void LCD1602_WriteCom(uint com)
{
LCD1602_E=0;
LCD1602_RS=0;
LCD1602_RW=0;
LCD1602_DATAPIN=com;
Delay(1);
LCD1602_E=1;
LCD1602_Delay(5);
LCD1602_E=0;
}
void LCD1602_WriteData(uint dat)
{
LCD1602_E=0;
LCD1602_RW=0;
LCD1602_RE=1;
LCD1602_DATAPIN=dat;
Delay(1);
LCD1602_E=1;
LCD1602_Delay(5);
LCD1602_E=0;
}
void LCDInit()
{
LCD1602_WriteCom(0x0d);
LCD1602_WriteCom(0x1c);
LCD1602_WriteCom(0x3c);
LCD1602_WriteCom(0x01);
LCD1602_WriteCom(0x02);
}
#include<reg51.h>
#include<lcd.h>
typedef unsigned char u8;
u8 code temp[]="Jiangrui kang";
void main(void)
{
u8 i;
LCDInit();
for(i=0;i<16;i++)
{
LCD1602_WriteData(temp[ i]);
}
while(1);
}
|
|