求一个1602液晶显示最简单的汇编程序(在屏上显示一个数字就行了,过程完整)

求一个1602液晶显示最简单的汇编程序(在屏上显示一个数字就行了,过程完整),第1张

; 1、LCD第一行显示: >

#include<reg52h>

#include<intrinsh>

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long

uchar code table[]="1602";

sbit key1=P1^0;

sbit key2=P1^1;

sbit key3=P1^2;

sbit key4=P1^3;

sbit rs=P2^0;

sbit rw=P2^1;

sbit en=P2^2;

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void write_com(uchar com)

{

rs=0;

rw=0;

en=0;

P0=com;

delay(5);

en=1;

delay(5);

en=0;

}

void write_dat(uchar dat)

{

rs=1;

rw=0;

en=0;

P0=dat;

delay(5);

en=1;

delay(5);

en=0;

}

void init()

{

uchar i;

write_com(0x38);

write_com(0x0c);

write_com(0x06);

write_com(0x01);

write_com(0x86);

for(i=0;i<4;i++)

{

write_dat(table[i]);

delay(5);

}

}

void main()

{

init();

while(1)

{

if(key1==0)

{

delay(10);

if(key1==0)

{

while(key1==0);

write_com(0x86);

write_com(0x0f);

}

}

if(key2==0)

{

delay(10);

if(key2==0)

{

while(key2==0);

write_com(0x87);

write_com(0x0f);

}

}

if(key3==0)

{

delay(10);

if(key3==0)

{

while(key3==0);

write_com(0x88);

write_com(0x0f);

}

}

if(key4==0)

{

delay(10);

if(key4==0)

{

while(key4==0);

write_com(0x89);

write_com(0x0f);

}

}

}

}

#include "reg52h"

sbit LED=P1^0;//LED锁存器

sbit SEG=P1^1;//数码管段选锁存器

sbit DIG=P1^2;//数码管位选锁存器

unsigned char t;

sbit LCDRS=P2^7;//数据指令控制

sbit LCDRW=P2^6;//读写控制

sbit LCDEN=P2^5;//液晶屏使能控制

//延时函数,延时n1ms

void delay(unsigned char n)

{

int i,j;

for (i=0; i<n; i++)

for (j=0; j<100; j++)

;

}

//写命令

void Write_Cmd(unsigned char C)

{

LCDEN=1;//使能端,由高电平跳变成低电平时,液晶屏模块执行命令

LCDRS=0;//指令寄存器选择

P0=C;

delay(5);

LCDEN=0;

}

//写数据

void Write_Data(unsigned char D)

{

LCDEN=1;//使能端,由高电平跳变成低电平时,液晶屏模块执行命令

LCDRS=1;//选择数据寄存器

P0=D;

delay(5);

LCDEN=0;

}

//LCD初始化

void LCD_Init()

{

LCDRS=0;//指令寄存器选择

Write_Cmd(0x01);//清屏

Write_Cmd(0x38);//功能设置8位双行显示57点阵

Write_Cmd(0x0F);//开关显示设置

Write_Cmd(0x06);//输入方式设置,光标从左向右移动,内容不移动

}

void main()

{

unsigned char Code1[]="I LOVE MCU!";

unsigned char m;

//LED,数码管锁存器片选设置

LED=0;

DUAN=0;

WEI=0;

LCDRW=0;//写选择

LCD_Init();

Write_Cmd(0x80+0x01);//写入显示缓冲区起始地址为1行2列

for(m=0;m<11;m++)

{

Write_Data(Code1[m]);

delay(3);

}

while (1)

;

}//end of main

以上就是关于求一个1602液晶显示最简单的汇编程序(在屏上显示一个数字就行了,过程完整)全部的内容,包括:求一个1602液晶显示最简单的汇编程序(在屏上显示一个数字就行了,过程完整)、用于1602液晶屏的C语言程序、51单片机液晶1602的C程序谁有,给个简单的显示一个字符A的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9704336.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存