实验:MSP430F249 数码管计数到60自动清零(详细注释)

简介: 实验:MSP430F249 数码管计数到60自动清零(详细注释)

实验:MSP430F249 数码管计数到60自动清零

Date: March 14, 2023


基础设定:

IAR基础设置:设置设备与输出文件及格式

06a3aad66b784b2366fbe73a43004ead.png

9aa89659c05812957fd841fb5b70b88f.png


实验:MSP430F249 数码管计数到60自动清零

具体内容:


MSP430F249 数码管计数到60自动清零


仿真图:

4a6cc38e9682fbb8314930c5828f98f6.png

Code: 详细注释

#include<msp430x24x.h>
/*
  实现思路:
    首先,采用晶振实现每秒准确定时,并调用中断函数,发送信号给扫描器,同时也设定到60秒复位。
    其次,实现数码管扫描已发送的信号并显示LED
*/
//定义两个数组
unsigned dis_buf[2]={0}; //数组中有两个位置,一个给十位,一个给个位
unsigned char counter=0;
//共阴极数码管缓存区
unsigned char Led_Tab2[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//延时函数
void delay(unsigned i){
  do(i--);
  while(i!=0);
}
//数码管扫描
void scan(){
  for(unsigned char i=0;i<40;i++){
    P5OUT=BIT1; //0010 => 让十位亮     0010, p5.1高电频,p5.0低电平(接地)
    P4OUT=0;
    P4OUT=Led_Tab2[dis_buf[1]]; //送段码,显示十位数
    delay(100); //延长灯亮度时间(先让十位显示)
    P5OUT=BIT0; //0001 => 让个位亮
    P4OUT=0;
    P4OUT=Led_Tab2[dis_buf[0]];//送段码,显示个位数
    delay(100); //让两个数码管同时显示
  }
}
void main(void){
  /*
    功能:预处理
  */
  //关闭看门狗
  WDTCTL= WDTPW + WDTHOLD; 
  //芯片引脚输入输出方向
  P3DIR=0x01;
  P3OUT=0X01;
  P4DIR=0xff;
  P4OUT=0xff;
  P5DIR=0x03;
  P5OUT=0xff; //初始状态数码管不亮
  /*
    功能:定时(采用晶振计算定时,计算1s时长)
  */
  CCTL0=CCIE; //启动Iimer_A定时器
  CCR0 = 32768; //晶振频率
  TACTL = TASSEL_1+MC_1; //
  _EINT(); //中断允许触发器
  /*
    功能:点亮并刷新LED
  */
  //不断保持数码管扫描
  while(1){
    scan();
  }
}
//中断函数
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void){
  P3OUT^=0x01;
  counter++;
  //功能:计数到60归零
  if(counter==61) counter=0; //修改计数器的定时范围
  dis_buf[1]=counter/10;//取门数值前十位数
  dis_buf[0]=counter%10;//取门数值的个位数
}

运行结果:没有任何报错和警告

b547be1da8ad819d8e8932e1a0a4d569.png


问题&解决:


1.仿真运行时,按键按下灯不亮,或者一直亮


解决:重启proteus软件


2.仿真报Unrecognized opcode at 0x000006: 0x0000的错误


解决:设备问题,IAR软件中选中MSP430F249


目录
打赏
0
0
0
0
18
分享
相关文章
|
7月前
51开发板同一程序实现数码管实现时钟显示、秒表计时。通过独立按键选择模式(时钟/秒表)、时间的重定义
51开发板同一程序实现数码管实现时钟显示、秒表计时。通过独立按键选择模式(时钟/秒表)、时间的重定义
214 3
|
7月前
【51单片机】独立按键,每个按键不同功能,数码管数值的加减,控制流水灯模式,包含按键消抖,数码显示,流水灯
【51单片机】独立按键,每个按键不同功能,数码管数值的加减,控制流水灯模式,包含按键消抖,数码显示,流水灯
418 1
|
7月前
|
【51单片机】LCD1602显示字符串,时间、时间+按键校准、秒表计时的功能代码。
【51单片机】LCD1602显示字符串,时间、时间+按键校准、秒表计时的功能代码。
103 3
|
7月前
51开发板独立按键调节时钟的应用实验、可以使用独立按键进行时间的调节(可对时间重新自定义)
51开发板独立按键调节时钟的应用实验、可以使用独立按键进行时间的调节(可对时间重新自定义)
101 1
技术好文:stm32寄存器版学习笔记06输入捕获(ETR脉冲计数)
技术好文:stm32寄存器版学习笔记06输入捕获(ETR脉冲计数)
347 0
【单片机期中测试】2.独立按键控制LED移位
【单片机期中测试】2.独立按键控制LED移位
117 0
【蓝桥杯嵌入式】STM32定时器的配置,解析预分频系数和重装载值与时钟频率的关系
【蓝桥杯嵌入式】STM32定时器的配置,解析预分频系数和重装载值与时钟频率的关系
1452 0
蓝桥杯之单片机学习(二十)——自创模板(最少省三,实现初始化、数码管显示、HC138独立按键(或矩阵键盘))
蓝桥杯之单片机学习(二十)——自创模板(最少省三,实现初始化、数码管显示、HC138独立按键(或矩阵键盘))
230 0
蓝桥杯之单片机学习(二十)——自创模板(最少省三,实现初始化、数码管显示、HC138独立按键(或矩阵键盘))
FPGA(5)--VHDL--10十进制计数器及7段显示译码器
FPGA(5)--VHDL--10十进制计数器及7段显示译码器
818 0
FPGA(5)--VHDL--10十进制计数器及7段显示译码器
STM32:TIM输入捕获模式测频率并在OLED上显示频率(内含:1.接线图/实物图+2.代码部分+3.输入捕获模式使用到的STM32库函数)
STM32:TIM输入捕获模式测频率并在OLED上显示频率(内含:1.接线图/实物图+2.代码部分+3.输入捕获模式使用到的STM32库函数)
504 0
STM32:TIM输入捕获模式测频率并在OLED上显示频率(内含:1.接线图/实物图+2.代码部分+3.输入捕获模式使用到的STM32库函数)
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等