单片机实例1——闪烁灯(硬件电路图+汇编程序+C语言程序)
1. 闪烁灯
1. 实验任务
如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。
2. 电路原理图
图4.1.1
3. 系统板上硬件连线
把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。
4. 程序设计内容
(1). 延时程序的设计方法
作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太大,所以我们在执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是如何设计呢?下面具体介绍其原理:
如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒
机器周期 微秒
MOV R6,#20 2个 2
D1: MOV R7,#248 2个 2 2+2×248=498 20×
DJNZ R7,$ 2个 2×248 (498
DJNZ R6,D1 2个 2×20=40 10002
因此,上面的延时程序时间为10.002ms。
由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时,延时10ms,以此为基本的计时单位。如本实验要求0.2秒=200ms,10ms×R5=200ms,则R5=20,延时子程序如下:
DELAY: MOV R5,#20
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
(2). 输出控制
如图1所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。
5.程序框图
如图4.1.2所示
图4.1.2
6. 汇编源程序
ORG 0
START: CLR P1.0
LCALL DELAY
SETB P1.0
LCALL DELAY
LJMP START
DELAY: MOV R5,#20 ;延时子程序,延时0.2秒
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END
7. C语言源程序
#include <AT89X51.H>
sbit L1=P1^0;
void delay02s(void) //延时0.2秒子程序
{
unsigned char i,j,k;
for(i=20;i>0;i--)
for(j=20;j>0;j--)
for(k=248;k>0;k--);
}
void main(void)
{
while(1)
{
L1=0;
delay02s();
L1=1;
delay02s();
}
单片机实例1——闪烁灯(硬件电路图+汇编程序+C语言程序)相关推荐
- 单片机实例22——电子琴(硬件电路图+汇编程序+C语言程序)
22. 电子琴 1. 实验任务 (1. 由4X4组成16个按钮矩阵,设计成16个音. (2. 可随意弹奏想要表达的音乐. 2. 电路原理图 图4.22.1 3. 系统板硬件连线 (1. 把" ...
- 单片机实例4——广告灯的左移右移(硬件电路图+汇编程序+C语言程序)
4. 广告灯的左移右移 1. 实验任务 做单一灯的左移右移,硬件电路如图4.4.1所示,八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出"0"时,发光二极管亮 ...
- 单片机实例3——多路开关状态指示(硬件电路图+汇编程序+C语言程序)
3. 多路开关状态指示 1. 实验任务 如图4.3.1所示,AT89S51单片机的P1.0-P1.3接四个发光二极管L1-L4,P1.4-P1.7接了四个开关K1-K4,编程将开关的状态反映到发光二极 ...
- 单片机实例2——模拟开关灯(硬件电路图+汇编程序+C语言程序)
2. 模拟开关灯 1. 实验任务 如图4.2.1所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭. 2. 电 ...
- 单片机实例6——报警产生器(硬件电路图+汇编程序+C语言程序)
6. 报警产生器 1. 实验任务 用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开 ...
- 单片机实例21——拉幕式数码显示技术(硬件电路图+汇编程序+C语言程序)
21. 拉幕式数码显示技术 1. 实验任务 用AT89S51单片机的P0.0/AD0-P0.7/AD7端口接数码管的a-h端,8位数码管的S1-S8通过74LS138译码器的Y0-Y7来控制选通每个数 ...
- 单片机实例26——点阵式LED简单图形显示技术(硬件电路图+汇编程序+C语言程序)
26. 点阵式LED简单图形显示技术 1. 实验任务 在8X8点阵式LED显示"★"."●"和心形图,通过按键来选择要显示的图形. 2. 电路原理图 图4.26 ...
- 单片机实例14——4×4矩阵式键盘识别技术(硬件电路图+汇编程序+C语言程序)
14. 4×4矩阵式键盘识别技术 1. 实验任务 如图4.14.2所示,用AT89S51的并行口P1接4×4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线:在数码管上显示每个按键 ...
- 单片机实例19—— “叮咚”门铃(硬件电路图+汇编程序+C语言程序)
19. "叮咚"门铃 1. 实验任务 当按下开关SP1,AT89S51单片机产生"叮咚"声从P1.0端口输出到LM386,经过放大之后送入喇叭. 2. 电路原理 ...
最新文章
- 北京智源人工智能研究院启动“智源学者计划”,与旷视发布首个智源联合实验室
- IT业爆发“新人”争夺战
- c++ 新建一个数组
- 组装电脑最容易犯的五大错误
- 使用Redis Stream来做消息队列和在Asp.Net Core中的实现
- Django复习:视图和模版
- 近期 AI 领域招聘招生信息汇总
- android 应用区高度,Android创建显示区高度可以调整的ScrollView
- 怎么去调需要登录的接口_遇到需要的登录的网站怎么办?学好python,用这3招轻松搞定...
- 程序员除了会 CRUD 之外,还应该知道什么叫 CQRS!
- java web应用程序_说说Java Web中的Web应用程序|乐字节
- BootStrap学习(1)
- STM32 磁场传感器HMC5883
- UART协议就应该这么理解
- 哈工大计算机保研面试专业课问题,[转载]哈工大保研面试
- 工作三年的java程序员修行之路
- 河北外国语学院计算机宿舍,2021年河北外国语学院新生宿舍条件和宿舍环境图片...
- ai人工智能测面相 准吗_金融界的AI:如何最终开始相信自己的回测[1/3]
- 图解线性相关与线性无关(引出可逆矩阵、奇异矩阵)
- golang 读取Response Body 超时问题
热门文章
- 天天在做的数据可视化,才是企业数字化转型的关键
- vue父与子组件,子与子组件间的方法调用和通信
- php怎么给视频加水印,视频怎么加水印 添加文字水印和图片水印 给视频加水印的软件...
- sql中的left join 查询
- 花与剑尚未获取服务器信息,花与剑澄心无忆攻略,触发条件及完成方式介绍
- 什么是Saas,以及什么是PLG下的Saas
- 图形 1.1渲染流水线(知识梳理笔记)
- windows7下系统保护中出现错误“文件名、目录名或卷标语法不正确。(0x8007007B)“ 以及保护设置列表中出现“Windows7_os(c:)(找不到)”选项时的解决方法...
- MySQL ERROR 1698 (28000) 错误
- 基于激光雷达的室内探测系统