单片机学习知识点全攻略(完结篇)(一)

2012-11-14 17:10:41来源: 互联网

导语:本期是本次单片机学习知识点的最终回,我们会列出前三回一起方便读者回顾学习。本次主要知识点为单片机串口通信、接口和实际案例实践——单片机音乐程序设计的学习。单片机对于初学者来说确实很难理解,不少学过单片机的同学或电子爱好者,甚至在毕业时仍旧是一无所获。基于此,电子发烧友网将整合《单片机学习知识点全攻略》,共分为四个系列,以飨读者,敬请期待!此系列对于业内电子工程师也有收藏和参考价值。

单片机学习知识点全攻略(完结篇)
 

  参阅相关系列

  单片机学习知识点全攻略(一)

  单片机学习知识点全攻略(二)

    单片机学习知识点全攻略(三)
 

  系列四

  点击浏览下一页22:单片机串行口通信程序设计

  点击浏览下一页23:LED数码管静态显示接口与编

  点击浏览下一页24:动态扫描显示接口电路及程序

  点击浏览下一页25:单片机键盘接口程序设计

  点击浏览下一页26:单片机矩阵式键盘接口技术及

  点击浏览下一页27:关于单片机的一些基本概念

  点击浏览下一页28:实际案例实践——单片机音乐程序设计

  22、单片机串行口通信程序设计

  1.串行口方式0应用编程 8051单片机串行口方式0为移位寄存器方式,外接一个串入并出的移位寄存器,就能扩展一个并行口。

  点击浏览下一页

  《单片机串行口通信程序设计硬件连接图》

  例:用8051单片机串行口外接CD4094扩展8位并行输出口,如图所示,8位并行口的各位都接一个发光二极管,要求发光管呈流水灯状态。 串行口方式0的数据传送可采用中断方式,也可采用查询方式,无论哪种方式,都要借助于TI或RI标志。串行发送时,能靠TI置位(发完一帧数据后)引起中断申请,在中断服务程序中发送下一帧数据,或者通过查询TI的状态,只要TI为0就继续查询,TI为1就结束查询,发送下一帧数据。在串行接收时,则由RI引起中断或对RI查询来确定何时接收下一帧数据。无论采用什么方式,在开始通信之前,都要先对控制寄存器SCON进行初始化。在方式0中将,将00H送SCON就能了。

  -----------------单片机串行口通信程序设计列子--------------------------

  ORG 2000H

  START: MOV SCON,#00H ;置串行口工作方式0

  MOV A,#80H ;最高位灯先亮

  CLR P1.0 ;关闭并行输出(避象传输过程中,各LED的“暗红”现象)

  OUT0: MOV SBUF,A ;开始串行输出

  OUT1: JNB TI,OUT1 ;输出完否

  CLR TI ;完了,清TI标志,以备下次发送

  SETB P1.0 ;打开并行口输出

  ACALL DELAY ;延时一段时间

  RR A ;循环右移

  CLR P1.0 ;关闭并行输出

  JMP OUT0 ;循环

  说明:DELAY延时子程序能用前面我们讲P1口流水灯时用的延时子程序,这里就不给出了。

  二、串行口异步通信

  org 0000H

  AJMP START

  ORG 30H

  START:

  mov SP,#5fh ;

  mov TMOD,#20h ;T1: 工作模式2

  mov PCON,#80h ;SMOD=1

  mov TH1,#0FDH ;初始化波特率(参见表)

  mov SCON,#50h ;Standard UART settings

  MOV R0,#0AAH ;准备送出的数

  SETB REN ;允许接收

  SETB TR1 ;T1开始工作

  WAIT:

  MOV A,R0

  CPL A

  MOV R0,A

  MOV SBUF,A

  LCALL DELAY

  JBC TI,WAIT1 ;如果TI等于1,则清TI并转WAIT1

  AJMP WAIT

  WAIT1: JBC RI,READ ;如果RI等于1,则清RI并转READ

  AJMP WAIT1

  READ:

  MOV A,SBUF ;将取得的数送P1口

  MOV P1,A

  LJMP WAIT

  DELAY: ;延时子程序

  MOV R7,#0ffH

  DJNZ R7,$

  RET

  END

  将程序编译通过,写入芯片,插入实验板,用通读电缆将实验板与主机的串行口相连就能实验了。上面的程序功能很简单,就是每隔一段时间向主机轮流送数55H和AAH,并把主机送去的数送到P1口。能在PC端用串行口精灵来做实验。串行口精灵在我主页上有下载。运行串行口精灵后,按主界面上的“设置参数”按钮进入“设置参数”对话框,按下面的参数进行设置。注意,我的机器上用的是串行口2,如果你不是串行口2,请自行更改串行口的设置。

  点击浏览下一页

  设置完后,按确定返回主界面,注意右边有一个下拉列表,应当选中“按16进制”。然后按“开始发送”、“开始接收”就能了。按此设置,实验板上应当有两只灯亮,6只灯灭。大家能自行更改设置参数中的发送字符如55,00,FF等等,观察灯的亮灭,并分析原因,也能在主界面上更改下拉列表中的“按16进制”为“按10进制”或“按ASCII字符”来观察现象,并仔细分析。这对于大家理解16进制、10进制、ASCII字符也是很有好处的。程序本身很简单,又有注释,这里就不详加说明了。

  三、上述程序的中断版本

  org 0000H

  AJMP START

  org 0023h

  AJMP SERIAL ;

  ORG 30H

  START:

  mov SP,#5fh ;

  mov TMOD,#20h ;T1: 工作模式2

  mov PCON,#80h ;SMOD=1

  mov TH1,#0FDH ;初始化波特率(参见表)

  mov SCON,#50h ;Standard UART settings

  MOV R0,#0AAH ;准备送出的数

  SETB REN ;允许接收

  SETB TR1 ;T1开始工作

  SETB EA ;开总中断

  SETB ES ;开串行口中断

  SJMP $

  SERIAL:

  MOV A,SBUF

  MOV P1,A

  CLR RI

  RETI

  END

  本程序没有写入发送程序,大家能自行添加。

23、LED数码管静态显示接口与编程

  在单片机系统中,常常用LED数码数码管显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。

  引言:还记得我们小时候玩的“火柴棒游戏”吗,几根火柴棒组合起来,能拼成各种各样的图形,LED数码管显示器实际上也是这么一个东西。

  八段LED数码管显示器

  点击浏览下一页

  《单片机静态显示接口》

  八段LED数码管显示器由8个发光二极管组成。基中7个长条形的发光管排列成“日”字形,另一个贺点形的发光管在数码管显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。LED数码管显示器有两种不一样的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED数码管显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED数码管显示器。如下图所示。`

  共阴和共阳结构的LED数码管显示器各笔划段名和安排位置是相同的。当二极管导通时,对应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8个笔划段hgfedcba对应于一个字节(8位)的D7 D6 D5 D4 D3 D2 D1 D0,于是用8位二进制码就能表示欲显示字符的字形代码。例如,对于共阴LED数码管显示器,当公共阴极接地(为零电平),而阳极hgfedcba各段为0111011时,数码管显示器显示“P”字符,即对于共阴极LED数码管显示器,“P”字符的字形码是73H。如果是共阳LED数码管显示器,公共阳极接高电平,显示“P”字符的字形代码应为10001100(8CH)。这里必须注意的是:很多产品为方便接线,常不按规则的办法去对应字段与位的关系,这个时候字形码就必须根据接线来自行设计了,后面我们会给出一个例程。

  在单片机应用系统中,数码管显示器显示常用两种办法:静态显示和动态扫描显示。所谓静态显示,就是每一个数码管显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种办法单片机中CPU的开销小。能供给单独锁存的I/O接口电路很多,这里以常用的串并转换电路74LS164为例,介绍一种常用静态显示电路,以使大家对静态显示有一定的了解。

  MCS-51单片机串行口方式押为移们寄存器方式,外接6片74LS164作为6位LED数码管显示器的静态显示接口,把8031的RXD作为数据输出线,TXD作为移位时钟脉冲。74LS164为TTL单向8位移位寄存器,可实现串行输入,并行输出。其中A、B(第1、2脚)为串行数据输入端,2个管脚按逻辑与运算规律输入信号,公一个输入信号时可并接。T(第8脚)为时钟输入端,可连接到串行口的TXD端。每一个时钟信号的上升沿加到T端时,移位寄存器移一位,8个时钟脉冲过后,8位二进制数全部移入74LS164中。R(第9脚)为复位端,当R=0时,移位寄存器各位复0,只有当R=1时,时钟脉冲才起作用。Q1…Q8(第3-6和10-13管脚)并行输出端分别接LED数码管显示器的hg---a各段对应的管脚上。关于74LS164还能作如下的介绍:所谓时钟脉冲端,其实就是需要高、低、高、低的脉冲,不管这个脉冲是怎么来的,比如,我们用根电线,一端接T,一端用手拿着,分别接高电平、低电平,那也是给出时钟脉冲,在74LS164获得时钟脉冲的瞬间(再讲清楚点,是在脉冲的沿),如果数据输入端(第1,2管脚)是高电平,则就会有一个1进入到74LS164的内部,如果数据输入端是低电平,则就会有一个0进入其内部。在给出了8个脉冲后,最先进入74LS164的第一个数据到达了最高位,然后再来一个脉冲会有什么发生呢?再来一个脉冲,第一个脉冲就会从最高位移出,就象车站排队买票,栏杆就那么长,要从后面进去一本人,前面必须要从前面走出去一本人才行。

搞清了这一点,下面让我们来看电路,6片7LS164首尾相串,而时钟端则接在一起,这样,当输入8个脉冲时,从单片机RXD端输出的数据就进入到了第一片74LS164中了,而当第二个8个脉冲到来后,这个数据就进入了第二片74LS164,而新的数据则进入了第一片74LS164,这样,当第六个8个脉冲完成后,首次送

[1] [2]

关键字:单片机  学习知识

编辑:神话 引用地址:http://www.eeworld.com.cn/mndz/2012/1114/article_17658.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
单片机
学习知识

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved