c语言通过89C51驱动1602液晶显示(入门级别)
2013-11-09 13:20
316 查看
工具proteus,keil
步骤:
1.画好电路图
2.在指令模式下,设置好显示模式以及光标位置
3.在写数据模式下,向1602写入显示字符(1602只能显示数字和字符)
电路图
测试效果
说明:最开始我用的是P0口,控制rs,rw和en,但好像P0口要特殊一点。有点不行,换了P3口。还要研究一下P0口。
步骤:
1.画好电路图
2.在指令模式下,设置好显示模式以及光标位置
3.在写数据模式下,向1602写入显示字符(1602只能显示数字和字符)
电路图
#include <REGX51.H> #define uchar unsigned char #define uint unsigned int void init(); void write_cmd(uchar cmd); void write_data(uchar input); void delay(uchar time_delay); uchar table_wel[] = "hello world!"; uchar table_name[] = "i am gxf!"; sbit lcdrs = P3^0; sbit lcdrw = P3^1; sbit lcden = P3^2; void main() { uchar i = 0; init(); //write_data('g'); for(;i < 12;i ++) { write_data(table_wel[i]); } write_cmd(0xc0); // delay(5); for(i = 0; i < 9; i++) { write_data(table_name[i]); } while(1); } void init() { lcdrs = 0;//命令选择段 lcdrw = 0;//写命令 write_cmd(0x38); write_cmd(0x0f); write_cmd(0x06); write_cmd(0x80);//从第一个位置开始显示 } void write_cmd(uchar cmd) { lcdrs = 0;//命令选择段 lcdrw = 0;//写命令 P2 = cmd;//设置显示模式 delay(5); lcden = 1; delay(5);//延时5MS形成高脉冲 lcden = 0; } void write_data(uchar input) { lcdrs = 1;//写数据模式 lcdrw = 0;//写数据 P2 = input;//设置显示模式 delay(5); lcden = 1; delay(5);//延时5MS形成高脉冲 lcden = 0; } //软件延时 void delay(uchar time_delay) { uint x,y; for(x = time_delay; x > 0; x --) for(y = 110; y > 0 ; y--); }
测试效果
说明:最开始我用的是P0口,控制rs,rw和en,但好像P0口要特殊一点。有点不行,换了P3口。还要研究一下P0口。
相关文章推荐
- 1602液晶显示程序(C语言详细解说)
- 51单片机入门之六:1602液晶显示
- fpga驱动1602液晶显示字符
- 1602液晶移动显示
- PCF8591 1602液晶显示
- 单片机-1602液晶基本显示程序
- 单片机的1602液晶显示
- 1602液晶按键输入显示
- 通过swap代码分析C语言指针在汇编级别的实现
- 领域驱动设计系列(1)通过现实例子显示领域驱动设计的威力
- (一个代码学会c语言操作数据库)linux上通过c语言操作数据库实现基本的学生信息管理系统(增、删、查、改‘显示)
- 领域驱动设计系列(1)通过现实例子显示领域驱动设计的威力
- 领域驱动设计系列文章(1)——通过现实例子显示领域驱动设计的威力
- 51单片机配合超声波测距以及用1602液晶进行显示
- 领域驱动设计系列文章(1)——通过现实例子显示领域驱动设计的威力
- 1602液晶显示
- 树莓派GPIO入门05-驱动数码管显示数字(嵌入式很好的链接平台,见解深刻)
- linux设备驱动开发范例,linux驱动例子,Linux设备驱动详解范例example 宋宝华版的光盘驱动源码,实测编译通过入门学习用
- mybatis学习-入门(4)-一个完整的web例子,通过json将字符串传递给前台,然后显示出来
- 树莓派进阶之路 (016) - 通过595驱动4位LED显示系统时间