找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1702|回复: 0
打印 上一主题 下一主题
收起左侧

MSP430数码管代码

[复制链接]
跳转到指定楼层
楼主
ID:417727 发表于 2018-10-30 09:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  1. /********************************************************************
  2. //DM430-A型开发板数码管显示程序,依次显示0~7
  3. //数码管控制采用74HC573锁存器控制,采用动态显示机制
  4. //数码管为4位共阴型,对应的位低电平有效,可以控制位信号选择哪一位显示
  5. //调试环境:EW430 V5.30
  6. ********************************************************************/

  7. #include <msp430x14x.h>
  8. #include "Config.h"                  //开发板配置头文件,主要配置IO端口信息

  9. //***********************************************************************
  10. //               MSP430IO口初始化
  11. //***********************************************************************
  12. void Port_Init()
  13. {
  14.   LED8SEL  = 0x00;                      //设置IO口为普通I/O模式,此句可省
  15.   LED8DIR  = 0xFF;                      //设置IO口方向为输出
  16.   LED8PORT = 0xFF;                      //P2口初始设置为FF
  17.   
  18.   DATASEL  = 0x00;                      //设置IO口为普通I/O模式,此句可省
  19.   DATADIR  = 0xFF;                      //设置IO口方向为输出
  20.   DATAPORT = 0xFF;                      //P4口初始设置为FF
  21.   
  22.   CTRSEL  =  0x00;                      //设置IO口为普通I/O模式,此句可省
  23.   CTRDIR |=  BIT3 + BIT4;               //设置IO口方向为输出,控制口在P63,P64
  24.   CTRPORT =  0xFF;                      //P6口初始设置为FF  
  25. }

  26. //***********************************************************************
  27. //                74HC573控制数码管动态扫描并显示数据
  28. //***********************************************************************

  29. void Display()
  30. {
  31.    uchar i,j;
  32.    j=0x01;                            //此数据用来控制位选
  33.   for(i=0;i<8;i++)
  34.   {
  35.     DCTR0;                            //控制数码管段数据的74HC573的LE管脚置高
  36.     WCTR1;                            //控制数码管位的74HC573的LE管脚置高
  37.     DATAPORT=~j;                      //设置要显示的位,也就是哪一个数码管亮
  38.     WCTR0;                            //锁存位数据,下面送上段数据以后,就显示出来了  
  39.      DCTR1;  
  40.     DATAPORT=table[i];                //送要显示的数据,就是段数据,如显示0送的是0x3f
  41.     DCTR0;                            //锁存段数据,数码管亮一个时间片刻
  42.     j=j<<1;                           //移位,准备进行下一位的显示
  43.     delay_ms(1);                      //显示一个时间片刻,会影响亮度和闪烁性
  44.   }
  45. }


  46. //***********************************************************************
  47. //            主程序
  48. //***********************************************************************
  49. void main(void)
  50. {
  51.   WDT_Init();                         //看门狗初始化
  52.   Clock_Init();                       //时钟初始化
  53.   Port_Init();                        //端口初始化,用于控制IO口输入或输出
  54.   while(1)
  55.   {
  56.     Display();                        //调用显示函数,依次显示1~7
  57.   }
  58. }
复制代码


数码管.zip

20.77 KB, 下载次数: 7, 下载积分: 黑币 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表