MSP430G2553 模拟交通灯
Posted yl-xy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MSP430G2553 模拟交通灯相关的知识,希望对你有一定的参考价值。
交通灯状态转换:
(其中黄灯会进行闪烁)
#include <msp430.h> typedef unsigned char uchar; typedef unsigned int uint; const uchar STATES[4] = { 0xCC, 0xD4, 0x78, 0xAC }; volatile uint i, j, current = 0; int main(void){ WDTCTL = WDTPW | WDTHOLD; P1DIR = 0xFF; P1OUT = 0xDB;//所有红灯亮 while(1){ for(i = 10000; i > 0; i--) ; P1OUT = STATES[current]; if(current == 1){ //黄灯闪烁 for(j = 8; j > 0; j--){ for(i = 5000; i > 0; i--) ; P1OUT ^= 0x08; } } else if(current == 3){ //黄灯闪烁 for(j = 8; j > 0; j--){ for(i = 5000; i > 0; i--) ; P1OUT ^= 0x40; } } //两种情况合并 // if(current == 1 || current == 3){ // // uchar bit_of_yellow_light = current == 1 ? 0x08 : 0x40; // // for(j = 8; j > 0; j--){ // for(i = 5000; i > 0; i--) // ; // P1OUT ^= bit_of_yellow_light; // } // } current = current == 3 ? 0 : current + 1; } }
效果
注意:这里采用共阳极接法,引脚输出低电平时对应的发光二极管导通
以上是关于MSP430G2553 模拟交通灯的主要内容,如果未能解决你的问题,请参考以下文章
基于msp430G2553的低频方波频率占空比峰峰值测量函数
怎么在烧录的时候在msp430g2553的information memory中烧录参数