
单片机原理及应用
文章平均质量分 65
尘光未歇
这个作者很懒,什么都没留下…
展开
-
单片机原理及应用:定时器/计数器综合应用
本文是《单片机原理及应用》专栏中的最后一篇文章,笔者以编译器的安装配置——51单片机简介——LED和数码管外设——开关和按键控制功能切换——外部中断系统——定时器与计数器为知识大纲,介绍了C语言编程控制51单片机的入门教程。作为收尾,我们将一同学习三个定时器/计数器的实际应用,不同于之间灯光和按键的组合,在这三个应用中都加入了其他外设,更复杂也更有创意,希望大家对单片机的学习也能兴致盎然、不断进取。原创 2024-01-13 14:10:14 · 2243 阅读 · 0 评论 -
单片机原理及应用:数码管定时秒表和LED计数器
大家可以自行改变按键对应的执行程序,与其他外设组合,比如让数码管显示不同的图案,也可以更改标志位的复制逻辑,单双击赋予不同的意义。仿真效果如下,为了让输出的电平更稳定,笔者采用了74LS245芯片,它是8路同相三态双向总线收发器,用来驱动LED或者其他的设备,可双向传输数据。原创 2024-01-11 16:24:41 · 1092 阅读 · 0 评论 -
单片机原理及应用:定时器与计数器中断
在一般单片机中,有2个16位可编程的硬件计数模块T0和T1,我们称其为计数器或定时器,顾名思义,该模块可以实现定时和计数两种功能,其功能由软件控制和切换。计数器就是对来自单片机外部的事件进行计数,外部计数事件由脉冲引入,单片机的P3.4(T0)和P3.5(T1)为外部计数脉冲输入端了,外部计数脉冲的频率不能高于晶振频率的1/24。它由16位定时器储存寄存器中的TL(0/1)的低5位和TH(0/1)的8位构成了13位的计数器,此时TL(0/1)的高3位未用。当TR1或TR0位被清零时,对应的定时器停止计数。原创 2024-01-11 11:35:32 · 1864 阅读 · 0 评论 -
单片机原理及应用:中断嵌套
中断嵌套是指中断系统正在执行一个中断服务时,有另一个优先级更高的中断提出中断请求,这时会暂时终止当前正在执行的级别较低的中断源的服务程序,去处理级别更高的中断源,待处理完毕,再返回到被中断了的中断服务程序继续执行的过程。在单片机中,中断嵌套的实现通常需要注意中断优先级的设置和中断使能的控制,以确保高优先级中断能够打断正在执行的低优先级中断。原创 2024-01-10 21:23:14 · 2351 阅读 · 0 评论 -
单片机原理及应用:中断服务函数
中断服务函数的调用过程可以参照一般的函数调用,但两者之间也是有区别的:一般函数的调用在程序中是事先安排好的,何时调用中断服务函数事先却无法确定,因为中断的发生是由外部因素决定的,程序中无法事先安排调用语句,因此调用中断服务函数的过程是由硬件自动完成的。换而言之,我们并不需要像之前点亮LED或数码管那样在主程序里补充一条LED_function()来调用封装函数,中断服务函数在控制寄存器允许的情况下会自动执行。中断函数具有特殊关键字interrupt,这也导致中断函数的定义方法也与普通函数不同。原创 2024-01-09 15:54:29 · 3500 阅读 · 0 评论 -
单片机原理及应用:中断系统结构与控制寄存器
当CPU正在执行某个程序时,由单片机内部或外部的原因引起的紧急事件,向CPU发出请求处理的信号CPU在允许的情况下响应请求信号,暂时停止正在执行的程序,保护好断点处的现场转向执行一个用于处理该紧急事件的程序处理完后又返回被中止的程序断点处,继续执行原程序以上过程就称为中断,流程如图所示它并不是单指在输入请求信号的作用下打断原程序,而是包括保存原程序、执行中断服务、返回原程序等多个步骤,重点是在立即执行中断程序的同时不影响原先进程。原创 2024-01-08 23:18:04 · 1883 阅读 · 0 评论 -
单片机原理及应用:计数按键控制数码管显示
承接上文,我们来介绍一下按键和数码管的配合工作,由于数码管显示的字符和位数多种多样,无法做到一个字符对应一个按键,所以程序主要记录按键的使用次数来切换数码管的显示。键盘去抖的方式有很多,不过for循环嵌套应该是最简单的。这类计数装置需要考虑按键释放,要在if内层的最后一行写一个while(1)。上面是笔者的演示代码,用按键控制1只数码管计数,要比0~99计数器简单一些,适合新手入门。下面给大家提供一道模拟题:自选外设,根据按键次数显示相应的数字,按下按键9次后清零。原创 2024-01-02 18:29:17 · 2179 阅读 · 1 评论 -
单片机原理及应用:独立式键盘控制LED与多功能按键识别
单片机的独立式键盘指的是一种不依赖于计算机或其他外部设备的键盘输入方式,由若干按键按照一定的规则组成,每一个按键实质就是一个按钮开关。而独立式键盘的各键相互独立,每个按键各接一条I/O口线,通过检测I/O输入线的电平状态,很容易地判断哪个按键被按下。当无键按下时,通过上拉电阻,P0的 8 个I/O口引脚被上拉为高电平“ 1 ”;如果有键按下,将使对应该键接的I/O口引脚,通过该键接地,信息为“0 ” 。原创 2024-01-02 13:53:13 · 2154 阅读 · 0 评论 -
单片机原理及应用:开关控制LED多种点亮模式
从这篇文章开始,我们不再只研究单一的外设工作,而是将LED、数码管、开关、按键搭配在一起研究,这篇文章主要介绍LED和开关能擦出怎样的火花,同时也介绍一些函数封装的知识。由于开关有闭合与打开两种状态,LED有左移流水灯、右移流水灯、全部闪烁、高低位点亮、奇偶位点亮和内外位点亮等状态,它们之间两两组合的情况十分复杂,所以我们首先要介绍一下函数封装的思想以简化代码。函数封装是将一段代码逻辑封装在一个函数中,以便在需要时可以重复使用。原创 2023-12-31 19:47:16 · 1532 阅读 · 0 评论 -
单片机原理及应用:数码管的动态扫描显示、余晖效应与消影
动态显示是一种一位一位地轮流点亮各位数码管的显示方式。当数码管显示位数较多时,静态显示所占的I/O口多,这时常采用动态显示。为节省I/O口,通常将所有显示器段码线相应段并联在一起,由一个8位I/O口控制,称为“段选”;各显示位公共端分别由另一单独I/O口线控制,称为“位选”。在某一时段只选中一位数码管的位选端并送出相应的字型编码,在下一时段按顺序选通另外 一位数码管,并送出相应的字型编码。依此规律循环下去,即可使各位数码管分别间断地显示出相应的字符,这一过程称为动态扫描显示。原创 2023-12-31 10:39:14 · 5948 阅读 · 0 评论 -
单片机原理及应用:数码管的静态显示
数码管的显示方法有静态显示和动态显示两种。静态显示是指单片机输出特定的电平或脉冲信号,相应的发光二极管恒定导通或恒定截止,从而将数据或符号显示在数码管显示屏上。之前介绍的数码管循环显示就属于静态显示。本次要介绍的是多位数码管的静态显示。网络标号法是在连接线的交叉点或连接点处分配网络标号。网络标号用于标识电路中的节点。可以使用数字、字母、下划线等进行标号,并根据需要在标号后面添加字母进行区分。原创 2023-12-29 09:03:32 · 1210 阅读 · 0 评论 -
单片机原理及应用:数码管的循环显示
一位数码管的引脚是有10 个,其中7个用来组成数字(a,b,c,d,e,f,g),此外还有一个小数点(dp),所以数码管内部共有 8 个发光二极管,剩下两个引脚是公共端,如图所示第 3 和第 8 引脚连接在一起组成公共端。根据公共端所接电平的不同,分为共阴极和共阳极接法,中间图为共阴极接法内部原理图,右图为共阳极接法内部原理图。上述代码对于奇偶位变换实际上给出了三类写法,第一种就是最常见的for循环,赋初值i,i+2或-2;而ROM是用来存储程序代码和常量数据,只能读取,不能写入。原创 2023-12-27 10:12:19 · 1518 阅读 · 0 评论 -
单片机原理及应用:LED闪烁与延时
闪烁主要考察的就是延时函数的应用,书中一共有三种延时函数的设置方式,分别应用于不同的场景,这里介绍的是第一种,用两个for循环嵌套组成,数量级为万。高低、奇偶、内外三种模式都取决于引脚赋值,其中奇偶位还可以调用移位符达到类似流水灯的效果原创 2023-12-27 00:46:11 · 1101 阅读 · 0 评论 -
单片机原理及应用:流水灯的点亮
流水灯是一种简单的单片机控制电路,由许多LED组成,电路工作时LED会按顺序点亮,类似于流水的效果。点亮效果呈现在proteus上,大家也可以根据仿真电路图去挑选自己需要的元器件组建不同功能的电路。下面是运行在keil上的代码,分别使用了数组,移位符和库函数来表示。编译时要注意修改晶振频率并创建hex文件。原创 2023-12-23 21:07:22 · 943 阅读 · 1 评论 -
单片机原理及应用:Keil μVision4和Proteus 8的配置介绍
课程选用的教材是张毅刚教授编纂的《单片机原理及应用——C51编程+Proteus仿真》,因此软件也是配套的Keil和Proteus,按照老师建议,C51属于比较古早的单片机,为了保证兼容性和稳定性,版本选用Keil μVision4和Proteus 8。今天记录的内容是软件的安装,陆游有句话说得好“纸上得来终觉浅,绝知此事要躬行”,尽管我们也属于在纸上抄写代码的教条考核,但想学到真东西,还需要勤加练习。我采用的是Atmel中的AT89C52,也是51单片机的升级版,书中也是以该型号单片机为例进行讲解的。原创 2023-12-22 00:21:59 · 1675 阅读 · 0 评论