使用C语言编写程序,51单片机通过四个开关(c10~c13)控制LED灯(8颗)的左移右移。
要求:
开关c10控制一颗LED灯向左移;
开关c11控制一颗LED灯向右移;
开关c12控制三颗LED灯同时向左移;
开关c13控制三颗LED灯同时向右移。
是循环移动,时间要求好像是 200ms。
题目链接:http://zhidao.baidu.com/question/680122406274752172.html
这不就太简单了!
如下即可:
#include<reg51.h>
#include<intrins.h>
main()
{
unsigned char i, j, M = 0, led1 = 0xfe, led3 = 0xf8;
while(1) {
if (M == 0) {P0 = led1; led1 = _cror_(led1, 1);} //P0外接LED
if (M == 1) {P0 = led1; led1 = _crol_(led1, 1);}
if (M == 2) {P0 = led3; led3 = _cror_(led3, 1);}
if (M == 3) {P0 = led3; led3 = _crol_(led3, 1);}
for(i = 0; i < 255; i++) for(j = 0; j < 200; j++);//延时约200ms
if(P1 == 0xfe) M = 0;
if(P1 == 0xfd) M = 1; //P1.0~P1.3,外接四个按键或开关
if(P1 == 0xfb) M = 2;
if(P1 == 0xf7) M = 3;
}
}
提问者评价:谢谢!