![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
51单片机
文章平均质量分 62
蜗牛先森i
这个作者很懒,什么都没留下…
展开
-
51单片机的串口通信原理
一、并行和串行通信方式通信有并行和串行两种通信方式。在单片机系统以及现代单片机测控系统中信息交换多采用串行通信方式。1、并行通信方式并行通信通常是将数据字节的各位用多条数据线同时进行传送,每一位数据都需要一条传输线。如下图所示,8位数据总线的通信系统,一次传送8位数据(1字节),需要8条数据线。还需要一条信号线和若干控制信号线,这种方式仅适合短距离的数据传输。2、串行通信方式串行通信方式是将数据字节分为一位一位的形式在一条传输线上逐个传输,此时只需要一条数据线,外加一条公共信号地线和若干控制信号原创 2022-03-17 22:56:21 · 11096 阅读 · 4 评论 -
【一个完整的人机界面程序框架】
程序功能如下:(1)数码管前四位可切换3个窗口,1-XX,2-YY,3-ZZ,XX,YY,ZZ分别代表3个可编辑的数据Gu8SetDate_1,Gu8SetDate_2,Gu8SetDate_3,数据范围0-99;(2)按键1有短按和长按功能。长按第三或第四数码管闪烁,再短按在三四数码管之间切换;再长按没有闪烁,显示3个窗口其中一个窗口,短按在三个窗口间切换;(3)按键2,在闪烁条件下累加(4)按键3,在闪烁条件下依次减小在窗口切换中用到整屏更新和局部更新。(此框架值得好好研究)#include翻译 2022-02-14 22:45:31 · 369 阅读 · 0 评论 -
【独立按键组成的组合按键、短按与长按、按住不松手的均匀触发】
(1)单击K1点亮LED,单击K2熄灭LED,K1与K2组合按键蜂鸣器发声。#include "reg52.h"#define KEY_VOICE_TIME 50//按键触发后发出的声音长度#define KEY_FILTER_TIME 25//按键滤波的“稳定时间”25ms// #define KEY_INTERVAL_TIME 400//连续两次单击之间的最大有效时间sbit beep=P2^3;//蜂鸣器sbit P1_4=P1^4;//LEDsbit KEY_INPUT1=P3^4;/翻译 2022-02-01 10:06:27 · 1104 阅读 · 0 评论 -
【独立按键鼠标式的单击与双击】
(1)按键与蜂鸣器的非阻塞驱动消抖的两种境界:第一种判断两次电平状态,中间加入“固定延时时间”,不足之处是“固定时间”靠经验值,软件抗干扰能力也弱了很多,“密码等级”不够高,第二种是“清零式滤波”。#include "reg52.h"#define KEY_VOICE_TIME 50//按键触发后发出的声音长度#define KEY_FILTER_TIME 25//按键滤波的“稳定时间”25mssbit beep=P2^3;sbit KEY_INPUT1=P3^4;sbit KEY_INPUT原创 2022-01-17 22:35:23 · 318 阅读 · 0 评论 -
【跑马灯的三种境界】
1、移位阻塞#include <reg52.h>#define uint unsigned int#define uchar unsigned charvoid delayms(uint xms){ uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--);}void main(){ uchar Su8Data=0x01,Su8Cnt=0; while(1) { P1=Su8Data;//P1口8个管脚连接8个l原创 2022-01-03 22:59:24 · 337 阅读 · 0 评论 -
【一个定时中断产生N个软件定时器】
一个定时中断产生N个软件定时器#include <reg52.h>//三个LED灯并行处理,分别闪烁0.5、1、2S#define BLINK_TIME1 25//定时时间0.5S,每20MS中断一次#define BLINK_TIME2 50//1S#define BLINK_TIME3 100//2Ssbit led1=P1^0;sbit led2=P1^2;sbit led3=P1^4;volatile unsigned int count1=0,count2=0,coun原创 2022-01-02 22:19:19 · 305 阅读 · 0 评论 -
51单片机上AD和DA操作
一、ADC0804的操作1、试验板上ADC0804的接线图AD芯片上的第5管脚INTR没有接线,因为该实验板读取A/D数据没有用中断法,所以可以不接该引脚。2、芯片的操作时序图如下操作芯片时基本按照此顺序操作各个引脚。操作过程:在此实验中要连续转换连续读取数据,就将CS一直置低,没有用到中断也不用操作INTR引脚,剩下就只用操作WR和RD引脚,首先将WR置低,经过tW(WR)L时间后拉高WR,转换开始,经过1~8个A/D时钟周期1/fCLK和内部Tc时间后,转换完成;接着将RD置低,经过tACC原创 2021-04-20 21:13:10 · 4022 阅读 · 0 评论 -
51单片机的键盘检测原理
一、独立键盘检测1、按键的检测原理单片机的I/O口既可以作为输出也可以作为输入使用,检测按键时用的是输入功能。把按键的一端接地,另一端与单片机的某个I/O口相连,开始时先给该I/O口赋一个高电平,然后让单片机不断地检测该I/O口是否变成了低电平,当按键闭合时,相当于该I/O口通过按键与地相连,变成低电平,程序一旦检测到I/O口变为低电平就说明按键被按下,然后执行相应的指令。2、实验板原理图独立按键S2,S3,S4,S5分别连接单片机的P3^4,5,6,7。3、去抖动操作由于使用的是弹性小按键,原创 2021-04-17 22:36:26 · 7637 阅读 · 3 评论 -
51单片机的中断系统
一、中断的概念中断是指:CPU在处理某一事件A时,发生了另一事件B,请求CPU迅速去处理(中断发生);CPU暂时停止当前的工作(中断响应),转去处理事件B(中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续去处理事件A(中断返回)。(就是我在打麻将的时候来了一个快递,我就停止打麻将去拿快递,拿完快递又接着打麻将了。拿快递的过程就是中断)二、中断系统80C51的中断系统有5个中断源(80C52有 6个) ,2个优先级,可实现二级中断嵌套 。(而80C52单片机有四个中断优先级,即原创 2021-03-22 23:10:42 · 2371 阅读 · 2 评论 -
51单片机上数码管的静态显示和动态显示
一、TX1C数码管介绍共阴极和共阳极数码管,实验板上是共阴极数码管,8位一体的数码管。连接原理图如下面两图:连在一起的段线(段选线)控制数码管亮什么数字,独立的公共端(位选线)控制哪一位数码管亮。因为段线是连接在一起的,所以显示的数字是一样的,共阴极一端是独立的公共端,所以低六位分别控制哪位数码管亮。用两个锁存器可以控制任意数码管显示任意数字。一、数码管的静态显示...原创 2021-03-20 21:47:16 · 12307 阅读 · 0 评论 -
51单片机实现流水灯操作
一、用移位操作二、用C51库函数三、总结原创 2021-03-19 14:55:58 · 3145 阅读 · 0 评论 -
用keil2软件模拟延时语句的时间
首先点击project下的option for target ’target1‘将晶振频率改为11.0592MHz,与TX-1C试验板上的晶振频率一致然后点击debug下的start/stop debug session 按钮进行调试延时代码如下#include <reg52.h>//int整型变量分配两个字节,范围在(-32768~32767即-2^15~2^15-1)之间unsigned int i,j;//无符号整型变量分配两个字节,范围在(0~65535即2^16-1)之原创 2021-03-18 21:15:47 · 578 阅读 · 0 评论 -
用51单片机点亮一个发光二极管开始
一、前言第一次写博客,菜鸟一枚,权当记录自己学习的过程。因为之前自己学习了一下51单片机和C语言,时间长了感觉忘了很多,之前基本按步骤走的多,理解的不够深,而且没有做笔记的习惯,所以博客就当自己的在线笔记吧,以后查找起来也方便。所以写的时候只会标注我自己容易忘和理解的不到位的地方,这样也能督促一下自己持续的学习下去。使用的开发板是郭天祥的51开发板,教材也主要参考他的新概念51单片机C语言教程,keil2版本,烧录软件是stc-isp下载烧写软件v6.86.exe.二、keil2新建一个工程第一步:原创 2021-03-17 23:15:22 · 3488 阅读 · 0 评论