基于MSP430的LCD12864
赛车小游戏开发
指导教师: 组员: 完成日期:
一、作品预期成果
通过MSP430单片机编程对LCD1284液晶显示器和按键的控制实现一个简单的赛车小游戏。
二、主要原理简述
通过MSP430单片机编程实现对LCD12864液晶显示器的控制和对简单按键命令的响应,通过对液晶显示屏上元素、画面和刷新频率等的控制和对赛车状态的判断来实现一个简单的赛车小游戏。
大体实现框架如下:
三、关键元器件简介
单片机MSP430:MSP430单片机称之为混合信号处理器,是由于其针对实际应用需求,将多个不同功能的模拟电路、数字电路模块和微处理器集成在一个芯片上,以提供“单片机”解决方案。拥有处理能力强、运算速度快(约比51快12倍)、超低功耗、片内资源丰富(分别有看门狗(WDT)、模拟比较器A、定时器A0(Timer_A0)、定时器A1(Timer_A1)、定时器B0(Timer_B0)、UART、SPI、I2C、硬件乘法器、液晶驱动器、10位/12位ADC、16位Σ-Δ ADC、DMA、I/O端口、基本定时器(Basic Timer)、实时时钟(RTC)和USB控制器等若干外围模块的不同组合 )、方便高效的开发环境(汇编语言或C语言)等优点。
液晶显示器LCD1284:其显示分辨率为128×64, 内置8192 个16*16 点汉字,和128 个16*8 点ASCII 字符集。.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4 行16×16 点 阵的汉字. 也可完成图形显示。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。通讯方式:串行、并口可选,内置DC-DC 转换电路,无需外加负压,低电压低功耗。无需片选信号,简化软件设计。
四、制作流程和作品内容
1.初步讨论和确立作品内容
小组成员组成队伍,并进行小组讨论,交流想法,确立作品的内容和目标。进行初步的计划和分工。
2.学习相关知识并采购元器件
根据计划收集并学习相关资料(主要涉及单片机MSP430软件编程和功能使用,以及显示器LCD12864使用的相关说明等)并进行学习,采购单片机MSP、显示器LCD12864、电源、导线、电路板等元器件。
3.绘制详细电路图并制作成电路板
运用Altium Designer 14绘制详细的电路图,并打印、腐蚀电路板,再与MSP430、LCD12864等元器件进行组装焊接,制成半成品。
4.进行软件编程
根据所设立的赛车小游戏的要求,与工作原理,进行相关的软件编程,并载入MSP430进行调试。(主要程序、函数会在下文中进行罗列和说明)
5.制成成品并调试修改
对作品进行相关调试修改,完成作品。
五、主要程序、函数说明与功能简介
Main.c
int main(void) {
WDTCTL = WDTPW | WDTHOLD;// Stop watchdog timer
unsigned char
direction,speed,temp,temp_car2=0;
Sys_Clk_Init();//时钟初始化,现在为20MHz Init_LCD(); Init_key();
update_to_LCD(x,y,car,2,12); show_others(); LCD_Draw_Pic(LCD);
while(1) {
if(temp_car2==19) {
temp_car2 = 0; } //car2 回归初始位置
if(car2_x>64) {
temp_car2++;
car2_y=car2_position[temp_car2], car2_x=1; } //新的一辆车的位置
direction=test_direction(); speed=test_speed(); if(speed == 0) {
update_speed(speed); }
if(speed == 1) {
update_speed(speed);