工作方式

51单片机和PC串口异步通信

冷暖自知 提交于 2020-03-10 10:25:15
单片机和PC机间的通信有很多方式,下面的程序主要用到的是51单片机的异步串行通信。 一.51单片机的串行通信管脚 P3.1为单片机的TXD管脚(Transfer Data),P3.2为单片机的RXD管脚(Receive Data)。 通过TXD管脚可以将CPU要发送的数据输出,RXD管脚可以将串行数据线传来的数据读入。 二.51单片机的串行通信控制寄存器SCON,电源控制寄存器PCON SCON: 其中,SM0,SM1控制着串行通信的工作方式。 SM0 SM1 工作方式 说明 波特率 0 0 0 移位寄存器 fosc/12 0 1 1 10位异步收发器(8位数据) 可变 1 0 2 11位异步收发器(9位数据) fosc/64或fosc/32 1 1 3 11位异步收发器(9位数据) 可变 其中工作方式1在使用当中比较多。 SM2为多机通信控制位,SM2=1,允许多机通信,=0不允许,实现点对点通信。这里先不讨论。 TB8用于储存发送数据的第9位。在方式2和方式3中,发送数据除了起始位,数据位,停止位外,还有一位校验位,存储在TB8中。 RB8用于存储接收数据的第9位。接收到传来的代码后,数据位存储在SBUF中,而校验位就存储在RB8中。通过分析,可以判别接受的数据是否正确。 TI为发送中断请求标志。当发送数据缓冲区为空的时候,TI通过硬件置1,通知CPU数据发送完毕

STC51从入门到精通(汇编)~~~ 第八讲:串行通信技术

蓝咒 提交于 2020-03-06 11:06:43
目录 8.1 80C51单片机串行通信技术的特点 8.2 串行通信基本知识 8.2.1 数据通信 8.2.2 串行通信的传输方式 8.2.3 异步通信和同步通信 8.3 串行接口的组成和特性 8.3.1 串行口的结构 8.3.2 串行口控制器及控制寄存器 8.4 串行通信接口的工作方式 8.4.1 工作方式0 8.4.2 工作方式1 8.4.3 工作方式2和工作方式3 8.5 波特率设计 8.5.1 波特率的计算方法 8.5.2 波特率的产生 8.6 C语言程序示例 8.1 80C51单片机串行通信技术的特点 80C51 单片机具有 一个全双工串行通信接口 ,即能同时进行串行发送和接收。 可以作 UART ( 通用异步接收和发送器 ) 用 可以作 同步位移寄存器 用。 可以实现点对点的单机通信、多机通信和 80C51 与系统机的单机或多机通信。 8.2 串行通信基本知识 8.2.1 数据通信 通信方式有两种,即 并行通信 和 串行通信: 并行通信 是指数据的各位 同时进行传送 (发送或接收)的通信方式。其 优点 是传送速度快; 缺点 是数据有多少位,就需要多少根传送线。 串行通信 指数据是 一位一位按顺序传送的 通信方式。它的突出 优点 是只需一对传输线(利用电话线就可作为传送线),这样就大大降低了传送成本,特别适用于远距离通信;其 缺点 是传送速度较低。 8.2.2

51单片机中断学习

左心房为你撑大大i 提交于 2020-02-26 05:44:36
一、中断的概念 CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生); CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务); 待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断 二、中断源 在51单片机中有5个中断源 中断号 优先级 中断源 中断入口地址 0 1(最高) 外部中断0 0003H 1 2 定时器0 000BH 2 3 外部中断1 0013H 3 4 定时器1 0018H 4 5 串口总段 0023H 三、中断寄存器 单片机有10个寄存器主要与中断程序的书写控制有关 1.中断允许控制寄存器IE 2.定时器控制寄存器TCON 3.串口控制寄存器SCON 4.中断优先控制寄存器IP 5.定时器工作方式控制寄存器TMOD 6.定时器初值赋予寄存器(TH0/TH1,TL0/TL1) 寄存器详细说明:http://blog.sina.com.cn/s/blog_a05b986d0101545c.html 四、寄存器功能与赋值说明 注:在用到中断时,必须要开总中断EA,即EA=1。 //开总中断 1.中断允许控制寄存器IE EX0(EX1):外部中断允许控制位 EX0=1 外部中断0开关闭合 //开外部0中断 EX0=0 外部中断0开关断开 ET0(ET1):定时中断允许控制位 ET0=1

蓝桥杯嵌入式设计开发——LED篇

陌路散爱 提交于 2020-02-26 03:04:31
博主将会从 硬件和软件 这两个方面去和大家分享怎么样去使用led。 硬件相关知识 :博主先提出几个问题。LED灯怎么样才能亮呢?怎么样去用STM32MCU去自由的控制led灯的亮灭呢?怎么去查看开发板的外围硬件电路呢? (1)我们首先去查看蓝桥杯嵌入式设计开发板的原理图(PS这个原理图在我们购买板子的时候,会提供给我们),然后找到LED部分。如下图所示。 我们以HD0为例,如果我们给HD0一个低电平信号,然后给再给NLE端口一个下降沿(ps也就是给NLE一个高电平,然后接着给一个低电平)。然后锁存器就会锁存HD0端口接入的低电平信号,一直到NLE端口下一个下降沿信号的来临继续锁存即时的HD端口信号。那么HD 0—8端口的电平信号从哪儿来呢,我们查看板子的原理图可以得知HD 0—8端口与MCU的PC8-PC15相连。我们控制MCU的PC8—PC15端口输出信号就可以控制LED。那么如何控制MCU的PC8—PC15的输出信号怎么控制呢,接下来将要分享的软件方面知识正在等着你哟。 软件相关知识 :伙伴们知道怎么去查看库函数的解释吗?我们控制LED需要用到哪些库函数呢?我们怎么去初始化PC8—PC15的工作方式呢? (1)我们需要知道mcu端口有各种工作方式,既然我们要通过mcu端口去控制LED,那么我们就应该初始化mcu端口的工作方式。 (2

8253与8255的工作方式总结

时光怂恿深爱的人放手 提交于 2020-02-01 23:16:31
8253可编程定时器接口芯片 方式0 计数结束中断 计数器写完计数值时,开始计数(软件触发),相应的输出信号OUT就开始变成低电平。当计数器减到零时,OUT立即输出高电平。 门控信号高电平时,计数器工作;为低电平时,计数器停止工作,计数值保持不变。 在计数器工作期间,如果重新写入新的计数值,计数器将按新写入的计数值重新工作。 方式1 可编程单稳脉冲 写入计数初值后,计数器开始工作。门控信号GATE上升沿有效,才开始工作(硬件触发),使输出OUT变成低电平,直到计数器减到0后,输出才变高电平。 在计数器工作期间,当GATE又出现一个上升沿时,计数器重新装入原计数初值并重新开始计数。 如果工作期间对计数器写入新的计数初值,则要等到当前的计数值记满回零且门控信号再次出现上升沿后,才按新写入的计数初值开始工作。 方式2 频率发生器(分频器) 方式2是一种具有自动装入时间常数(计数初值N)的N分频器。 特点:一次设置计数初值,计数器可自动重复进行减“1”操作,减“1”计数回“0”,可以输出端输出一负脉冲信号。 写入计数初值后,GATE为高开始工作,计数器为0时,OUT输出一个时钟脉宽的负脉冲后自动回复高电平;同时自动重新装入原计数初值,反复计数。 如果工作期间对计数器写入新的计数初值,则要等到当前的计数值记满回零后,才按新写入的计数初值开始工作。 在计数器工作期间,当GATE为低则停止计数

SPI总线的特点、工作方式及常见错误解答

寵の児 提交于 2020-01-31 09:36:36
1.SPI总线简介    SPI (serial peripheral interface,串行 外围设备 接口)总线技术是Motorola公司推出的一种同步 串行接口 。它用于CPU与各种外围器件进行全双工、同步串行通讯。它只需四条线就可以完成MCU与各种外围器件的通讯,这四条线是:串行时钟线(CSK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)、 低电平 有效从机选择线CS。当SPI工作时,在移位 寄存器 中的数据逐位从输出引脚(MOSI)输出(高位在前),同时从输入引脚(MISO)接收的数据逐位移到移位寄存器(高位在前)。发送一个字节后,从另一个外围器件接收的字节数据进入移位寄存器中。即完成一个字节数据传输的实质是两个器件寄存器内容的交换。主SPI的时钟信号(SCK)使传输同步。其典型系统框图如下图所示。 图1 典型系统框图 2.SPI总线的主要特点   SPI 接口一般使用 4 条线通信:     MISO 主设备数据输入,从设备数据输出。     MOSI 主设备数据输出,从设备数据输入。     SCLK 时钟信号,由主设备产生。     CS 从设备片选信号,由主设备控制。   全双工;   可以当作主机或从机工作;   提供频率可编程时钟;   发送结束中断标志;   写冲突保护;   总线竞争保护等。 3.SPI总线 工作方式  

epoll详解

无人久伴 提交于 2019-12-14 12:03:41
什么是 epoll ? epoll是 Linux 下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率,因为它会复用文件描述符集 合来传递结果而不用迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合,另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符 集,只要遍历那些被内核IO事件异步唤醒而加入Ready队列的描述符集合就行了。epoll除了提供select/poll那种IO事件的电平触发 (Level Triggered)外,还提供了边沿触发(Edge Triggered),这就使得用户空间程序有可能缓存IO状态,减少epoll_wait/epoll_pwait的调用,提高应用程序效率。 Linux 2.6内核中对/dev/epoll设备的访问的封装(system epoll)。 这个使我们开发网络应用程序更加简单,并且更加高效。 为什么要使用epoll? 同样,我们在linux系统下,影响效率的依然是I/O操作,linux提供给我们select/poll/epoll等多路复用I/O方式 (kqueue暂时没研究过) ,为什么我们对epoll情有独钟呢?原因如下: 1.文件描述符数量的对比。 epoll并没有fd(文件描述符)的上限,它只跟系统内存有关

关于C51学习中定时器工作方式的应用

风格不统一 提交于 2019-12-09 14:46:19
定时器有四种工作方式,在许多博客上都有详细的解释 四种工作方式:方式0,1,2,3在实际的应用中 又怎么去选择呢,作为一个新手,学习知识对于如何应用我还是很好奇 工作方式0,计数溢出个数为2^13-N。 此工作方式下每次溢出定时时间为8.192ms, 工作方式1时,计数溢出值为2^16-N。 计数溢出时间为6.225ms,如定时1s,先每次定时50ms 工作方式2时,计数溢出值为2^8-N。 有自动重载功能,在TH0 中存储原来的值,TH1当做计数/计数用。在串口通信时计算波特率类的要用这个。 自己写的有点浅,是在看另外一个博客对此有了很深很直观的理解吧 https://blog.csdn.net/qq_43578913/article/details/98950536 来源: https://www.cnblogs.com/forange/p/12010796.html

NAT的工作原理及工作方式

十年热恋 提交于 2019-12-06 00:55:49
工作原理: 1) 在连接内部网络与外部公网的路由器上,NAT将内部网络中主机的内部局部地址,转换为合法的可以出现在外部公网上的内部全局地址来响应外部世界寻址。 2) 其中: a) 内部或外部:反映了报文的来源,内部局部地址和内部全局地址表明报文是来自于内部网路的。 b) 局部或全部:表明地址的可见范围,局部地址是内部网络中可见的,全局地址则在外部网络上可见。 工作方式: 1) 1对1转换内部局部地址;是对一个内部地址主机对外访问时,与一个外部合法的IP地址对应。 2) 1对多超载内部全局地址;是对一个内部地址主机对外访问时,一个外不合法的IP地址及某个传输层的端口号相对应。 3) 多对多内部全局地址。 来源: https://www.cnblogs.com/Kapter/p/11954583.html

8254定时/计数器应用

匿名 (未验证) 提交于 2019-12-03 00:29:01
1. 掌握8254的工作方式及应用编程。 2. 掌握8254典型应用电路的接法。 PC机一台,TD-PITE实验装置一套。 1. 计数应用实验。编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按动‘KK1+’5次后,产生一次计数中断,并在屏幕上显示一个字符‘M’。 2. 定时应用实验。编写程序,应用8254的定时功能,产生一个1s的方波。 8254是Intel公司生产的可编程间隔定时器。是8253的改进型,比8253具有更优良的性能。8254具有以下基本功能: 1)有3个独立的16位计数器。 2)每个计数器可按二进制或十进制(BCD)计数。 3)每个计数器可编程工作于6种不同工作方式。 4)8254每个计数器允许的最高计数频率为10MHz(8253为2MHz)。 5)8254有读回命令(8253没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容。 6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。计数初值公式为: n=f CLKi ÷f OUTi、 f CLKi f OUTi 是输出波形的频率。 图 4.27是8254的内部结构框图和引脚图,它是由与CPU的接口、内部控制电路和三个计数器组成。8254的工作方式如下述: 1)方式0:计数到0结束输出正跃变信号方式。 2)方式1:硬件可重触发单稳方式。 4)方式3:方波发生器。 6)方式5