MSP-LAB实训-GPIO高级输出之1.1:流水灯

[复制链接]

7

主题

16

帖子

121

积分

慕课讲师

积分
121
查看: 2131回复: 0 发表于 2018-10-21 11:24:23   只看该作者
本帖最后由 junying 于 2018-10-21 11:53 编辑

MSP-LAB实训-GPIO高级输出之1.1:流水灯

实验要求流水灯是实现若干个LED按照一定频率依次闪烁的功能。请在MSP-LAB系统实现完整的八个LED组成的流水灯,要求在2秒周期内实现8LED依次显示一次。

题意分析
   1、系统中存在八个独立LEDD3~D10,可以作为本训练题目的实现对象。查看原理图(如图1所示)
Fig1.jpg
得知,八个LEDU1574HC573驱动连接,74HC5738-bit D触发器,其数据手册查看http://www.ti.com/product/CD74HC573。当LE管脚连接为高的时候,74HC574直接输出输入管脚的值,而J11中间任何一个管脚为高,则其对应的LED灯点亮,否则LED熄灭。
   2、2s时间周期依次显示8LED,则每个LED显示持续250ms,为了精确得到一个250ms的时间参数,可以设置一个Timer中断,每次中断间隔250ms
   3、具体实现中,采用P1的八个GPIO输出对应连接到J11的各个管脚,初始化为0x01,即只有一个LED为亮在中断**程序中设置P1输出的切换。

整体实现过程描述如下
硬件连接
1、J118PINMSP430单片机的P1.0~P1.7一一对应用杜邦线连接;
2、J8的中间管脚LE3.3V连接,使能74HC573为直接输出;

程序设计
1、采用Grace配置外设
(1) 创建工程exam0101,如图2所示;
Fig2.jpg
(2) 如图3配置Timer0为:SMCLK输入、8分频、UP ModeCCR0为(31250-1),并使能CCR0的比较中断,这样得到一个250ms一次的中断;
Fig3.jpg
(3) 如图4配置P1.0~P1.7为输出;
Fig4.jpg
(4) 配置完成后保存,并生成代码;
2、CCSv8中修改代码
(1) 如图5创建一个CCS空的工程,选择MSP430G2553芯片;
Fig5.jpg
(2) Grace生成的代码中的所有源程序(*.c*.h)拷贝到CCS创建的工程目录;
(3) 由于Grace生成的代码用到一些特殊头文件,如图6所示在项目属性页中,添加Grace安装目录到include搜索路径;
Fig6.jpg
(4) 在中断**程序InterruptVectors_init.c文件中如图7添加用户程序,即在每次中断发生之后,切换P1的管脚输出;
Fig7.jpg
(5) main.c文件中,如图8增加一个while(1)空循环,以保证程序不会意外退出;
Fig8.jpg

实验结果
1、连线和执行效果图如图9所示。
Fig9.jpg
课后练习
习题1:请按照例程exam0101的要求,更换为P2的输出,并重新修改代码和连接,实现流水灯效果。
习题2:流水灯的显示频率修改为每个LED显示持续1秒,8LED灯需8秒轮流显示完成一次,请修改代码并实现。(TipsTimer中断的CCR0设置值有最大限制,思考如何实现长时间的定时)





















原文链接:https://weibo.com/1404637705/GEUTwnq30
快速回复 返回顶部 返回列表