




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 1 章 MSP430F169 单片机系统构成 1.1 MSP430F169 概 述 MSP430F169 是 TI 公司进入中国市场的 MSP430F 系列单片机中功能最强 的芯片。MSP430F169 单片机为 64 引脚封装,符号及引脚位置图如图 1-1 所示。DVc/CLK5TA782INOURosEXref+-BH 图 1-1 符号及引脚位置图 MSP430F169 片内结构框图如图 1-2 所示。16 位 CPU 通过总线连接到存储 器和外围模块。只读存储器 60KB,随机存储器 2KB。 图 1-2 MSP430F169 芯片的结构框图 外围模块(片内外设):经过 MAB、MDB、中断服务及请求线与 CPU 相 连。时钟模块可外接两个晶振,低速选用 32768Hz 晶振,高速晶振最高可选到 8MHz。在使用高速时钟和端口时要根据需要将其初始化。 看门狗、定时器 A、比较器 A 等与 MSPF413 单片机使用方法相同,但无 液晶驱动器。 MSP430F169 片内增加了 8 路快速 12 位 ADC 模数转换模块,2 路 12 位 DAC 数模转换模块,两个通用连续同步/异步通信接口 (USART)模块,I 2C 模块, DMA 数据传送模块和硬件乘法器模块等。 1.2 LCM12864 液 晶 显 示 模 块 简 介 LCM12864 液晶显示模块是由 128 列 64 行液晶显示点阵和其控制电路组成, 整个电路板外形如图 1-3 所示。该显示模块不仅可以显示数字,还可以显示汉 字和图形。模块电路板下端有 20 个接线引脚,其中 VDD 与 VSS 引脚是 LCM12864 液晶模块电源与地接入端,VOUT 是 LCM12864 液晶模块自生成负电压 输出端。VO 需要一个外部的 0V-10V 负压输入,可接入电位器调整液晶灰度。 在背光电路中需要串接 5 欧姆电阻,直接将背光接入电源可能会造成损坏。其 余引脚由单片机控制。 图 1-3 LCM12864 液晶显示模块外型图 LCM12864液晶显示模块的引脚定义如表1-1所示。 表 1-1 LCM12864 引脚说明 标号 名称 参数 说明 1 VSS GND 0V 模块电源地 2 VDD +5V 模块电源 +5V DC 3 VO 0V -10V 外部液晶偏置电压输入端 4 D/I H/L H:数据;L:指令 5 R/W H/L H:MPU LCM 读数据;L:MPU LCM 写数据 6 E H/L LCM 使能 7 DB0 H/L 数据线 0(H 表示高电平,L 表示低电平 8 DB1 H/L 数据线 1 9 DB2 H/L 数据线 2 10 DB3 H/L 数据线 3 11 DB4 H/L 数据线 4 12 DB5 H/L 数据线 5 13 DB6 H/L 数据线 6 14 DB7 H/L 数据线 7 15 CS1 H/L 左半屏使能(低电平有效) 16 CS2 H/L 右半屏使能(低电平有效) 17 /RST H/L LCM 复位(低电平有效) 18 VOUT GND 0V 模块电源地 19 SLA +5V LED 背光电源+5V DC 20 SLK GND 0V LED 背光电源 地 1.3 单 片 机 与 LCM12864 接 口 电 路 设 计 单片机与 LCM12864 接口电路如图 1-4 所示。 1234567890LCMVSDOB/RTUAKWEIk.uFNX_HzpcPosref+-按 图 1-4 单片机与 LCM12864 接口电路 1.4 单 片 机 与 LCM12864 接 口 程 序 设 计 具体显示驱动程序清单如下: /* * 文件名称:main.c * 文件说明:显示“Hello“ */ #include #define TOP 0 / 竖直方向零点 #define BOTTOM 64 / 竖直方向坐标最大值 #define LEFT 0 / 水平方向坐标最小值 #define RIGHT 128 / 水平方向坐标最大值 #define EN_WIDTH 40 / Hello 字符串的长度 #define CH_WIDTH 96 / 中文字符串的长度 #define OP_CHINESE 1 / 选择显示中文字符 #define OP_ENGLISH 2 / 选择显示英文字符 unsigned char showData=/16*8点阵的“Hello” 0x08,0x20,0xF8,0x3F,0x08,0x21,0x00,0x01, 0x00,0x01,0x08,0x21,0xF8,0x3F,0x08,0x20,/H (0) 0x00,0x00,0x00,0x1F,0x80,0x22,0x80,0x22, 0x80,0x22,0x80,0x22,0x00,0x13,0x00,0x00,/e (1) 0x00,0x00,0x08,0x20,0x08,0x20,0xF8,0x3F, 0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,/l (2) 0x00,0x00,0x08,0x20,0x08,0x20,0xF8,0x3F, 0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,/l (3) 0x00,0x00,0x00,0x1F,0x80,0x20,0x80,0x20, 0x80,0x20,0x80,0x20,0x00,0x1F,0x00,0x00,/o (4) ; unsigned char px, / 显示字符串的X位置 py, / 显示字符串的Y位置 width; / 字符串的宽度 /write_Command(),用于写命令到LCD,CS(片选)在此函数外设置 void write_Command(char cmd) P3OUT /禁止 EN P5DIR = 0xff; P3OUT /rs=0 ,r/w=0 P5OUT = cmd; P3OUT |= 0x04; /使能 P3OUT /禁止 / 设置显示的位置,含片选 void move_To(char x,char y) unsigned char tmp; tmp=(y if(tmp63) /在 chip2 P3OUT /cs1=0 P3OUT |= 0x40; /cs2=1 write_Command(0xb8 + x); /设置 x write_Command(0x40 + tmp-64); /设置 y / write data void write_Data(char content) P5DIR = 0x00; / 置位输入模式 P3OUT |= 0x02; / r/w=1 读状态 P3OUT |= 0x04; / chip 使能 while(P5IN /检测LCD是否忙 P3OUT /disable EN P5DIR = 0xff; P3OUT /rs=0 ,r/w=0 P3OUT |= 0x01; /rs=1 P5OUT = content; P3OUT |= 0x04; /p2.2=1 使能 P3OUT /p2.2=0 禁止 / 在指定的位置显示字符串“Hello“ ,x是行坐标,y是列坐标, 0=x=RIGHT - 字符串长度 / 0=y=BOTTOM-字符串高度 void drawStr(unsigned char x,unsigned char y) unsigned char tmpv; for(tmpv=y;tmpvy+width;tmpv+) move_To(x/8,tmpv); /移动到指定页 write_Data(showData2*(tmpv-y); /填写数据 move_To(x/8+1,tmpv); /由于显示的字 符是16*N点阵,占用两页,现在移动到下页 write_Data(showData2*(tmpv-y)+1); /填写数据 / 清除chip1或者chip2上的某一区域,选择的区域只是在 / 同一chip上,x是页地址,Y是列地址,h是多少行,w是指多少 / 列.区域可以是两个片组成的区域的任何位置 void clear_Rect(unsigned char x,unsigned char y,unsigned char h,unsigned char w) unsigned char tmpv,tmp; for(tmpv=x;tmpv(x+h);tmpv+) for(tmp=y;tmp(y+w);tmp+) move_To(tmpv,tmp);/移动 write_Data(0x00); /在当前位置写0,即清除当前位置的 显示内容 / 初始化LCD void init_LCD(void) P5DIR = 0xff; / 设置P5输出模式 P5OUT = 0x00; / 初始值为0 P3DIR |= 0xcf; / P4.0P5,P4.6,p2.7 置为输出模式 P3OUT |= 0x48 ; / cs1,cs2 为1,reset=0 _NOP(); _NOP(); _NOP(); P3OUT |= 0x04; / en=1 P3OUT |= 0x80; write_Command(0xc0); / write_Command(0x3f); /显示开 clear_Rect(0,0,8,64); /清除第一块 clear_Rect(0,64,8,64); /清除第二块 / main函数 void main(void) WDTCTL = WDTHOLD + WDTPW; / 关闭看门狗 init_LCD(); / 初始化点阵 LCD px=0; py=0; width=EN_WIDTH; drawStr(px,py); /显示字符串 px=16; py=8; width=EN_WIDTH; drawStr(px,py); px=32; py=16; width=EN_WIDTH; drawStr(px,py); px=48; py=24; width=EN_WIDTH; drawStr(px,py); px=48; py=64; width=EN_WIDTH; drawStr(px,py); px=32; py=72; width=EN_WIDTH; drawStr(px,py); px=16; py=80; width=EN_WIDTH; drawStr(px,py); px=00; py=88; width=EN_WIDTH; drawStr(px,py); while(1) _NOP(); 1.5 更 换 显 示 字 符 方 法 更换显示字符方法: (1)使用“字模生成PCtoLCD2002”软件得到所需字符的数据表; (2)在显示程序中建立新的数据定义表:unsigned char showData_*; (3)在显示程序中建立新的显示子函数: void drawStr_*(unsigned char x,unsigned char y) unsi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 5.1 物体的质量说课稿 2025年初中物理八年级上册
- 2025年全自动流体包装设备项目发展计划
- 2025年党员领导干部学法用法知识考试模拟试题及答案(共七套)
- 街道物业态发言材料
- 外国礼仪合作协议
- 1例尖吻蝮咬伤致脑梗死应用阿替普酶溶栓的临床效果分析
- 《深度学习项目案例开发》课件-任务五:使用迁移学习完成垃圾分类
- 2025年度北京市城市绿化养护项目劳动合同范本
- 危险品运输司机合作协议
- 快递物流高效配送调度策略
- 西学中培训基地结业考试试题
- 2024年医师定考题库汇编
- 2024 大模型典型示范应用案例集-2
- 中央空调改造项目施工方案
- 《压缩空气系统培训》课件
- 新疆事业单位开展招聘考试试卷及答案2022
- 《客舱安全管理与应急处置》课件-第14讲 应急撤离
- GB/T 19413-2024数据中心和通信机房用空气调节机组
- 卷扬机使用施工方案
- Unit 8 单元基础练习 人教版英语八年级下册
- 市政管网工程施工方案
评论
0/150
提交评论