1602字符显示keil+protues详细讲解及说明
源程序:
- #include<reg52.h>
- typedef unsigned int u16;
- typedef unsigned char u8;
- #define DATA P0 //宏定义,相当于 define π 3.14,这里没有等号。
- sbit rs = P2^1; //rs,sw,en;可以理解成液晶的几个功能开关,无非就只有两种状态
- sbit rw = P1^5; //为0或1,对应的功能详细看使用手册。这里是把液晶的
- sbit en = P1^6; //这三个开关与单片机引脚定义为链接状态,以便单片机控制液晶。
- void delay(u16 num)
- {
- u16 x,y;
- for (x=num;x>0;x--)
- for(y=110;y>0;y--);
- }
- void write_cmd(u8 cmd) //写指令
- {
- rs=0; //选择指令寄存器
- rw=0; //进行写操作
- DATA = cmd; //把指令传给单片机
- delay(5);
- en=1;
- delay(5);
- en=0; //en为使能端,当en由高电平跳到底电平时,液晶模块执行命令。
- }
- void write_data(u8 dat)
- {
- rs=1; //选择数据寄存器
- rw=0; //进行写操作
- DATA = dat; // 把数据传给单片机
- delay(5);
- en=1;
- delay(5);
- en=0;
- }
- void lcd_init() //初始化
- {
- write_cmd(0x02); //归为
- write_cmd(0x06); //设置输入方式
- write_cmd(0x0e); //控制显示开关
- write_cmd(0x38); //功能设置
- write_cmd(0x01); //清屏
- }
- void main()
- {
- rw=0;
- rs=0;
- en=0;
- lcd_init();
- write_cmd(0x80); //0x80,(0xc0)为在液晶上显示的地址;80为第一排显示,c0为第二排显示。
- write_data('x'); //显示的数据
- write_data('i');
- write_data('a');
- write_data('o');
- write_data(' ');
- write_data('p');
- write_data('e');
- write_data('n');
- write_data('g');
- write_data(' ');
- write_data('y');
- write_data('o');
- write_data('u');
- write_cmd(0xc0); //第二排显示
- write_data('t'); //显示的数据
- while(1);
- }
复制代码
仿真工程文件及完整源码下载:
1602字符显示.rar
(45.29 KB, 下载次数: 31)
|