欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

函数 单片机glint_为什么用单片机写的自锁开关程序,把开关放到P0.0脚后LED就开始闪烁?...

发布时间:2023/12/16 46 豆豆
生活随笔 收集整理的这篇文章主要介绍了 函数 单片机glint_为什么用单片机写的自锁开关程序,把开关放到P0.0脚后LED就开始闪烁?... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

其实程序简单没更没复杂呀简单事要搞复杂呢 见图程序: 图" class="ikqb_img_alink"> #include sbit k1=P3^2; sbit k2=P3^3; bit  glint;  //闪烁标志位 void delay() {  unsigned int i;  for(i=12000;i>0;i--); } main() {  while(1)  {   if(glint==1)   {    P0=~P0;    delay();   }   if(k1==0)   {    glint=0; //停止闪烁    P0=0;    //全亮    while(k1==0);   }   if(k2==0)   {    glint=1;  //始闪烁    while(k2==0);   }  } }@_@/*----------------------------------------------- ------------------------------------------------*/ #include //包含文件般情况需要改 //文件包含特殊功能寄存器定义 #define LED P0 sbit KEY1=P3^2; sbit KEY2=P3^3;// 用define sbit 关键字 定义 LEDP0端口 //LED自任意定义且容易记忆符号 void DelayUs2x(unsigned char t); void DelayMs(unsigned char t); unsigned char KeyScan(void);//函数声明 /*------------------------------------------------ 主函数 ------------------------------------------------*/ void main (void) { unsigned char num = 0; while (1) //主循环 { num=KeyScan(); switch(num) { case 1: LED=0xff; break; case 2: LED=0x00; //P0口赋值 0x00 DelayUs2x(10000); //调用延程序;更改延数字更改延度; //用于改变闪烁频率 LED=0xff; //P0口赋值 0xff DelayUs2x(10000); break; default: break; } DelayMs(1); } } /*------------------------------------------------ uS延函数含输入参数 unsigned char t返值 unsigned char 定义符号字符变量其值范围 0~255 使用晶振12M精确延请使用汇编,致延 度 T=tx2+5 uS ------------------------------------------------*/ void DelayUs2x(unsigned char t) { while(--t); } /*------------------------------------------------ mS延函数含输入参数 unsigned char t返值 unsigned char 定义符号字符变量其值范围 0~255 使用晶振12M精确延请使用汇编 ------------------------------------------------*/ void DelayMs(unsigned char t) { while(t--) { //致延1mS DelayUs2x(245); DelayUs2x(245); } } /*------------------------------------------------ 按键扫描函数返扫描键值 ------------------------------------------------*/ unsigned char KeyScan(void) { /********************************************************/ if(!KEY1) //检测低电平说明按键按 { DelayMs(10); //延抖般10-20ms if(!KEY1) //再确认按键否按没按则退 { while(!KEY1);//确认按按键等待按键释放没则退 { return 1; } } } /********************************************************/ else if(!KEY2) //检测低电平说明按键按 { DelayMs(10); //延抖般10-20ms if(!KEY2) //再确认按键否按没按则退 { while(!KEY2);//确认按按键等待按键释放没则退 { return 2; } } } else return 0; return 0 ; } 展开@_@啊!这个很简单啊,兄弟。你行的,加油!可能是驱动不足了,去掉电阻然后按P22口的开关测P21的电压是否正常。

总结

以上是生活随笔为你收集整理的函数 单片机glint_为什么用单片机写的自锁开关程序,把开关放到P0.0脚后LED就开始闪烁?...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。