C51---LCD1602显示一行字符
创始人
2024-06-02 18:40:04
0

1.器件:C51、LCD1602

2.code:

#include "reg52.h"
#include "intrins.h"
#define     databuffer  P0//定义8位数据线,Po端口组

sbit        RS = P1^0;
sbit        RW = P1^1;
sbit        EN = P1^4;

void check_busy()
{
    char tmp = 0x80;
    databuffer = 0x80;
    
    while (tmp & 0x80 ){
        RS  = 0;
        RW  = 1;
        EN  = 0;
        _nop_();
        EN  = 1;
        _nop_();
        _nop_();
    tmp = databuffer;
        EN = 0;
        _nop_();
    }

}

void Write_Cmd_Func(char cmd)
{
    check_busy();
        RS  = 0;
        RW  = 0;
    
        EN  = 0;
        _nop_();
    databuffer = cmd;
        EN  = 1;
        _nop_();
        _nop_();
        EN = 0;
        _nop_();
    
}

void Write_Data_Func(char dataShow)
{
        check_busy();
        RS  = 1;
        RW  = 0;
    
        EN  = 0;
        _nop_(); 
    databuffer = dataShow;
        _nop_();
        EN  = 1; 
        _nop_();
        _nop_();
        EN = 0;
        _nop_();

}

void Delay15ms()        //@11.0592MHz
{
    unsigned char i, j;

    i = 27;
    j = 226;
    do
    {
        while (--j);
    } while (--i);
}

void Delay5ms()        //@11.0592MHz
{
    unsigned char i, j;
    i = 9;
    j = 244;
    do
    {
        while (--j);
    } while (--i);
}


void LCD1602_INIT()
{
     //延时15ms
    Delay15ms();
    //写指令38H(不检测忙信号)
    Write_Cmd_Func(0x38);
    //延时5ms
    Delay5ms();
    //以后每次写指令,读/写数据操作均需要检测忙信号
    //写指令38H,显示模式设置
    Write_Cmd_Func(0x38);
    //写指令08H,显示关闭
    Write_Cmd_Func(0x08);
    //写指令01H,显示清屏
    Write_Cmd_Func(0x01);
    //写指令06H,显示光标移动设置
    Write_Cmd_Func(0x06);
    //写指令0CH,显示开光标设置
    Write_Cmd_Func(0x0C);
}

void LCD1602_showline(char row,char col,char *string)
{
         switch(row){
            
             case 1:
             Write_Cmd_Func(0x80+col);
                while(*string){
                            Write_Data_Func(*string);
                            string++;
                }
                break;
                
              case 2:
                Write_Cmd_Func(0x80+0x40+col); 
                while(*string){
                            Write_Data_Func(*string);
                            string++;
                }
                break;
    }
}

void main()
{
    char position = 0x80+0x05;
    //char dataShow = 'C';
    LCD1602_INIT();
    LCD1602_showline(1,5,"NO.1");
    LCD1602_showline(2,0,"Tayminy Fuo");
    //Write_Cmd_Func(position);//选择要显示的地址
    //Write_Data_Func(dataShow);//发送要显示的字符
}
    
    
     
    
    
    
    
    
    
    
    

3.效果

 

 

相关内容

热门资讯

敦煌曲子戏:让千年文脉奏响时代...   敦煌,这座沉淀着千年文明的丝路重镇,不仅以莫高窟的壁画、鸣沙山的驼铃诉说着历史沧桑,更在当代文艺...
大学生打零工居然成为4家公司高... 转自:北京时间 【#大学生打零工居然成为4家公司高管#】...
店员周末忙哭,茶百道股价今天大...   “太疯狂了,全国人民都在熬夜点外卖。喝不完,根本喝不完。”不少网友感叹。与之相呼应的是奶茶店的店...
夏厦精密:公司目前主要应用于机... 每经AI快讯,有投资者在投资者互动平台提问:2025年机器人结构件订单是否覆盖全年产能 60%?与客...
杨昆会见国家电力投资集团党组成... (转自:电力国际汇epintl)  7月4日,中国电力企业联合会党委书记、常务副理事长杨昆在本部会见...
18岁男生庆祝与女友同居,表演... 近日,澳大利亚昆士兰州,18岁少年桑尼·布伦德尔在庆祝与女友开始同居生活时,因表演后空翻失误导致头部...
焦点访谈丨跨区域招聘、开设微专... 本文转自【央视新闻客户端】2025年全国高校毕业生预计达1222万人。当年年刷新的毕业生数字和经济转...
绿联推出“充电宝以旧换新”计划... 充电宝品牌绿联7月6日在官方微博发布消息称,即日起至8月5日,绿联推出“充电宝以旧换新计划”,持20...
盘面低开低走 今日广西现货市场... YNTW.COM 今日(7月7日)早盘郑商所白糖期货低开低走,上午主力2509合约收盘价5744元/...
“声动”二十四节气|小暑:汗滴... 05:23万物渐盛暑气蒸腾我们迎来夏季的第五个节气小暑小暑大暑上蒸下煮高温高湿天气增多公众需注意防暑...