eZ430-Chronos LCD

本文详细解析了一段用于初始化LCD模块并显示字符串 'hi earth' 的430单片机代码。通过代码实现,展示了如何在LCD上显示简单文本,涉及了LCD内存清除、频率设置、输出激活等关键步骤。
//******************************************************************************
//  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 memory
	LCDBMEMCTL |= LCDCLRBM + LCDCLRM;//清除LCD闪烁内存、清除LCD内存

	// LCD_FREQ = ACLK/16/8 = 256Hz,其中ACLK=32768Hz
	// Frame frequency = 256Hz/4 = 64Hz, LCD mux 4, LCD on
	LCDBCTL0 = (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默认就是用作COM0
	P5SEL |= (BIT5 | BIT6 | BIT7);
	P5DIR |= (BIT5 | BIT6 | BIT7);

	// Activate LCD output
	LCDBPCTL0 = 0xFFFF;  // Select LCD segments S0-S15
	LCDBPCTL1 = 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
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值