MSP430G2553: 8位数码管静态与动态显示实现
本文档主要介绍了如何使用MSP430G2553单片机实现8位数码管的静态显示。MSP430G2553是一款低功耗的超小型微控制器,适合于各种嵌入式系统应用。该程序的核心部分包括以下几个知识点: 1. **头文件包含**: `#include<msp430.h>`引入了MSP430系列芯片的头文件,提供了所需的函数库和定义。 2. **数据类型定义**: `u8` 和 `u16` 定义为无符号8位和16位整型,用于存储数码管的字符码和延时计数。 3. **初始化函数**: - `gpio_init()` 函数设置GPIO端口的配置,如P2和P1口的输入/输出方向,以及将它们设置为输入模式,以便于数码管控制。 - `WDTCTL=WDTPW|WDTHOLD;` 表示启用看门狗定时器以防止死机。 4. **主函数**: `main()` 循环调用 `dynamic_display()` 函数,这是一个关键部分,它实现了动态数码管显示。 5. **动态显示函数**: - `dynamic_display()` 通过遍历数组`dis_buffer`,依次调用`static_display()`函数,每个数码管字符与相应的位置对应,实现动态显示。 - `static_display(word, pos)` 函数负责设置P1和P2口的输出值,分别驱动数码管的段选线和位选线,显示指定的字符。 6. **延时函数**: `delay_ms(Time)` 通过`__delay_cycles()`函数实现毫秒级的延时,确保字符在显示时有足够的间隔。 7. **数码管字符和位置选择**: - `Word_Selec[]` 和 `POS_Selec[]` 分别存储了各个数字和小数点对应的数码管字符码和位选码,用于构建最终的显示。 这个程序展示了如何利用MSP430G2553的GPIO资源进行基本的数码管显示控制,后续可能还会涉及到中断处理(如按键中断、定时器中断)和PWM控制等内容,这些会在后续的代码中继续介绍。通过学习并理解这部分代码,开发者可以进一步掌握单片机MSP430G2553的基础应用和编程技巧。
#define u8 unsigned short
#define u16 unsigned int
void gpio_init();
void delay_ms(u16 Time);
void static_display(u8 word,u8 pos);
void dynamic_display();
u8 Word_Selec[16]={
0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,//0~9
0x77,0x7C,0x39,0x5E,0x79,0x71};
u8 POS_Selec[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
u8 dis_buffer[8]={1,2,3,4,5,6,7,8};
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer
gpio_init();
while(1)
{
dynamic_display();
}
}
下载后可阅读完整内容,剩余2页未读,立即下载
- 粉丝: 1
- 资源: 11
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展