久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3415|回復: 0
收起左側

51單片機的1602lcd 庫函數、仿真、源碼

[復制鏈接]
ID:322996 發表于 2018-5-6 11:06 | 顯示全部樓層 |閱讀模式
這個庫很容易看懂,適合初學1602的同學
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
0.png
C++ Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181


/*----------------------------------------
    File:   1602cd.c
    Date:Loser007       May 6, 2018 11:11

----------------------------------------*/


#include <AT89X52.h>
#include "LCD1602.h"

unsigned  char code str1[] = "I love 51hei";
unsigned  char code str2[] = "www.zg4o1577.cn/bbs/";
void main(void)
{
    unsigned char l, r;
    LCD_Init();
    LCD_XY_Show(0, 0, str1);
    LCD_XY_Show(1, 0, str2);
    while(1)
    {
        for(l = 0; l < 10; l++)
        {
            LCD_Flash_Left();
            Delay(500);
        }
        for (r = 0; r < 10; r++)
        {
            LCD_Flash_Right();
            Delay(500);
        }
        Delay(2000);
    }
}





/*----------------------------------------
    File:   LCD1602.H
    Date:Loser007       May 6, 2018 10:40

----------------------------------------*/


#ifndef __LCD1602_H__
#define __LCD1602_H__
#pragma SAVE
#pragma REGPARMS


sbit RS = P2 ^ 7;
sbit RW = P2 ^ 6;
sbit EN = P2 ^ 5;

extern void LCD_Delay();
extern void LCD_W_C();      //Wirte Command IOI
extern void LCD_W_D();      //Wirte Data IO
extern void LCD_EN();       //LCD Enable
extern void LCD_DATA_IO();  //DAta
extern void LCD_Write_Command();    //Wirte Command
extern void LCD_Write_DATA();       //Wirte Data
extern void LCD_Write_Custom();     //Custom Character
extern void LCD_Set_XY  ();         //Set Cursor
extern void LCD_Custom_Show();      //to Show Custom Character
extern void LCD_Clear();        //Clear screen
extern void LCD_Init();         //init
extern void LCD_Flash();        //
extern void Delay();            //old
extern void LCD_Flash_Right();  // >>
extern void LCD_Flash_Left();   // <<

void Delay(unsigned int n)      //old
{
    unsigned int i, j;
    for (i = n; i > 0; i--)
        for (j = 114; j > 0; j--);
}
void LCD_Delay()
{
    unsigned int i, j;
    for (i = 50; i > 0; i--)
        for (j = 114; j > 0; j--);
}
void LCD_W_C()
{
    RS = 0;
    RW = 0;
}
void LCD_W_D()
{
    RS = 1;
    RW = 0;
}
void LCD_EN()
{
    EN = 1;
    LCD_Delay();
    EN = 0;
    LCD_Delay();
    EN = 1;
}
void LCD_DATA_IO(unsigned char DATA_IO)
{
    P0 = DATA_IO;
}
void LCD_Write_Command(unsigned char CMD)
{
    LCD_W_C();
    LCD_DATA_IO(CMD);
    LCD_EN();
}
void LCD_Write_DATA(unsigned char DATA)
{
    LCD_W_D();
    LCD_DATA_IO(DATA);
    LCD_EN();
}
void LCD_Write_Custom(unsigned int M, unsigned char S[])
{
    char m = 0;
    LCD_Write_Command(0x40 + M * 0x08);
    for (m = 0; m < 8; m++)
    {
        LCD_Write_DATA(S[m]);
    }
}
void LCD_Set_XY(unsigned int X, unsigned int Y)
{
    unsigned char Address;
    if (X == 0)
    {
        Address = 0x80 + Y;
    }
    if (X == 1)
    {
        Address = 0xC0 + Y;
    }
    LCD_Write_Command(Address);
}
void LCD_Custom_Show(unsigned int X, unsigned int Y, unsigned int M)
{
    LCD_Set_XY(X, Y);
    LCD_Write_DATA(M);
}
void LCD_XY_Show(unsigned X, unsigned Y, unsigned char *Str)
{
    LCD_Set_XY(X, Y);
    while(*Str)
    {
        LCD_Write_DATA(*Str);
        Str++;
    }
}
void LCD_Show(unsigned char *Str)
{
    while(*Str)
    {
        LCD_Write_DATA(*Str);
        Str++;
    }
}
void LCD_Clear()
{
    LCD_Write_Command(0x01);
}
void LCD_Flash_Left()
{
    LCD_Write_Command(0x18);
}
void LCD_Flash_Right()
{
    LCD_Write_Command(0x1C);
}
void LCD_Init()
{
    LCD_Write_Command(0x38);
    LCD_Write_Command(0x08);
    LCD_Write_Command(0x01);
    LCD_Write_Command(0x06);
    LCD_Write_Command(0x0c);
}
#endif


源碼、庫、仿真.rar

10.96 KB, 下載次數: 26, 下載積分: 黑幣 -5

附件

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: jvid精品资源在线观看 | 精品国产一区二区国模嫣然 | 国产伦一区二区三区四区 | av色噜噜| 麻豆av在线免费观看 | 中文字幕第一页在线 | 国产免费让你躁在线视频 | 亚洲一区二区三区免费在线观看 | 国产激情网站 | 中文字幕高清一区 | 久久综合九色综合欧美狠狠 | 亚洲永久精品国产 | 国产精品中文字幕在线 | 色综合天天天天做夜夜夜夜做 | 国产乱码精品一区二区三区忘忧草 | 欧美一级久久 | 欧美一区二区免费 | 久久午夜国产精品www忘忧草 | 久久精品欧美一区二区三区不卡 | 在线观看精品视频网站 | 91免费看片 | 亚洲视频一区二区三区四区 | 久久精品国产久精国产 | 亚洲日日 | 久久久免费 | 国产成年人小视频 | 999国产精品视频 | 国产女人第一次做爰毛片 | 亚洲人成人一区二区在线观看 | 看av电影| 午夜视频免费在线观看 | 国产精品夜间视频香蕉 | 日韩精品一区二区三区中文在线 | 国产不卡在线 | 91啪亚洲精品 | 欧美国产视频一区二区 | 国产wwwcom | 欧美日韩一区二区电影 | 国产精品不卡一区 | 免费观看黄网站 | 午夜影院官网 |