串行口通信(二)

前言

上一篇就已经介绍串行口通信相关概念,寄存器。对串行口通信已经有一定的了解。还介绍串行口工作方式1,这个方式所用最多,务必会用。现在来介绍工作方式0,2,3。下面来了解一下。

串行口方式0

串行口的工作方式0为移位寄存器I/O方式,可外接移位寄存器,一扩展I/O口,也可外接同步I/O设备。
发送操作:当执行一条“SBUF=A”指令时,启动发送操作,由TXD输出移位脉冲,由RXD串行SBUF中的数据。发送完8位数据后自动置TI=1.请求中断。要继续发送时,TI必须有指令清零。
接收操作:REN是串行口接收允许控制位。REN=0时禁止接收;REN=1时允许接收。当软件将REN置“1”时,即开始从RXD端口以fosc/12波特率输入数据,当接收到8位数据时,将中断标志RI置“1”。再次接收数据之前,必须用软件将RI清0。
这个方式中,RXD为数据输入输出引脚,TXD为时钟输出引脚。主要用来拓展IO口。这个方式完成时需要借用外部移位寄存器。74ls164,74ls165两个移位寄存器与串行口方式0相得益彰。下面来介绍这两个寄存器与方式0的配合。

74ls164移位寄存器

概述

74LS164是8位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA或DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。

引脚功能

74LS164

DSA,DSB:数据输入端
CP:时钟输入(低电平到高电平边沿触发)
MR:中央复位输入(低电平有效)
Q0~Q7:数据输出端
GND:地
VCC:正电源

真值表

真值表

H = HIGH(高)电平
h = 先于低-至-高时钟跃变一个建立时间 (set-up time) 的 HIGH(高)电平
L = LOW(低)电平
l = 先于低-至-高时钟跃变一个建立时间 (set-up time) 的 LOW(低)电平
q = 小写字母代表先于低-至-高时钟跃变一个建立时间的参考输入 (referenced input) 的状态
↑ = 低-至-高时钟跃变

数据通过DSA,DSB这两个输入端之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。当其中任意一个为低电平,则禁止新数据输入;当其中有一个为高电平,则另一个就允许输入数据。 因此两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。
当 MR为低电平时,其它所有输入端都无效,同时所有输出端均为低电平。为高电平时,允许数据一直输出。

时序图

时序图

MR为高电平时,数据输入端一个为高电平,另一个输入数据,时钟端一直输入时钟。输出端就移位输出数据。

使用

接法

输入端接RXD,时钟端接TXD,MR随便接一控制端(P0口要上拉电阻),输出端随意,根据自己的需求。

#include<reg52.h>
sbit MR=P1^7;   //位定义
main()
{
    SCON=0X00;  //串口方式0.禁止接收数据
    IE=0X90;    //打开总中断,串行口中断
    MR=1;       //一直允许数据传输,
    while(1)
    SBUF=0X0F;  //发送数据
}
void interrupt_uart() interrupt 4
{
    TI=0;   //软件置0
}

上面给出简单的示范,看懂程序后就可以自行设计更复杂的程序,可以想一下用它驱动数码管。

74LS165

74LS165芯片,它是 8 位并入串出移位寄存器 (使用移位寄存器芯片可以扩展一个或多个 8 位并行 I/O 口)。

引脚

74LS165

SH/LD(shift/ load 移位 /置位):移位与置位控制端。高电平时表示移位, 低电平时表示置位。在开始移位之前,需要先从并行输入端口读入数据,这时应将 SH/LD置 0,并行口的 8 位数据将被置入 74LS165 内部的 8 个触发器,在 SH/LD 为 1时,并行输入被封锁,移位操作开始。
INH (clock inhibit 时钟抑制):时钟禁止端。当 INH 为低电平时,充许时钟输入。
CLK(clock) :时钟输入端
D0~D7:并行输入端
SI(serial input 串行输入):串行输入端, 用于扩展多个 74LS165 的首尾连接端。
SO( serial output):串行输出端 .
QH:也是串行输出端,它与 SO 是反相的关系,即 QH=SO.
VCC(16 引脚,在 proteus 中被隐藏 ):已经默认接 +5V 电源端 .
GND(8 引脚,在 proteus中被隐藏 ):已经默认接地

使用

接法

串行口输出端接RXD,时钟端接TXD,移位/置位端接控制端,时钟抑制端接地,允许时钟输出。输入端自行决定,剩下两个端口没有用到就空接。

#include<reg52.h>
unsigned int date;
sbit SH=P1^7;   //位定义
main()
{
    SCON=0X10;  //串口方式0.允许接收数据
    IE=0X90;    //打开总中断,串行口中断

    while(1)
    {
        SH=0;      //置位,将数据存进芯片
        SH=1;      // 移位,将芯片数据移入rxd
        date=SBUF;  //读取数据
    }
}                                   
void interrupt_uart() interrupt 4
{
    RI=0;   //软件置0

}

简单程序,看懂就行,简单入门,需要什么功能自行添加。

总结

串行口方式0就只有这么多内容,主要使用来拓展IO口,和外部移位寄存器一起使用。上面的程序简单易懂,主要是为了能快速看懂,当然在实战中不可能这么简单,但会用了,开发就不成问题。方式2和3只在波特率上存在区别,它们主要用在单片机的多机通讯,下一篇将详细介绍。喜欢的朋友点个关注,转发一下吧。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容