MSP340单片机IAR-简易交通灯系统Proteus仿真程序

发布者:万童洁最新更新时间:2020-07-12 来源: 51hei关键字:MSP340  单片机  IAR  简易交通灯系统 手机看文章 扫描二维码
随时随地手机看文章

单片机源程序如下:

#include


void delay_1s(void);

void seg7s(unsigned char data_seg7);

void seg7s2(unsigned char data_seg7);

const unsigned char decoder_seg7[10]                 

  ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};


void main(void)

{

  WDTCTL=WDTPW+WDTHOLD;

  P1SEL=0x00;

  P1SEL2=0x00;

  P1DIR=0xff;

  P2SEL=0X00;

  P2SEL2=0x00;

  P2DIR=0xff;

  while(1)

  {

    P1OUT=0x81;

    seg7s(6);

    seg7s2(9);

    delay_1s();

    P1OUT=0x81;

    seg7s(5);

    seg7s2(8);

    delay_1s();

    P1OUT=0x81;

    seg7s(4);

    seg7s2(7);

    delay_1s();

    P1OUT=0x81;

    seg7s(3);

    seg7s2(6);

    delay_1s();

    P1OUT=0x81;

    seg7s(2);

    seg7s2(5);

    delay_1s();

    P1OUT=0x81;

    seg7s(1);

    seg7s2(4);

    delay_1s();

    P1OUT=0x82;

    seg7s(3);

    seg7s2(3);

    delay_1s();

    P1OUT=0x82;

    seg7s(2);

    seg7s2(2);

    delay_1s();

    P1OUT=0x82;

    seg7s(1);

    seg7s2(1);

    delay_1s();

    P1OUT=0x24;

    seg7s(9);

    seg7s2(6);

    delay_1s();

    P1OUT=0x24;

    seg7s(8);

    seg7s2(5);

    delay_1s();

    P1OUT=0x24;

    seg7s(7);

    seg7s2(4);

    delay_1s();

    P1OUT=0x24;

    seg7s(6);

    seg7s2(3);

    delay_1s();

    P1OUT=0x24;

    seg7s(5);

    seg7s2(2);

    delay_1s();

    P1OUT=0x24;

    seg7s(4);

    seg7s2(1);

    delay_1s();

    P1OUT=0x44;

    seg7s(3);

    seg7s2(3);

    delay_1s();

    P1OUT=0x44;

    seg7s(2);

    seg7s2(2);

    delay_1s();

    P1OUT=0x44;

    seg7s(1);

    seg7s2(1);

    delay_1s();

  }

}


void seg7s(unsigned char data_seg7)

{

  unsigned char code_seg7;

  code_seg7=decoder_seg7[data_seg7];

  P2OUT&=~BIT0;

  if(code_seg7&0x80)       //D7

  {

    P2OUT|=BIT1;

  }

  else

  {

    P2OUT&=~BIT1;

  }

  P2OUT|=BIT0;

  P2OUT&=~BIT0;

  

  if(code_seg7&0x40)       //D6

  {

    P2OUT|=BIT1;

  }

  else

  {

    P2OUT&=~BIT1;

  }

  P2OUT|=BIT0;

  P2OUT&=~BIT0;

  

  if(code_seg7&0x20)       //D5

  {

    P2OUT|=BIT1;

  }

  else

  {

    P2OUT&=~BIT1;

  }

  P2OUT|=BIT0;

  P2OUT&=~BIT0;

  

  if(code_seg7&0x10)       //D4

  {

    P2OUT|=BIT1;

  }

  else

  {

    P2OUT&=~BIT1;

  }

  P2OUT|=BIT0;

  P2OUT&=~BIT0;

  

  if(code_seg7&0x08)       //D3

  {

    P2OUT|=BIT1;

  }

  else

  {

    P2OUT&=~BIT1;

  }

  P2OUT|=BIT0;

  P2OUT&=~BIT0;

  

  if(code_seg7&0x04)       //D2

  {

    P2OUT|=BIT1;

  }

  else

  {

    P2OUT&=~BIT1;

  }

  P2OUT|=BIT0;

  P2OUT&=~BIT0;

  

  if(code_seg7&0x02)       //D1

  {

    P2OUT|=BIT1;

  }

  else

  {

    P2OUT&=~BIT1;

  }

  P2OUT|=BIT0;

  P2OUT&=~BIT0;

  

  if(code_seg7&0x01)       //D0

  {

    P2OUT|=BIT1;

  }

  else

  {

    P2OUT&=~BIT1;

  }

  P2OUT|=BIT0;

  P2OUT&=~BIT0;

}

void seg7s2(unsigned char data_seg7)

{

  unsigned char code_seg7;

  code_seg7=decoder_seg7[data_seg7];

  P2OUT&=~BIT0;

  if(code_seg7&0x80)       //D7

  {

    P2OUT|=BIT3;

  }

  else

  {

    P2OUT&=~BIT3;

  }

  P2OUT|=BIT2;

  P2OUT&=~BIT2;

  

  if(code_seg7&0x40)       //D6

  {

    P2OUT|=BIT3;

  }

  else

  {

    P2OUT&=~BIT3;

  }

  P2OUT|=BIT2;

  P2OUT&=~BIT2;

  

  if(code_seg7&0x20)       //D5

  {

    P2OUT|=BIT3;

  }

  else

  {

    P2OUT&=~BIT3;

  }

  P2OUT|=BIT2;

  P2OUT&=~BIT2;

  

  if(code_seg7&0x10)       //D4

  {

    P2OUT|=BIT3;

  }

  else

  {

    P2OUT&=~BIT3;

  }

  P2OUT|=BIT2;

  P2OUT&=~BIT2;

  

  if(code_seg7&0x08)       //D3

  {

    P2OUT|=BIT3;

  }

  else

  {

    P2OUT&=~BIT3;

  }

  P2OUT|=BIT2;

  P2OUT&=~BIT2;

  

  if(code_seg7&0x04)       //D2

  {

    P2OUT|=BIT3;

  }

  else

  {

    P2OUT&=~BIT3;

  }

  P2OUT|=BIT2;

  P2OUT&=~BIT2;

  

  if(code_seg7&0x02)       //D1

  {

    P2OUT|=BIT3;

  }

  else

  {

    P2OUT&=~BIT3;

  }

  P2OUT|=BIT2;

  P2OUT&=~BIT2;

  

  if(code_seg7&0x01)       //D0

  {

    P2OUT|=BIT3;

  }

  else

  {

    P2OUT&=~BIT3;

  }

  P2OUT|=BIT2;

  P2OUT&=~BIT2;

}

void delay_1s(void)

{

  unsigned long data_delay1s;

  for(data_delay1s=0;data_delay1s<6654;data_delay1s++);

}


关键字:MSP340  单片机  IAR  简易交通灯系统 引用地址:MSP340单片机IAR-简易交通灯系统Proteus仿真程序

上一篇:基于MSP430单片机的温度控制系统设计与实现
下一篇:proteus仿真msp430,实现一个按键矩阵扫描和UART发送

推荐阅读最新更新时间:2024-11-13 11:42

51单片机C51精确延时
如下程序能实现ms级的比较精确的延时: void Delayms(unsigned int n) { unsigned int i,j; for(j=n;j 0;j--) for(i=112;i 0;i--); } 用keil可以看出这个延时的时间,我们先延时1ms(Delayms(1))。 进入Delayms前,sec=0.00042209s 延时后,sec=0.00142253s 可以知道Delayms(1)实际延时0.00142253s 0.00042209s=0.00100044s 1ms 同样如果想延时15ms的话,用Delayms(15),实际延时0.01480903s 15ms
[单片机]
51<font color='red'>单片机</font>C51精确延时
【STC单片机学习】第十二课 单片机的电机(步进电机)
1.12.1.直流电机 1.12.1.1、什么是电机 电机就是电动机,把电能转化成动能 原理:通电导线在磁场中受到力的作用 1.12.1.2、常见电机 (1)交流电机:两相(两根火线)、三相(三根火线) (2)直流电机:永磁(永磁铁)、励磁(电磁铁,线圈磁生电) :玩具小车里面一般都是直流电机 (3)步进电机、伺服电机(可以精确控制,毫米级别的控制):精确控制尺寸,常用在机械的自动化控制。精度:伺服电机 步进电机 1.12.1.3、直流电机详解 (1)外观 磁生电、电生力---这个力是安培力,微观上叫作洛伦兹力! (2)接线和工作原理 支出来两根线,两个引脚没有正负之分,不同的接法,控制的是里面线圈的转动
[单片机]
【STC<font color='red'>单片机</font>学习】第十二课 <font color='red'>单片机</font>的电机(步进电机)
初尝Linux下的AVR单片机开发
此前接触过AVR单片机,发现无论是书店里面的教材,还是网上一大堆的中文资料,无一例外都是说windows下使用WinAVR、ICCAVR之类的,Linux方面的简直只字不提,难道这就是传说中的中国国情?外国情况可很不一样,玩单片机的Geek一般都很哈Linux,做单片机开发的软件一应俱全,当然还是开源的。 昨天从淘宝重新买了条USB的下载线,回来一看是USBasp的设计,附送的光盘当然也是win下的驱动和说明了,忽略。 插上下载器,lsusb,认倒是认出来了,叫做VOIT,那怎么用呢?上网一搜,原来USBasp是德国人的设计http://www.fischl.de/usbasp/,GPL的,其中提到AVRDUDE支持USB
[单片机]
51单片机计数器编程举例 计数值到一定大小后中断报警
程序: ORG 0000H AJMP START ORG 001BH AJMP TIMER1 ;定时器1的 中断 处理 ORG 30H START: MOV SP,#5FH MOV TMOD,#01010000B ;定时/计数器1作计数用,模式1,0不用全置0 MOV TH1,#0FFH MOV TL1,#0FAH ;预置值,要求每计到6个脉冲即为一个事件 SETB EA SETB ET1 ;开总中断和定时器1中断允许 SETB TR1 ;启动计数器1开始运行. AJMP $ TIMER1: PUSH ACC PUSH PSW CPL P1.0 ;计数值到,即取反P1.0 MOV TH1,#0F
[单片机]
stm32系列MCU芯片选型表
本文为stm32系列32位微控制器选型表,包括STM32F0系列、STM32L1系列、STM32F1系列、STM32F2系列、STM32F3系列、STM32F4系列选型,STM32系列36脚、48脚、64脚、100脚、144脚选型。 TM32系列36脚、48脚、64脚、100脚、144脚选型: STM32系列按内核架构分类产品选型: STM32F0 系列 STM32L1 系列 STM32F1 系列 STM32F2 系列 STM32F3 系列 STM32F4 系列
[单片机]
stm32系列<font color='red'>MCU</font>芯片选型表
PIC单片机三个定时器中断同时定时
16F877A有三个定时器,中断方式都调试出来了,想把它们整合到一块同时工作,可搞了半天,就是不干。最后整明白了,PIC16系列单片机的中断入口中有一个。PIC的功能是很强大,外围模块也多,速度也较快,但PIC的这个中断方案不好,应该改进。以下是三个定时中断同时工作的调试代码。 #include pic.h #define uchar unsigned char #define uint unsigned int __CONFIG(0x3B31); void init(); uint Timer0Num,Timer1Num,Timer2Num;// void timer0(); void timer1(); void timer
[单片机]
瑞萨推出全新RA8入门级MCU产品群, 提供极具性价比的高性能Arm Cortex-M85处理器
RA8E1与RA8E2提供理想的标量和矢量计算性能以及同类卓越的功能集,满足价值导向型市场需求 2024 年 11 月 5 日,中国北京讯 - 全球半导体解决方案供应商瑞萨电子 今日宣布,推出RA8E1和RA8E2微控制器(MCU)产品群,进一步扩展其业界卓越和广受欢迎的MCU系列。 2023年推出的RA8系列MCU是首批采用Arm® Cortex®-M85处理器的MCU,实现市场领先的6.39 CoreMark/MHz(注)性能。新款RA8E1和RA8E2 MCU在保持同等性能的同时,通过精简功能集降低成本,成为工业和家居自动化、办公设备、医疗保健和消费品等大批量应用的理想之选。 RA8E1和RA8E2 MCU采用
[单片机]
瑞萨推出全新RA8入门级<font color='red'>MCU</font>产品群,  提供极具性价比的高性能Arm Cortex-M85处理器
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved