电子技术论坛

 找回密码
 快速注册

QQ登录

只需一步,快速开始

搜索
下载方法|用单线程|避免多扣帖子规范|求助必读|发帖建议积分策略|勋章介绍|新人必读获取金币|推广论坛|出售帖子基本礼节|致会员信|版规总则
禁涉政治|反对低俗|举报专帖征集相片|留下足迹|推荐精华上传附件|制作分卷|使用网盘禁发qq群|恶意灌水|纯表情帖加入团队|监督机制|安全上网
查看: 17813|回复: 59

夸夸跟我学51单片机的爱徒

[复制链接]
发表于 2016-9-17 12:05:42 | 显示全部楼层 |阅读模式

注册家电维修技术论坛,与同行畅聊维修技术,享更多技术论坛功能。

您需要 登录 才可以下载或查看,没有帐号?快速注册

x

我的爱徒跟我学51单片机,我给他讲了一些基本知识,教会他编写了几个简单的程序后(总共教了他不到10小时),出了下面这道练习题让他做:

在P1口的8个脚与地之间分别接8个按钮开关作8路输入,在5V 与P2口的8个脚之间分别串接1k限流电阻和发光二极管作8路输出,要求每按下一个输入按钮,对应的灯亮,松手灯灭。

他看题后想了大约2分钟,神秘地冲我一边笑一边说:“如果没有对语句数量进行限制的话,我有3套方案,并且都能达到要求。”我听后觉得可笑,心想:连师傅我心里都没有3套方案呢,你小子就吹吧!他见我满脸疑惑,就半认真半开玩笑地说:“我们打赌------输的要请吃‘麦当劳’!”我随便答了他一句:“好呀。”于是他一口气在键盘上敲出了如下3套方案:

//方案一//
      //要求:按下对应输入按钮,相应的输出灯亮,松手灯就灭。//
                                       
      #include<reg52.h>   //代入头文件//
     sbit X0=P1^0;     // 定义8个输入端口   
     sbit X1=P1^1;         
     sbit X2=P1^2;            
     sbit X3=P1^3;           
     sbit X4=P1^4;            
     sbit X5=P1^5;            
     sbit X6=P1^6;            
     sbit X7=P1^7;               
           
     sbit Y0=P2^0;      //定义8个输出端口   
     sbit Y1=P2^1;         
     sbit Y2=P2^2;        
     sbit Y3=P2^3;        
     sbit Y4=P2^4;         
     sbit Y5=P2^5;
     sbit Y6=P2^6;           
     sbit Y7=P2^7;         
     
void  main( )//主程序
{
      
  while(1)//大循环
{
                     
   if(X0==0){Y0=0; }  //X0按下Y0灯亮
   if(X0==1){Y0=1; }  //X0松手Y0灯灭
   if(X1==0){Y1=0; }  //X1按下Y1灯亮
   if(X1==1){Y1=1; }  //X1松手Y1灯灭
   if(X2==0){Y2=0; }  //X2按下Y2灯亮
   if(X2==1){Y2=1; }  //X2松手Y2灯灭
   if(X3==0){Y3=0; }  //X3按下Y3灯亮
   if(X3==1){Y3=1; }  //X3松手Y3灯灭
   if(X4==0){Y4=0; }  //X4按下Y4灯亮
   if(X4==1){Y4=1; }  //X4松手Y4灯灭
   if(X5==0){Y5=0; }  //X5按下Y5灯亮
   if(X5==1){Y5=1; }  //X5松手Y5灯灭
   if(X6==0){Y6=0; }  //X6按下Y6灯亮
   if(X6==1){Y6=1; }  //X6松手Y6灯灭
   if(X7==0){Y7=0; }  //X7按下Y7灯亮
   if(X7==1){Y7=1; }  //X7松手Y7灯灭
           
                                 
           }
}
//方案二//
      //要求:按下对应输入按钮,相应的输出灯亮,松手灯就灭。//
                                       
      #include<reg52.h>   //代入头文件//
     sbit X0=P1^0;     // 定义8个输入端口   
     sbit X1=P1^1;         
     sbit X2=P1^2;            
     sbit X3=P1^3;           
     sbit X4=P1^4;            
     sbit X5=P1^5;            
     sbit X6=P1^6;            
     sbit X7=P1^7;               
           
     sbit Y0=P2^0;      //定义8个输出端口   
     sbit Y1=P2^1;         
     sbit Y2=P2^2;        
     sbit Y3=P2^3;        
     sbit Y4=P2^4;         
     sbit Y5=P2^5;
     sbit Y6=P2^6;           
     sbit Y7=P2^7;         
     
void  main( )//主程序
{
      
    while(1)//大循环
   {
                     
    Y0=X0; //X0按下Y0灯亮,X0松手Y0灯灭
    Y1=X1; //X1按下Y1灯亮,X1松手Y1灯灭
    Y2=X2; //X2按下Y2灯亮,X2松手Y2灯灭
    Y3=X3; //X3按下Y3灯亮,X3松手Y3灯灭
    Y4=X4; //X4按下Y4灯亮,X4松手Y4灯灭
    Y5=X5; //X5按下Y5灯亮,X5松手Y5灯灭
    Y6=X6; //X6按下Y6灯亮,X6松手Y6灯灭
    Y7=X7; //X7按下Y7灯亮,X7松手Y7灯灭
                    
     }
}
                     
      //方案三//
      //要求:按下对应输入按钮,相应的输出灯亮,松手灯就灭。//
                                       
      #include<reg52.h>   //代入头文件//
  
void  main( )//主程序
{
      
    while(1)//大循环
   {
                     
      P2=P1; //一句搞定
                    
     }
}

亲爱的同道们,你知道我们师徒俩到底谁要请谁吃“麦当劳”吗?
发表于 2016-9-17 12:14:44 | 显示全部楼层
没学过,,,,,,,,,,,
发表于 2016-9-17 12:37:47 | 显示全部楼层

没学过,,,
发表于 2016-9-17 12:38:33 | 显示全部楼层
可惜没学过单片机 遗憾
 楼主| 发表于 2016-9-17 12:58:56 | 显示全部楼层
陈记电行 发表于 2016-9-17 12:38
可惜没学过单片机 遗憾

老陈DIY的白光烙铁不错呀!就凭你这能力,学单片机应该不会很难的!
发表于 2016-9-17 13:14:01 | 显示全部楼层
学这玩意对于我来说就好比叫我站树上拉屎---做不到
 楼主| 发表于 2016-9-17 13:32:57 | 显示全部楼层
yuyangan 发表于 2016-9-17 13:14
学这玩意对于我来说就好比叫我站树上拉屎---做不到

很欣赏你的《元件级维修第一季——液晶电视维修案例集锦》。不知道称呼你叫大哥好,还是大姐好(头像是大姐呀)?你不是做不到,而是不想去学!对吧?
发表于 2016-9-18 16:05:20 | 显示全部楼层
lhxtzlhxtz 发表于 2016-9-17 13:32
很欣赏你的《元件级维修第一季——液晶电视维修案例集锦》。不知道称呼你叫大哥好,还是大姐好(头像是大 ...

真容易学吗?看着一串数字心里就乱了。麻烦问下楼主这个要怎么学,有没有系统的学习方法?
 楼主| 发表于 2016-9-18 17:09:18 | 显示全部楼层
tda1675 发表于 2016-9-18 16:05
真容易学吗?看着一串数字心里就乱了。麻烦问下楼主这个要怎么学,有没有系统的学习方法?

先上优酷网听一些大师讲课,再买些有关的元件回来做实验!千万不要买那些有姿势,无实际的开发板,这对你以后的做工程不会有大作用,还花钱多!
发表于 2016-9-19 20:54:23 | 显示全部楼层
这个是最初级的,这是用c语言写的。学单片机第一堂课做的实验
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|家电维修技术论坛 ( 鄂ICP备09003585号-2 )

GMT+8, 2024-11-22 04:23 , Processed in 0.065318 second(s), 3 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

CopyRight © 电子技术论坛
电子邮箱:8794149@qq.com | 联系 QQ:3081868839 | 官方网址:www.dzdu.com

Qiji. All Rights Reserved


服务条款 | 站长声明

Wuhan Qiji Technology Co., Ltd.武汉奇迹科技有限公司版权所有


鄂ICP备09003585号-2鄂公网安备42010602000420号

快速回复 返回顶部 返回列表