
//请依照
你的硬件输入相对值#defineKEY_ACTIVE_LEVEL(
请输入)#defineKEY1_PIN(请输握稿氏段散入)#defineKEY2_PIN(请输敬让入)#defineLED_ON_LEVEL(请输入)#defineLED_LOW_LEVEL(请输入)#defineLED_PIN(请输入)unsignedcharis_key1_press(void){reutrn(KEY1_PIN==KEY_ACTIVE_LEVEL)l}unsignedcharis_key2_press(void){reutrn(KEY2_PIN==KEY_ACTIVE_LEVEL)l}voidset_led_to(unsignedcharvalue){LED_PIN=value}voidmain(void){while(1){if(is_key1_press()&&is_key2_press()){set_led_to(LED_ON_LEVEL)}else{set_led_to(LED_OFF_LEVEL)}}}用MCS51单片机汇编语言编写的点亮一和兄穗只LED灯源程序LED1.ASM,尘含代码如唤卜下:
ORG 0000H
AJMPMAIN
ORG 0030H
MAIN:MOV A,#FEH
MOV P1,A
AJMP $
END
可以通过左首宴移
函数_crol_()和右移函数_cror_()来实现LED等的来回流动。 具体实现方法可以参考如下程序: #include #include #define uint unsigned int#define uchar unsigned charvoid delay(uint a)void main(){ P1=0xfewhile(1) { // 向左循环点亮LED for(i=0i<7i++) { P1=_crol_(P1,1)// 左移一位,点亮下一位LED delay(55)} // 向右循环租芹枝点亮LED for(i=0i/ 右移一位,,点亮上一位LED delay(55)} }}// 延时函数,延时a毫秒void delay(uint a){ uint x,yfor(x=ax>弊敏0x--) for(y=110y>0y--)}
评论列表(0条)