eZ430-Chronos LCD

来源:互联网 发布:百变小樱之知世的背叛 编辑:程序博客网 时间:2024/06/04 17:41
//******************************************************************************//  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 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-S22// 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}