我爱嵌入式系统

当前位置:首页 > 软件天地 > 业内资讯 > 详细内容
单片机控制液晶显示器1602
发布时间:2009/11/7  阅读次数:998  字体大小: 【】 【】【
/*
程序效果:单片机控制液晶显示器1602显示字母数字,用户自行更改io
程序版权:http://www.51hei.com
*/
#include<reg52.h> //头文件
#define uchar unsigned char //宏定义
#define uint   unsigned int
uchar code table[]="51HEI XING XING " ;   //显示的字母
uchar code table1[]="51HEI MCU  XUE YUAU" ;
sbit lcdrs=P1^0; //寄存器选择引脚
sbit lcdwr=P1^1; //读写引脚
sbit lcde=P1^2;   //片选引脚
void delay(uchar x) //延时子函数
{
    uchar i,j;
    for(i=x;i>0;i--)
       for(j=110;j>0;j--);
}
void write_com(uchar com) //写指令子函数  
{                           //根据1602液晶显示器协议编写
    P2=com;    
   lcdrs=0;
    lcdwr=0;
    delay(5);
    lcde=0;
    delay(5);
    lcde=1;
}
void write_dat(uchar dat) //写数据子函数
{
    P2=dat;
    lcdrs=1;
    lcdwr=0;
    delay(5);
    lcde=0;
    delay(5);
    lcde=1;
}
void init()       //初始化子函数
{
    write_com(0x01); //清屏
    write_com(0x3f); //功能设置
    write_com(0x0d); //显示控制
    write_com(0x06); //输入方式设置
}
void main()
{
    uchar i;     //定义局部变量
    init();
    write_com(0x80+0x02+0x10); //指针的位置
    for(i=0;i<15;i++)       //显示
    {
       write_dat(table[i]);
       delay(50);       //延时,用于调节速度不匹配
    }
    write_com(0x80+0x40+0x10);
    for(i=0;i<16;i++)
    {
       write_dat(table1[i]);
       delay(50);
    }
    for(i=0;i<16;i++)
    {
       write_com(0x18);
       delay(50);
    }
    while(1);
}
我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!

51RTOS.com 版权所有  

Copyright 20006-2009 我爱嵌入式 ( 51RTOS.com ) All rights reserved 沪ICP备09080633号