: "自制LCR测量仪升级:采用恩智浦COG显示技术" : "本项目介绍了一种自制LCR测量仪的改进方法,将原本使用STC12C06S2和LCD1602显示器的方案升级为采用恩智浦(NXP)的COG点阵屏,通过PCA8538驱动,以提升显示效果。" : "软件/插件", "mcu" **正文** LCR测量仪是电子工程师常用的测试工具,用于测量电路元件的电感、电容和电阻。在本项目中,作者利用开源的LCR设计方案,着手改善其显示部分。原始设计使用STC12C06S2微控制器和LCD1602液晶显示屏,然而,为了获得更佳的视觉效果,作者选择了NXP的COG(Chip-On-Glass)点阵屏,并采用PCA8538驱动器。 PCA8538是一款多通道、多功能的段式驱动器,适合于多种显示需求。其特性包括宽电压范围和强大的定制能力,能够支持7段、14段以及点阵显示。在改造过程中,仅需对原始原理图进行微调,将输出接口改为PCA8538,保持原有设计的其他部分不变。 软件部分是整个项目的核心。STC12C06S2的硬件SPI接口在原设计中已被占用,因此需要通过通用IO模拟SPI通信。SPI工作于同步双工模式,时钟上升沿发送数据,下降沿接收数据。在发送8位数据时,主机和从机会同时交换MISO和MOSI信号。模拟SPI的程序相对简单,如下面的示例代码所示: ```c uchar SPI_Sends(uchar out_data) { uchar i, n; for(i=0; i<8; i++) { n <<= 1; SCK = 0; MOSI = (out_data & 0x80); if(MISO) n++; SCK = 1; out_data <<= 1; } return n; } ``` 为了在COG点阵屏上显示字符,需要创建点阵字库。常见的点阵字库尺寸有5x8、8x8等,尺寸越大,字符细节越丰富,但占用的存储空间和处理时间也会增加。在这个项目中,考虑到STC12C06S2的存储空间充足,但为了提高处理速度和显示更多字符,选择了5x8点阵。PCA8538的显示RAM采用1:9模式,Y轴使用9位,X轴使用102位。每个字符占用5个字节,按照特定的布局存入RAM。 显示字符A的点阵字模可以表示为0x3E, 0x48, 0x88, 0x48, 0x3E。在将这些数据传输到显示RAM后,PCA8538会根据这些值点亮或熄灭相应的像素点。为了在屏幕上清晰地显示字符,相邻字符之间通常会插入一列空白像素作为间隔。在PCA8538的支持下,一行最多可显示16个5x8点阵字符。 在程序中,字库被定义为只读数组,通常按照ASCII码值顺序存储字符字模。因此,可以通过ASCII值直接在字库数组中找到并显示所需的字符,例如使用 AscLib[(ASCII - 32)] 访问ASCII码对应的字模。 通过这次改造,不仅提升了LCR测量仪的显示质量,还展示了如何在有限资源下进行硬件和软件的优化。这种DIY精神和实践能力是电子工程师必备的技能,也是推动技术创新的重要动力。
剩余10页未读,继续阅读
- 粉丝: 31
- 资源: 354
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言-leetcode题解之28-implement-strstr.c
- C语言-leetcode题解之27-remove-element.c
- C语言-leetcode题解之26-remove-duplicates-from-sorted-array.c
- C语言-leetcode题解之24-swap-nodes-in-pairs.c
- C语言-leetcode题解之22-generate-parentheses.c
- C语言-leetcode题解之21-merge-two-sorted-lists.c
- java-leetcode题解之Online Stock Span.java
- java-leetcode题解之Online Majority Element In Subarray.java
- java-leetcode题解之Odd Even Jump.java
- 计算机毕业设计:python+爬虫+cnki网站爬
评论0