手把手教你单片机——1602显示

目的:通过protues,1602显示welcome

代码

#include"reg51.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit lcden=P2^0;    //使能控制
sbit lcdrs=P2^1;    //数据指令端 1为数据;0为指令

void delay(u16 i)   //延时函数1ms
{
	u16 j;
	while(i--);
		for(j=0;j<110;j--);
}

void lcd_com(u8 com)  //指令函数
{
	lcdrs=0;         //指令端
	P1=com;           
	delay(5);                  
	lcd_en=1;        //高脉冲
	delay(5);               
	lcd_en=0;
}

void lcd_write(u8 date)   //数据函数
{
	lcdrs=1;              //数据端
	P1=date;           
	delay(5);                  
	lcd_en=1;        //高脉冲
	delay(5);               
	lcd_en=0;
}

void lcd_init()            //初始化函数
{
	lcden=0;               
	lcd_com(0x38);         //开启显示 5×7
	lcd_com(0x0c);         //不显示光标
	lcd_com(0x06);         //地址指针加1
	lcd_com(0x80);        
	lcd_write(0x57);      
	delay(5);
	lcd_write(0x45);       
	delay(5);
	lcd_write(0x4c);
	delay(5);
	lcd_write(0x43);
	delay(5);
	lcd_write(0x4f);
	delay(5);
	lcd_write(0x4d);
	delay(5);
	lcd_write(0x45);
	delay(5);
	
}
void main()
{
	lcd_init();
	while(1);
}

仿真图

在这里插入图片描述

元器件

AT89C51(AT89C52)

RES(电阻,排阻)

LMO16L(1602)

GROUND(接地)

POWER(电源)

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值