标签:交通 cpp div 交通灯 include loading volatil def 情况
交通灯状态转换:
(其中黄灯会进行闪烁)
#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; } }
效果
注意:这里采用共阳极接法,引脚输出低电平时对应的发光二极管导通
标签:交通 cpp div 交通灯 include loading volatil def 情况
原文地址:https://www.cnblogs.com/yl-xy/p/13384612.html