根据提供的文件信息,我们可以提取并总结出与MSP430F149单片机相关的知识点,主要包括以下几个方面: ### 1. MSP430F149单片机概述 - **MSP430系列**:MSP430是一款由德州仪器(TI)生产的超低功耗16位混合信号微控制器系列。 - **MSP430F149**:作为MSP430系列中的一个型号,MSP430F149是一款高性能、低功耗的单片机,特别适合于需要高精度模拟功能的应用场合。 ### 2. 文件代码解析 #### 2.1 基本结构与配置 - **头文件包含**:`#include "msp430x44x.h"` 表明该程序使用了MSP430系列的通用库文件。 - **变量定义**: - `flag`:标志寄存器,用于控制显示流程。 - `key_buff`:按键值缓冲区,用于存储检测到的按键值。 - `sec`、`min`、`hour`:分别用于表示秒、分、小时的计数器。 - `lcd_table` 和 `key_table`:分别定义了LCD显示字符和按键值的映射表。 #### 2.2 主函数实现 - **初始化**: - 清除看门狗定时器(`WDTCTL`),防止系统复位。 - 配置基本定时器(`BTCTL`),设置为0.25秒中断。 - 开启中断(`IE2 |= BTIE`)。 - 配置LCD端口(`P5SEL`)。 - 初始化LCD控制器(`LCDCTL`)。 - 清除LCD显示内容。 - 开启全局中断(`_EINT()` )。 - **主循环**: - 进入低功耗模式(`_BIS_SR(LPM3_bits)` )。 - 执行空操作(`_NOP()` )。 #### 2.3 中断服务程序 - **基本定时器中断服务程序** (`interrupt[BASICTIMER_VECTOR] void basic_timer(void)` ): - 调用RTC模块更新时间(`rtc()` )。 - 扫描键盘并处理(`scan_key_deal()` )。 - 如果有按键按下,则更新标志位并显示按键值(`lcd_display()` );否则显示当前时间(`display_rtc()` )。 #### 2.4 RTC模块 - **RTC实现** (`void rtc(void)` ): - 实现秒、分、小时的递增逻辑,支持溢出回零。 #### 2.5 显示时间 - **RTC显示实现** (`void display_rtc(void)` ): - 该部分代码未给出完整实现,但从上下文推断其主要功能为将当前的时间(小时、分钟、秒)转换为LCD可识别的格式进行显示。 ### 3. 应用场景 - **实时钟应用**:通过内置的RTC模块,可以实现准确的时间显示功能。 - **键盘输入**:通过扫描键盘输入,实现用户交互,如调整时间等功能。 - **LCD显示**:利用LCD显示时间及其他信息,如键盘输入的反馈等。 ### 4. 总结 MSP430F149是一款非常适合用于实时钟、键盘输入以及LCD显示等应用场合的单片机。通过上述代码分析可以看出,MSP430F149具有较低的功耗、丰富的外设接口以及灵活的中断机制等特点,能够很好地满足这些应用的需求。































#define key_press 0x2
//---------------------------------------------------------
static unsigned char flag; //flag register
static unsigned char key_buff; //key vaule buffer
static unsigned char sec;
static unsigned char min; //minuter buffer
static unsigned char hour; //hour buffer
const unsigned char lcd_table[12]={
0x7b, //*"0"*//
0x12, //*"1"*//
0x4f, //*"2"*//
0x1f, //*"3"*// //lcd display table
0x36, //*"4"*//
0x3d, //*"5"*//
0x7d, //*"6"*//
0x13, //*"7"*//
0x7f, //*"8"*//
0x3f, //*"9"*//
0x6d, //*"e"*//
0x65, //*"f"*//
};
const unsigned char key_table[12]={
0x0b, //*(key_vaule) 00(key_num)
0x09, //9 01
0x08, //8 02
0x07, //7 03
0x00, //0 04
0x06, //6 05 //key vaule table
0x05, //5 06
0x0a, //# 08
0x03, //3 09
0x02, //2 0a
0x01, //1 0b
};
void rtc(void);
void display_rtc(void);
void display_dec(int i,int j);
void lcd_display (void);
void scan_key_deal(void);
//--------------------------------------------------
//-----------main PROGRAM-----------------------------
//--------------------------------------------------
void main(void)
{
int i;
WDTCTL = WDTPW + WDTHOLD;
BTCTL=BTSSEL+BT_ADLY_250+BTFRFQ1; //BT 0.25 S interrupt
IE2|=BTIE;
P5SEL=0xfc; //enable lcd display
LCDCTL=LCDON+LCD4MUX+LCDP2;
for (i=0; i<8; ++i) // clear lcd
LCDMEM[i] = 0x00;
_EINT();
//*mainloop*//
for(;;)
{
_BIS_SR(LPM3_bits); //in LPM3
剩余5页未读,继续阅读


- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于SSM+微信小程序的在线课堂微信小程序(1).zip
- java毕业设计,基于微信小程序的高校餐厅食品留样管理系统(1).zip
- 微信小程序。uni-app,vue2.zip
- java毕业设计,基于微信小程序的社区车位租赁系统的设计与实现.zip
- C信息(微信小程序).zip
- taro微信小程序项目.zip
- unity3d塔防游戏的设计与实现--大学论文.doc
- 微信小程序:jim hacker.zip
- 美图网、微信小程序.zip
- 软件年终工作总结.docx
- 基于SSM+微信小程序的在线课堂微信小程序(2).zip
- 名片微信小程序.zip
- 微信小程序:微痕电影.zip
- 微信小程序框架.zip
- 一个微信小程序(1).zip
- 外研版选择性必修三Unit4AglimpseofthefutureDevelopingideas课件.ppt


