lcd12864的要点

本文介绍了LCD12864显示屏的特点、接线方法和编程注意事项。LCD12864因其128*64的分辨率而得名,连接时需注意占用的P0和P2口,程序编写参照数据手册。
AI助手已提取文章相关产品:

在日常的学习中我学习了16*2的黑白屏LCD1602,如今在完成MP3的制作时,黑白屏已经不能满足需求,所以要使用彩屏。彩屏我选择使用LCD12864。

1.LCD12864的样式 
LCD12864是由于此屏由128*64格得名, 
这里写图片描述

2.LCD12864的接法 
LCD12864一共有20个管脚,在德飞莱开发板上是这样接的。 
德飞莱接法
彩屏占用了P0口和P2口,所以在使用彩屏时,应尽量减少在P2口和P0的布线,除非是短暂性的操作,例如按键之类的操作。

3.LCD12864的程序 
鉴于LCD12864的数据手册,可以写出以下程序:

<code class="hljs cs has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//LCD 模块初始化</span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span> initial_lcd()    reentrant
{
    lcd_reset=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>; <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//低电平复位</span>
    delay(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">100</span>);
    lcd_reset=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>; <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//复位完毕</span>
    delay(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">100</span>);
    transfer_command_lcd(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0xe2</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//软复位</span>
    delay(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5</span>);
    transfer_command_lcd(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0x2c</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//升压步聚1</span>
    delay(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">50</span>);
    transfer_command_lcd(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0x2e</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//升压步聚2</span>
    delay(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">50</span>);
    transfer_command_lcd(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0x2f</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//升压步聚3</span>
    delay(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5</span>);
    transfer_command_lcd(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0x23</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//粗调对比度,可设置范围0x20~0x27</span>
    transfer_command_lcd(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0x81</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//微调对比度</span>
    transfer_command_lcd(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0x28</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//微调对比度的值,可设置范围0x00~0x3f</span>
    transfer_command_lcd(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0xa2</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//1/9 偏压比(bias)</span>
    transfer_command_lcd(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0xc8</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//行扫描顺序:从上到下</span>
    transfer_command_lcd(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0xa0</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//列扫描顺序:从左到右</span>
    transfer_command_lcd(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0x40</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//起始行:第一行开始</span>
    transfer_command_lcd(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0xaf</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//开显示</span>
}

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span> lcd_address(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">uint</span> page,<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">uint</span> column) 
{
    column=column-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0x01</span>;
    transfer_command_lcd(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0xb0</span>+page-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//设置页地址,每8 行为一页,全屏共64 行,被分成8 页</span>
    transfer_command_lcd(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0x10</span>+(column>><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4</span>&<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0x0f</span>)); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//设置列地址的高4 位</span>
    transfer_command_lcd(column&<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0x0f</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//设置列地址的低4 位</span>
}


<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//全屏清屏</span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span> clear_screen()    reentrant
{
    unsigned <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">char</span> i,j;
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span>(i=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;i<<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9</span>;i++)
    {
        transfer_command_lcd(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0xb0</span>+i);
        transfer_command_lcd(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0x10</span>);
        transfer_command_lcd(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0x00</span>);
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span>(j=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;j<<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">132</span>;j++)
        {
            transfer_data_lcd(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0x00</span>);
        }
    }
}

</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li></ul>

您可能感兴趣的与本文相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值