导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[红蚂蚁]初学者:感谢各位的帮助,我的学C51后的



No.7798
作者:红蚂蚁
邮件:
ID:2468
登陆:1次
文章数:8篇
最后登陆IP:
最后登陆:2002/5/23 11:36:00
注册:2002/5/23 11:36:00
财富:32
发帖时间:2002/5/24 12:57:00
发贴者IP:218.12.100.3
标题:红蚂蚁:初学者:感谢各位的帮助,我的学C51后的第一个小程序出来了,贴出来,大家帮我看看还有什么可以改进的地方。
摘要:No.7798初学者:感谢各位的帮助,我的学C51后的第一个小程序出来了,贴出来,大家帮我看看还有什么可以改进的地方。 /*p1.0~p1.3 接按键,低电平有效,防抖40ms。按一次亮,再按一次灭。
  四个键不可同时按下。按一个键超过30s,开始闪烁,直到松开为止。
  p2.0~p2.3 接led, 低电平有效
  p3.7      工作灯,低电平有效。周期0.4s
  key 为键值积存器
  _tt1为防抖使用时间积存器
  _tt2为工作灯使用时间积存器
  _tt3为3秒后闪烁计数器
  p1reg为p1口上次值积存器
  
*/


#include <reg51.h>

unsigned char key=0xff;
unsigned int _tt1=0;
unsigned char _tt2=0;
unsigned char _tt3=0;
unsigned char p1reg=0xff;  

sbit p20=P2^0;
sbit p21=P2^1;
sbit p22=P2^2;
sbit p23=P2^3;

sbit p37=P3^7;

/*TO中断服务子程序 */

void  timer0(void) interrupt 1 using 2
{   
   TH0=-2000/256;
   TL0=-2000%256;
   _tt2++;
   _tt3++;
   if((P1^p1reg)&&(P1!=0xff))  /*下降沿*/ 
     {  
        _tt1++;
        key=P1;
        key=~key;
            if(_tt1>10000)
               {  _tt1=10000;                
                  if((P1^p1reg)&&(P1!=0xff))                  
                   { if (_tt3>50)
                    { switch(key)
                      {   case 1:p20=!p20;break;
                          case 2:p21=!p21;break; 
                          case 4:p22=!p22;break;
                          case 8:p23=!p23;break;
                          default :break;
                      }
                      _tt3=0;
            ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:31毫秒 最大:78531毫秒 查询6次