小项目:51单片机驱动 LCD1602液晶显示系统 PROTEUS仿真及源代码 LCD指令解释

您所在的位置:网站首页 51单片机最小系统 小项目:51单片机驱动 LCD1602液晶显示系统 PROTEUS仿真及源代码 LCD指令解释

小项目:51单片机驱动 LCD1602液晶显示系统 PROTEUS仿真及源代码 LCD指令解释

2024-07-06 18:06| 来源: 网络整理| 查看: 265

51单片机驱动 LCD1602液晶显示系统 PROTEUS仿真及源代码 设计

废话不多说先上实物图 LCD1602+51单片机最小系统应用仿真及制作 在这里插入图片描述 在这里插入图片描述 好了,接下来正式进入制作环节:

第一步:仿真

绘制好原理图,仿真时单片机最小系统只放一个单片机就可以了,但实际电路中需要加上电源模块、复位模块。如下图: 在这里插入图片描述 原理图文件请在附件中找。

原理图绘制好后,编写代码并生成hex文件。参考代码如下:

/*功能/ /使用外部中断INTO改变LED状态,并且用1602显示出其状态/ #include #include #define uint unsigned int #define uchar unsigned char uchar code table[]=" HELLO 1602 "; uchar code table0[]="1602 TEST "; uchar code table1[]="RESULT: "; //空格是写到LCD了,即空格也是内容 uchar code table2[]=“OK!”; uchar code table3[]=“liang”; uchar code table4[]=“mie”; uchar num; sbit led=P1^7; sbit lcden=P2^0; //液晶使能端 sbit lcdrs=P2^2; //液晶数据命令选择端选择写数据还是写命令 void delay(uint z) // 延时函数 { uint i,j; for(i=z;i>0;i–) for(j=110;j>0;j–); } void write_com(uchar com) //写入 { lcdrs=0; //LCD 选择输入命令 P0=com; //向P0 口输入命令 39-32端口 delay(5); //延时 lcden=1; //打开LCD 使能 delay(5); //一个高脉冲 lcden=0; //关闭LCD 使能 } void write_data(uchar date) { lcdrs=1; //设置为输入数据 P0=date; //将数据赋给P0 口 delay(5); //延时 lcden=1; //置高 delay(5); //高脉冲 lcden=0; //置低完成高脉冲 } void init() //LED 初始化 { lcden=0; write_com(0x38);//设置16x2 显示5x7 点阵,8 位数据接口 write_com(0x0c); //设置开始显示不显示光标 (指令4) write_com(0x06); //写一个字符后地址指针加1 (指令3) write_com(0x01); //显示清零数据指针清零 (指令1) }

void display(unsigned char *p)//按指针 地址写入数据 { while(*p!=’\0’) { write_data(*p); //写数据 p++; delay(1); } }

void main() { TCON=0x01; //设置中断为INTO IE=0x81; led=0; init(); write_com(0x80); //将数据指针第一行第一个字处, display(table); //调用函数的方式写入数据 delay(800); write_com(0x80); //将数据指针第一行第一个字处, display(table0); //调用函数的方式写入数据 write_com(0x80+0x40); //定义指针位置 将数据指针第二行第一个字处 for(num=0;num



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3