【eZ430-Chronos】LCD引脚与MCU对应引脚转换程序
来源:互联网 发布:二次安防网络拓扑 编辑:程序博客网 时间:2024/05/16 07:45
由于eZ430-Chronos中的LCD接线与常规的不一样本来应该
MCU 引脚 LCD引脚
COM0 com0
COM1 com1
COM2 com2
COM3 com3
S0 s0
.... ....
但是查看eZ430-Chronos的原理图会发现并不是一一对应的如图
这样的话直接使用LCD手册里的表格(如下图)就会不对,所以需要建立一个转换函数,转到正确去。
如果直接使用这个表格里的数据肯定不对,因为硬件连线并不是一一对应的。通过下面这个函数就可以直接使用上表的数据了,简化了转换来转换去的麻烦。
void setLcdMemBit(unsigned char COMx,unsigned char Segx){unsigned char comx;unsigned char segx;unsigned char * baseAddr;//由于LCD的接线和MCU的接线没有按顺序接所以需要转换switch(COMx){case 0:comx=3;break;case 1:comx=2;break;case 2:comx=1;break;case 3:comx=0;break;default:comx=COMx;}switch(Segx){case 1:segx=5;break;case 2:segx=3;break;case 4:segx=5;break;case 5:segx=1;break;case 9:segx=10;break;case 10:segx=11;break;case 11:segx=9;break;default:segx=Segx;}baseAddr=(unsigned char *)0x0A20;//LCD 内存基地址baseAddr+=segx/2;//计算对应的内存地址*baseAddr|=1<<(comx+(segx%2)*4);//计算对应的位(bit),并将该为置位}
下面是一个完整的工程代码
//******************************************************************************// eZ430 chronos hello world// Description: initializes lcd module and shows the string 'hi earth' on the// lcd display becuase 'hello world' is too long// Author: Felix Genicio//******************************************************************************#include "cc430x613x.h"#include <string.h>void setLcdMemBit(unsigned char COMx,unsigned char Segx);void main(void){unsigned char * lcdmem;char i; // Clear entire display memoryLCDBMEMCTL |= LCDCLRBM + LCDCLRM;//清除LCD闪烁内存、清除LCD内存// LCD_FREQ = ACLK/16/8 = 256Hz,其中ACLK=32768Hz// Frame frequency = 256Hz/4 = 64Hz, LCD mux 4, LCD onLCDBCTL0 = (LCDDIV0 + LCDDIV1 + LCDDIV2 + LCDDIV3) | (LCDPRE0 + LCDPRE1) | LCD4MUX | LCDON;// LCB_BLK_FREQ = ACLK/8/4096 = 1Hz ,闪烁失能LCDBBLKCTL = (LCDBLKDIV0 + LCDBLKDIV1 + LCDBLKDIV2)|(LCDBLKPRE0 + LCDBLKPRE1) | LCDBLKMOD0;// I/O to COM1~COM3 outputs,其中COM0默认就是用作COM0P5SEL |= (BIT5 | BIT6 | BIT7);P5DIR |= (BIT5 | BIT6 | BIT7);// Activate LCD outputLCDBPCTL0 = 0xFFFF; // Select LCD segments S0-S15LCDBPCTL1 = 0x00FF; // Select LCD segments S16-S22setLcdMemBit(0,6);setLcdMemBit(1,13);//LCDM2=0x08;//LCDM1=0x08;//LCDM4=0x08;// LCD_B Base Address is 0A00H page 30 y in SALS554 document// show 'h'lcdmem = (unsigned char *)0x0A21;*lcdmem = (unsigned char)(*lcdmem | (BIT2+BIT1+BIT6+BIT0));// show 'i'lcdmem = (unsigned char *)0x0A22;*lcdmem = (unsigned char)(*lcdmem | (BIT2));// show 'E'lcdmem = (unsigned char *)0x0A2B;*lcdmem = (unsigned char)(*lcdmem | (BIT4+BIT5+BIT6+BIT0+BIT3));// show 'A'lcdmem = (unsigned char *)0x0A2A;*lcdmem = (unsigned char)(*lcdmem | (BIT0+BIT1+BIT2+BIT4+BIT5+BIT6));// show 'r'lcdmem = (unsigned char *)0x0A29;*lcdmem = (unsigned char)(*lcdmem | (BIT6+BIT5));// show 't'lcdmem = (unsigned char *)0x0A28;*lcdmem = (unsigned char)(*lcdmem | (BIT4+BIT5+BIT6+BIT3));// show 'h'lcdmem = (unsigned char *)0x0A27;*lcdmem = (unsigned char)(*lcdmem | (BIT4+BIT5+BIT6+BIT2)); __no_operation(); // For debugger}void setLcdMemBit(unsigned char COMx,unsigned char Segx){unsigned char comx;unsigned char segx;unsigned char * baseAddr;//由于LCD的接线和MCU的接线没有按顺序接所以需要转换switch(COMx){case 0:comx=3;break;case 1:comx=2;break;case 2:comx=1;break;case 3:comx=0;break;default:comx=COMx;}switch(Segx){case 1:segx=5;break;case 2:segx=3;break;case 4:segx=5;break;case 5:segx=1;break;case 9:segx=10;break;case 10:segx=11;break;case 11:segx=9;break;default:segx=Segx;}baseAddr=(unsigned char *)0x0A20;//LCD 内存基地址baseAddr+=segx/2;//计算对应的内存地址*baseAddr|=1<<(comx+(segx%2)*4);//计算对应的位(bit),并将该为置位}
- 【eZ430-Chronos】LCD引脚与MCU对应引脚转换程序
- eZ430-Chronos LCD
- [51MCU] Chapter1:芯片引脚
- 引脚
- TI公司TMS封装与引脚对应关系
- MHL与micro USB 2.0引脚对应关系
- 元件引脚直径与PCB焊盘孔径对应关系
- MCU引脚输出模式中推挽输出与开漏输出电路原理区别
- MCU引脚输出模式中推挽输出与开漏输出电路原理区别
- STMC32f030直接引脚驱动LCD段码屏
- 单片机引脚与端口操作
- JTAG接口与引脚定义
- JTAG接口与引脚定义
- JTAG与SWD引脚对比
- SD卡引脚与Micro_SD卡引脚对比
- Jetson TX2物理引脚与虚拟引脚映射计算
- TX2物理引脚与虚拟引脚映射计算
- usb引脚
- myeclipse:关于MYeclipse(8.5)小结
- 分享一下TimeElapsed(TimeLine)【jQuery版】的优美界面
- 第一篇文章吧
- UDA
- oracle11.2.0.3.0 RAC for winows(2008) 安装NAS存储--3.DB安装 .
- 【eZ430-Chronos】LCD引脚与MCU对应引脚转换程序
- 雨枫:淘宝招财进宝为什么会失败?
- Supplier Data Model Stuff
- java中String Date Timestamp Calendar 之间的关系及转换
- 【小蒙淘金】12.18黄金白银早间简评及操作建议
- Android 命令行控制蓝牙开关【转】
- 浅议基于虚拟机的数据中心能耗管理机制
- extjs4兼容IE6的调试要点
- HDOJ 1098 Ignatius's puzzle