12864串行接法与ST7920控制芯片应用

需积分: 3 21 下载量 65 浏览量 更新于2024-09-11 收藏 22KB DOC 举报
"12864串行接法与代码示例" 在嵌入式系统或微控制器应用中,12864通常指的是128x64点阵的液晶显示器(LCD)。这种显示屏常用于显示文本和简单图形,尤其在小型设备和仪表上。在本案例中,12864串行接法是通过ST7920控制芯片实现的,该芯片支持SPI(Serial Peripheral Interface)通信协议,允许通过较少的引脚进行高效的数据传输。 ST7920是一款专为驱动点阵LCD设计的控制器,它支持串行和并行两种工作模式。由于串行模式只需要三到四条线(时钟、数据、片选和可能的方向控制),相比于并行模式(通常需要十几条数据线)而言,可以节省硬件资源,特别适合于资源有限的微控制器平台。 在提供的代码中,可以看到以下关键部分: 1. `#define` 预处理指令用于定义变量类型和常用端口,如`uchar`(无符号字符型)和`uint`(无符号整型),以及`P2^4`、`P2^5`和`P2^6`分别定义了片选(CS)、串行数据(SID)和串行时钟(SCLK)引脚。 2. `Lcd_Init()` 函数初始化LCD,包括设置ST7920的控制寄存器和配置SPI接口。这个函数可能包含初始化时钟频率、设置控制信号电平等操作。 3. `convent()` 和 `hanzi_Disp()` 函数可能分别用于数值转换和汉字显示。`convent()` 可能将距离值转换为字符串,而`hanzi_Disp()` 在指定位置显示汉字。 4. `Lcd_WriteCmd()` 和 `Lcd_WriteData()` 函数分别向LCD发送命令和数据。例如,`Lcd_WriteCmd(0x9b)` 和 `Lcd_WriteData('0'+sp_bai)` 分别发送控制命令和显示数据。 5. `addr_tab[]` 是汉字的地址表,用于查找特定汉字在内部ROM中的位置。每个地址对应一行汉字的起始位置。 6. `while(1)` 循环中,程序不断地更新LCD显示。`hanzi_Disp()` 和 `Lcd_WriteData()` 被用来显示距离和时间戳,这表明这个应用可能是用于测量和显示距离的。 7. `sp_wan`、`sp_qian`、`sp_bai`、`sp_shi` 和 `sp_ge` 是用于存储十进制数字的个位、十位、百位、千位和万位的变量,它们被用来动态生成数值字符串。 12864串行接法是通过ST7920控制芯片和SPI接口实现的,通过编写特定的控制代码,可以在LCD上显示汉字和数值。这种方法简化了硬件连接,降低了系统复杂性,同时也为开发提供了更多的灵活性。在实际应用中,可以根据具体需求调整和扩展这些基本功能,例如增加颜色支持、增强图形功能或者优化显示性能。