找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1300|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于At89c52 的lcd顯示(菜鳥)作驗(yàn)證

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:315810 發(fā)表于 2018-4-27 17:33 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include <reg52.h>
#include<intrins.h>

sbit RS = P3 ^ 0;//?? H ?? L
sbit RW = P3 ^ 1;//? H ? L
sbit E  = P3 ^ 2;//??? H ??
#define DATA P2

void delayms(char ms);
char is_busy();
void write_cmd(unsigned char cmd);
void write_data(unsigned char dat);
void pos (unsigned char pos);

void main()
{

    write_cmd(0x38);/
    delayms(1);
    write_cmd(0x0c)
    delayms(1);
    write_cmd(0x06)
    delayms(1);
    write_cmd(0x01)
    delayms(1);

    pos (0);
    write_data('1');
    write_data('2');
    write_data('3');
    write_data('4');
    write_data('5');
    write_data('6');
    write_data('7');
    write_data('8');
    write_data('9');
    write_data('0');

    pos (0x40);

    write_data('1');
    write_data('2');
    write_data('3');
    write_data('4');
    write_data('5');

    while(1);
}

void pos (unsigned char pos)
{

    write_cmd(pos|0x80);
}

void write_data(unsigned char dat)
{
    while(is_busy());
    RS = 1;
    RW = 0;
    E  = 0;
    //_nop_();
    DATA = dat;
    _nop_();
    E = 1
    E = 0;
}

void write_cmd(unsigned char cmd)
{
    while(is_busy());
    RS = 0;
    RW = 0;
    E  = 0;
    //_nop_();
    DATA = cmd;
    _nop_();
    E = 1
    E = 0;
}

char is_busy()
{
    int a=0;
    char result;
    RS = 0
    RW = 1;//?
    //_nop_();
    E  = 1;//??
    _nop_();
    result = (1<<7 & DATA)
    E = 0;//????
    return result;
}

void delayms(char ms)        //@12.000MHz
{
    while(ms--)
    {
        unsigned char i, j;
        i = 2;
        j = 239;
        do
        {
            while (--j);
        } while (--i);
    }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表