初学单片机的40个实验(含汇编程序、C程序、流程图)

news/2025/3/4 6:08:42/

初学单片机的40个实验(含汇编程序、C程序、流程图)

 

给初学者单片机的40个实验,带源码,需要资料的加群:813238832

也可以到闯客网技术论坛下载更多关于单片机,MTK的资料和学习案例

 

模拟开关灯

 

1. 实验任务

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

 

  1. 电路原理图

图一

 

更多资料在闯客网下载链接: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端口输出低电平。

 

  1. 程序框图

图二

 

 

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; //灯灭

}

}

}

 

  1. 多路开关状态指示

 

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://www.ppmy.cn/news/771248.html

相关文章

Nextjs

一、Next.js 介绍 Next.js 是 React 服务端渲染应用框架. 用于构建 SEO 友好的 SPA 应用. 支持两种预渲染方式, 静态生成和服务器端渲染.基于页面的路由系统, 路由零配置自动代码拆分. 优化页面加载速度.支持静态导出, 可将应用导出为静态网站.内置 CSS-in-JS 库 styled-jsx方…

总体样本与样本均值X拔的一个重要公式推导

设总体 X X X ~ N ( μ , σ 2 ) N(μ, σ^2) N(μ,σ2)&#xff0c; X 1 &#xff0c; X 2 &#xff0c; … … &#xff0c; X n X_1&#xff0c;X_2&#xff0c;……&#xff0c;X_n X1​&#xff0c;X2​&#xff0c;……&#xff0c;Xn​是来自总体的样本&#xff0c;样本…

单片机实例21——拉幕式数码显示技术(硬件电路图+汇编程序+C语言程序)

21&#xff0e; 拉幕式数码显示技术 1&#xff0e; 实验任务 用AT89S51单片机的P0.0/AD0&#xff0d;P0.7/AD7端口接数码管的a&#xff0d;h端&#xff0c;8位数码管的S1&#xff0d;S8通过74LS138译码器的Y0&#xff0d;Y7来控制选通每个数码管的位选端。AT89S51单片机的P1.…

ANSYS-apdl命令流笔记3------生死单元法

生死单元法 文章目录 生死单元法前言一、单元杀死过程二、单元生成三、完整命令总结 前言 通过生成和杀死单元&#xff0c;可以模拟那些单元数随着载荷步的进行不断增加&#xff0c;对按照要求排序后生成和杀死的单元施加载荷和约束&#xff0c;进行循环求解&#xff0c;达到特…

二值神经网络(Binary Neural Network,BNN)

在我刚刚过去的研究生毕设中&#xff0c;我在ImageNet数据集上验证了图像特征二值化后仍然具有很强的表达能力&#xff0c;可以在检索中达到较好的效果。而Bengio大神的这篇文章&#xff0c;则不止于将特征二值化&#xff0c;而是要将权重和每层的激活值统统二值化。相比于非二…

NEORV32

NEORV32是一个高度可定制的RISC-V软核&#xff0c;由VHDL语言实现&#xff0c;后有人以Verilog实现。由于军工、航天部门较多选用VHDL&#xff0c;所以理论上NEORV32是非常稳定可靠的。NEORV32的资料非常详尽&#xff08;英文&#xff09;&#xff0c;Github上的更新也非常及时…

【Python】Numpy多项式详解

文章目录 多项式简介构造函数与图像运算符重载常用方法 多项式简介 Numpy.polynomial中封装了六种多项式类&#xff0c;除了常规的多项式 a 0 a 1 x ⋯ a n x n a_0a_1x\cdotsa_nx^n a0​a1​x⋯an​xn之外&#xff0c;还有五种在数学、物理中常用的正交多项式&#xff0c;…

NES专题——NES的游戏硬件

目录 摘要 一、墨盒&#xff08;Cartridges&#xff09; 二、Famicom磁盘系统&#xff08;Famicom Disk System &#xff09; 三、游戏精灵(Game Genie ) 四、控制手柄 五、Zapper&#xff08;捕捉器&#xff09; 六、参考资料 摘要 本文介绍了NES游戏机的相关游戏硬件…