最适合新手初学单片机的40个实验免费下载

给初学者单片机的40个实验,带源码,需要资料的加群:813238832
也可以到闯客网技术论坛下载更多关于单片机,MTK的资料和学习案例

模拟开关灯

1. 实验任务
如图4.2.1所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。

2.电路原理图

图一

更多资料在闯客网下载链接:https://bbs.usoftchina.com/thread-200737-1-1.html

  3. 系统板上硬件连线
  (1). 把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上;
(2). 把“单片机系统”区域中的P3.0端口用导线连接到“四路拨动开关”区域中的K1端口上;

  4. 程序设计内容
  (1). 开关状态的检测过程
  单片机对开关状态的检测相对于单片机来说,是从单片机的P3.0端口输入信号,而输入的信号只有高电平和低电平两种,当拨开开关K1拨上去,即输入高电平,相当开关断开,当拨动开关K1拨下去,即输入低电平,相当开关闭合。单片机可以采用JB BIT,REL或者是JNB BIT,REL指令来完成对开关状态的检测即可。
  (2). 输出控制
如图3所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。

5.程序框图

图二

  6. 汇编源程序 ORG 00H
  START: JB P3.0,LIG
  CLR P1.0
  SJMP START
  LIG: SETB P1.0
  SJMP START
END

  7. C语言源程序
  #include <AT89X51.H>
  sbit K1=P3^0;
  sbit L1=P1^0;
  void main(void)
  {
  while(1)
  {
  if(K1==0)
  {
  L1=0; //灯亮
  }
  else
  {
  L1=1; //灯灭
  }
  }
}

3.多路开关状态指示

  1. 实验任务
如图4.3.1所示,AT89S51单片机的P1.0-P1.3接四个发光二极管L1-L4,P1.4-P1.7接了四个开关K1-K4,编程将开关的状态反映到发光二极管上。(开关闭合,对应的灯亮,开关断开,对应的灯灭)。

2.电路原理图

图三

  3. 系统板上硬件连线
  (1. 把“单片机系统”区域中的P1.0-P1.3用导线连接到“八路发光二极管指示模块”区域中的L1-L4端口上;
(2. 把“单片机系统”区域中的P1.4-P1.7用导线连接到“四路拨动开关”区域中的K1-K4端口上;

  4. 程序设计内容
  (1. 开关状态检测
  对于开关状态检测,相对单片机来说,是输入关系,我们可轮流检测每个开关状态,根据每个开关的状态让相应的发光二极管指示,可以采用JB P1.X,REL或JNB P1.X,REL指令来完成;也可以一次性检测四路开关状态,然后让其指示,可以采用MOV A,P1指令一次把P1端口的状态全部读入,然后取高4位的状态来指示。
  (2. 输出控制
根据开关的状态,由发光二极管L1-L4来指示,我们可以用SETB P1.X和CLR P1.X指令来完成,也可以采用MOV P1,#1111XXXXB方法一次指示。

5.程序框图

图四

  6.读P1口数据到ACC中
  ACC内容右移4次
  ACC内容与F0H相或
  ACC内容送入P1口
  <![endif]-->
  图4.3.2
  6. 方法一(汇编源程序)
  ORG 00H
  START: MOV A,P1
  ANL A,#0F0H
  RR A
  RR A
  RR A
  RR A
  ORl A,#0F0H
  MOV P1,A
  SJMP START
END

  7. 方法一(C语言源程序)
  #include <AT89X51.H>
  unsigned char temp;
  void main(void)
  {
  while(1)
  {
  temp=P1>>4;
  temp=temp | 0xf0;
  P1=temp;
  }
}

  8. 方法二(汇编源程序)
  ORG 00H
  START: JB P1.4,NEXT1
  CLR P1.0
  SJMP NEX1
  NEXT1: SETB P1.0
  NEX1: JB P1.5,NEXT2
  CLR P1.1
  SJMP NEX2
  NEXT2: SETB P1.1
  NEX2: JB P1.6,NEXT3
  CLR P1.2
  SJMP NEX3
  NEXT3: SETB P1.2
  NEX3: JB P1.7,NEXT4
  CLR P1.3
  SJMP NEX4
  NEXT4: SETB P1.3
  NEX4: SJMP START
END

  9. 方法二(C语言源程序)
  #include <AT89X51.H>
  void main(void)
  {
  while(1)
  {
  if(P1_4==0)
  {
  P1_0=0;
  }
  else
  {
  P1_0=1;
  }
  if(P1_5==0)
  {
  P1_1=0;
  }
  else
  {
  P1_1=1;
  }
  if(P1_6==0)
  {
  P1_2=0;
  }
  else
  {
  P1_2=1;
  }
  if(P1_7==0)
  {
  P1_3=0;
  }
  else
  {
  P1_3=1;
  }
  }
  }

原文地址:http://blog.51cto.com/13992459/2300829

时间: 2024-10-18 07:22:24

最适合新手初学单片机的40个实验免费下载的相关文章

汉化入门教程Ⅱ(绝对适合新手)By:1595901624

距离上一篇帖子,有一段时间了,为普及全民汉化,我再写这篇进阶教程 [疑问]在上一篇帖子有些网友,对某些问题有疑问,我在这里解答下: 疑问1.软件加了壳是否就没办法汉化了?答:是可以汉化的,因为Radialix带有自动脱壳功能. 疑问2.对于某些软件,为什么我已经汉化了,运行程序还是英文(或者汉化完不生成汉化资源文件)?答:由于上篇教程是初级教程,所以对于某些软件要特殊对待. 以上问题我会在今天的教程中,做详细解答: 今天用到的软件有:1.Radialix 32.SavageEd1.46(一款很小

10步教你学会简单的MVC架构的java程序(适合新手)

适合新手,大拿手下留情,谢谢! 第1步:安装Oracle数据库,安装过程不赘述了: 第2步:新建一个账号zwp_test //创建临时表空间 create temporary tablespace zwp_test_temp tempfile 'F:\app\Administrator\oradata\zwp_test_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; //创建数

汉化入门教程(绝对适合新手) By:1595901624

高手勿喷,此汉化教程仅适合新手,高手请绕道 有人说图片太小,我不太会弄,word文档已上传 本文所用到的所有软件都会上传到百度云盘 所谓汉化就是,将非中文的软件国语化,我们我们常见的需要汉化软件大部分都是英文的,汉化软件很多,当然一款汉化软件并不能汉化所有的软件,通俗地讲,有的软件需要特定的软件来汉化,而今天所用的本地化软件叫做Radialix 3(以下简称该软件),一款强大的本地化软件,有自动翻译的功能.具体介绍就不多说了,大家可以百科,下面教程开始 1.      软件的安装与破解,由于该软

一个特别适合新手练习的Android小项目——每日一妹纸

介绍 每天更新一张精选妹纸图片,第一版目前已完成,本项目会持续更新,遇到任何问题欢迎与我联系^_^ 为什么说这是一个特别适合新手练习的小项目? 服务器API接口功能丰富且无访问次数限制 包含了常见的网络通信,数据缓存等功能 使用了流行的Realm,Retrofit,Glide,Butterknife等开源项目,方便新手学习他们的使用 遵循Material Design规则 示例 项目当然是开源的啦,源码请戳下面的链接 https://github.com/SparkYuan/Meizi ----

适合新手的web开发环境

学习web开发,环境搭建是必不可少的一个环节.你可以使用wamp一键安装包,或者使用sae.bae.gae这种PaaS平台来部署,或者安装*nix系统在本地部署. 对于一个希望体验LAMP式建站的新手而言,一个简单可行的方案是:虚拟机中安装Linux,在Windows下写代码,通过ftp部署代码. 首先,我们假定你平时用的操作系统是windows.不然的话,Linux.Mac OSX上都有命令行和终端可以用,本机部署就行. 然后,安装虚拟机VirtualBox,并在VritualBox中安装一个

C# 集合详解 (适合新手)

System.Collections 命名空间包含接口和类,这些接口和类定义各种对象(如列表.队列.位数组.哈希表和字典)的集合.System.Collections.Generic 命名空间包含定义泛型集合的接口和类,泛型集合允许用户创建强类型集合,它能提供比非泛型强类型集合更好的类型安全性和性能.System.Collections.Specialized 命名空间包含专用的和强类型的集合,例如,链接的列表词典.位向量以及只包含字符串的集合. 在System.Collections命名空间中

Linux下Gvim 的基本操作-适合新手看

Linux下Gvim 的基本操作 vi 有三种方式 编辑方式 插入方式 命令方式在命令方式下,所有命令以“:”开始,所键入的字符系统均作为命令处理在命令方式下,按下i就会进入插入模式,用户输入的可视字符都添加到文件中,按下Esc键,就回到命令状态 基本命令光标命令:k,j,h,l-----上下左右移动光标nG-------跳转命令.n为行数,该命令立即跳转到指定的行Ctrl+G -----报告光标所在位置的行数和列数w,b----- 使光标向前或者向后跳过一个单词 编辑命令:i,a,r----在

Java闭关修炼64课 很适合新手学习的JAVA视频教程

Java闭关修炼64课 很适合新手学习的JAVA视频教程 java闭关修炼第一课 什么是java(1).rar  java闭关修炼第一课 什么是java.rar  java闭关修炼第七课 基础语言要素(1).rar  java闭关修炼第七课 基础语言要素.rar  java闭关修炼第三十一课 静态方法(1).rar  java闭关修炼第三十一课 静态方法.rar  java闭关修炼第三十七课 成员初始化顺序讨论(1).rar  java闭关修炼第三十七课 成员初始化顺序讨论.rar  java闭

spring mvc开发入门实例demo源代码下载,很适合新手入门学习用。

原文:spring mvc开发入门实例demo源代码下载,很适合新手入门学习用. 源代码下载:http://www.zuidaima.com/share/1550463469046784.htm Eclipse + Maven + Spring MVC - Simple Example 源代码框架截图: