单片机设计按键作为单片机输入信号,采用led实时指示按键编号的程序代码
1个回答
关注
展开全部
亲亲您好,很高兴为您解答。亲亲单片机设计按键作为单片机输入信号,采用led实时指示按键编号的程序代码#include #include "Timer0.h"#include "Key.h"#include unsigned char KeyNum,LEDMode;void main(){ P2=0xFE; Timer0Init(); while(1) { KeyNum=Key(); //获取独立按键键码 if(KeyNum) //如果按键按下 { if(KeyNum==1) //如果K1按键按下 { LEDMode++; //模式切换 if(LEDMode>=2)LEDMode=0; } } }}void Timer0_Routine() interrupt 1{ static unsigned int T0Count; TL0 = 0x18; //设置定时初值 TH0 = 0xFC; //设置定时初值 T0Count++; //T0Count计次,对中断频率进行分频 if(T0Count>=500)//分频500次,500ms { T0Count=0; if(LEDMode==0) //模式判断 P2=_crol_(P2,1); //LED输出 if(LEDMode==1) P2=_cror_(P2,1); }}希望本次服务能帮到您,您可以点击我的头像关注我,后续有问题方便再次向我咨询,期待能再次为您服务。祝您;生活愉快,一切顺利[温暖][温暖]
咨询记录 · 回答于2022-10-06
单片机设计按键作为单片机输入信号,采用led实时指示按键编号的程序代码
亲亲您好,很高兴为您解答。亲亲单片机设计按键作为单片机输入信号,采用led实时指示按键编号的程序代码#include #include "Timer0.h"#include "Key.h"#include unsigned char KeyNum,LEDMode;void main(){ P2=0xFE; Timer0Init(); while(1) { KeyNum=Key(); //获取独立按键键码 if(KeyNum) //如果按键按下 { if(KeyNum==1) //如果K1按键按下 { LEDMode++; //模式切换 if(LEDMode>=2)LEDMode=0; } } }}void Timer0_Routine() interrupt 1{ static unsigned int T0Count; TL0 = 0x18; //设置定时初值 TH0 = 0xFC; //设置定时初值 T0Count++; //T0Count计次,对中断频率进行分频 if(T0Count>=500)//分频500次,500ms { T0Count=0; if(LEDMode==0) //模式判断 P2=_crol_(P2,1); //LED输出 if(LEDMode==1) P2=_cror_(P2,1); }}希望本次服务能帮到您,您可以点击我的头像关注我,后续有问题方便再次向我咨询,期待能再次为您服务。祝您;生活愉快,一切顺利[温暖][温暖]
你这个代码可以用上吗
#include#defineucharunsignedchar#defineuintunsignedintsbitRED_A=P0^0;//东西向灯sbitYELLOW_A=P0^1;sbitGREEN_A=P0^2;sbitRED_B=P0^3;//南北向灯sbitYELLOW_B=P0^4;sbitGREEN_B=P0^5;ucharFlash_Count=0,OperaTIon_Type=1;//闪烁次数,操作类型变量//延时voidDelayMS(uintx){uchari;}while(x--)for(i=0;i《120;i++);//交通灯切换voidTraffic_Light(){switch(OperaTIon_Type){case1://东西向绿灯与南北向红灯亮RED_A=1;YELLOW_A=1;GREEN_A=0;RED_B=0;YELLOW_B=1;GREEN_B=1;DelayMS(2000);OperaTIon_Type=2;break;case2://东西向黄灯闪烁,绿灯关闭DelayMS(300);YELLOW_A=~YELLOW_A;GREEN_A=1;if(++Flash_Count!=10)return;//闪烁5次Flash_Count=0;OperaTIon_Type=3;break;case3://东西向红灯,南北向绿灯亮RED_A=0;YELLOW_A=1;GREEN_A=1;RED_B=1;YELLOW_B=1;GREEN_B=0;DelayMS(2000);Operation_Type=4;break;case4://南北向黄灯闪烁5次DelayMS(300);YELLOW_B=~YELLOW_B;GREEN_B=1;if(++Flash_Count!=10)return;Flash_Count=0;Operation_Type=1;}