4.各功能代码的运用

发布日期:2020-12-26 09:09:57 来源:网络转载

尽管部分初学者对液晶屏的全部代码的理解存在困难,不过没关系,只要我们懂得如何运用它们各个函数的功能即可,大家下载进开发板之后观察实验现象再结合代码与注释慢慢细读掌握吧。


1.测试代码

#include <reg52.h> 
#include <function.h>//详见第六章第8讲
#include <lcd.h>

void main()
{  
    char x;//取值范围-128~127
    u8 str1[] = "Good Good Study";
    u8 str2[] = "Day Day Up!";

    InitLcd1602();//初始化液晶屏

    while (1)
    {
        LcdSetCursor(0,0);//把光标移到第一行第1格,准备写入内容
        LcdWriteDat(87);  //写入字符“W”的ASCII码值,让其显示字符W
        delay_ms(2000);   //延时一段时间

        LcdSetCursor(0,1);//把光标移到第二行第1格,准备写入内容
        LcdWriteDat('X'); //字符'X'的ASCII码值为88,此种表达写法更加直观明白要显示的内容 
        delay_ms(2000);   //延时一段时间

        LcdFullClear();   //全部内容清除显示
        delay_ms(2000);   //延时一段时间

        LcdShowStr(1, 0, str1);//第一行显示"Good Good Study"
        LcdShowStr(3, 1, str2);//第二行显示"Day Day Up"  
        delay_ms(2000);//延时一段时间

        LcdFullClear();//全部内容清除显示
        delay_ms(2000);//延时一段时间

        LcdShowStr_len(0, 0, "CALL TO 10086", 7);//只能显示字符串的前面7个字符,也就是只能显示“CALL TO”
        LcdShowStr_len(0, 1, str1, 11);          //只能显示“Good Good S”
        delay_ms(2000);//延时一段时间

        for(x=10;x>=0;x--)
        {
            LcdAreaClear(x, 1, 1);//间隔1秒,依次清除“S”、“ ”、“d”、“o”、“o”、“G”······
            delay_ms(1000);   
        }

        for(x=6;x>=0;x--)
        {
            LcdAreaClear(x, 0, 1);//间隔1秒,依次清除“O”、“T”、“ ”、“L”、“L”、“A”、“C”
            delay_ms(1000);   
        }
    }
}

有了这段代码,观察实验现象就能更加明白掌握各功能函数的用法了。


2.回顾printf函数

此时我们回到第十章第4节的printf_str函数观察下面这两段代码

while(*str != '\0')  //连续发送字符串数据,直到检测到结束符
{
    SBUF=*str++;
    while(!TI);
    TI = 0;
}


while(i>=0) //剩余低位都如实发送出去
{   
    SBUF='0'+buf[i];//如果此时的buf[i]的值是1,那么电脑端窗口在“文本模式”下要想显示字符“1”,只需'0'+1,因为‘0’就是ASCII码值48
    while(!TI);
    TI = 0;  
    i--;   
}

学过了液晶屏代码的写法技巧,现在再阅读当初的这两段代码就能明白“SBUF=*str++;”是发送一个数组或者一个字符串的所有数据。

而“SBUF='0'+buf[i];”发送的就是字符’0’~’9’其中一个数据,因为buf[i]在前面的执行内容中规定了数值范围为0~9,

所以“ '0'+buf[i] ”本质就是“ '0'~'9' ”。

需要注意的是,‘0’代表的是ASCII码值,跟ASCII码值为0不一样。

ASCII码值为0时的字符是:‘\0’(也就是结束符)

ASCII码值为48时的字符是:‘0’

关键词 :
网站违法和不良信息举报邮箱:23139485@qq.com
CopyRight@2020-2030 www.haoapp8.cn All Rights Reserved.C语言学习网版权所有 粤ICP备15061369号
免责声明:本站内容来源于用户自行提供或网络收集,其真实性、准确性和合法性,www.haoapp8.cn不提供任何保证,亦不承担任何法律责任.而产生的法律关系及法律纠纷,由您自行协商解决。