c语言编程笔录

首页 >   > 笔记大全

笔记大全

为什么摇摇棒摇出的字是倒过来的c语言编程

更新时间:2023-06-16

引言

在日常使用摇摇棒的时候,我们经常会发现摇出的字是倒过来的。这是因为摇摇棒内部采用的是LCD液晶显示屏,这种屏幕的原理与我们通常使用的屏幕不同,因此需要在程序中对显示进行特殊处理,才能使文字正常显示。

LCD液晶显示屏的原理

为了更好地理解摇摇棒内部液晶显示屏的原理,我们先来介绍一下LCD液晶显示屏的结构:

1.液晶层:由长方形的液晶分子组成,在电场的作用下会发生改变。

2.玻璃板:涂覆透明导电层,通过给导电层加电使电场产生,从而改变液晶的方向。

3.偏光片:具有吸收部分偏振光的能力。

4.视线有限膜:可以使像素只能从垂直于屏幕的方向看到,并可以减少屏幕闪烁。

在LCD液晶显示屏中,每一个像素点都是由红、绿、蓝三个颜色的滤色片组成的,当三种颜色的滤色片的透光率分别为0、0、1时,该像素点就显示为蓝色,当透光率分别为0、1、0时,该像素点就显示为绿色,以此类推。

文字倒过来的原因及解决方法

在摇摇棒中,由于液晶显示屏的特殊性质,字体显示的顺序与我们平时使用的LCD屏幕相反,即从底部开始显示。为了解决这个问题,需要在程序中进行特殊处理。具体来说,需要将需要显示的文字按照想要的顺序储存在一个缓存区中,然后再将缓存区中的文字逐个输出。最常用的方法就是将文字“逐行倒序”储存,然后再一行一行地输出。

    #include 
    #include 

    #define LCD_HEIGHT 64
    #define LCD_WIDTH 128

    void printText(char* text) {
        char buffer[LCD_WIDTH][LCD_HEIGHT];
        int i, j;
        memset(buffer, ' ', sizeof(buffer));
        for(i = 0; i < strlen(text); i++){
            for(j = 0; j < 8; j++){
                buffer[j][i] = text[i] & (1 << j) ? '*' : ' ';
            }
        }
        for(i = 0; i < LCD_HEIGHT; i++){
            for(j = LCD_WIDTH - 1; j >= 0; j--){
                putchar(buffer[j][i]);
            }
            putchar('\n');
        }
    }

    int main() {
        printText("Hello World!");
        return 0;
    }

在上面的示例中,我们将需要显示的文字按照行倒序的方式储存在了一个128*64的缓存区中,并逐个输出,从而得到了正常顺序的显示效果。