微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 单片机学习知识点全攻略(三)

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

时间:05-15 来源:本站整理 点击:

1上面,我们就利用这个来做一个计数实验,要将计数的值显示出来,当然最好用数码管了,可我们还没讲到这一部份,为了避免把问题复杂化,我们用P1口的8个LED来显示计到的数据。

  程序如下:

  ORG 0000H ,http://www.51hei.com

  AJMP START

  ORG 30H

  START:

  MOV SP,#5FH

  MOV TMOD,#01000000B ;定时/计数器1作计数用,0不用全置0

  SETB TR1 ;启动计数器1开始运行。

  LOOP: MOV A,TL0

  MOV P1,A

  AJMP LOOP

  END

  在硬件上用线将324的输出与T1连通(印板上有焊盘)运行这种程序,注意将板按正确的位置放置(LM324放在左手边,LED排列是按从高位到低们排列)看到什么?随着324后接的LED的闪烁,单片机的8只LED也在持续变化,注意观察,是不是按二进制:

  00000000

  00000001

  00000010

  00000011

  这样的次序在变呢?这就对了,这就是TL0中的数据。

  程序二:

  ORG 0000H

  AJMP START

  ORG 001BH

  AJMP TIMER1 ;定时器1的中断处理

  ORG 30H

  START: MOV SP,#5FH

  MOV TMOD,#01010000B ;定时/计数器1作计数用,模式1,0不用全置0

  MOV TH1,#0FFH

  MOV TL1,#0FAH ;预置值,要求每计到6个脉冲即为一个事件

  SETB EA

  SETB ET1 ;开总中断和定时器1中断允许

  SETB TR1 ;启动计数器1开始运行。

  AJMP $

  TIMER1:

  PUSH ACC

  PUSH PSW

  CPL P1.0 ;计数值到,即取反P1.0

  MOV TH1,#0FFH

  MOV TL1,#0FAH ;重置计数初值

  POP PSW

  POP ACC

  RETI

  END

  上面这个单片机程序完成的工作很简单,就是在每6个脉冲到来后取反一次P1。0,因此实验的结果应当是:LM324后接的LED亮、灭6次,则P1。0口所接LED亮或灭一次。这实际就是我们上面讲的计数器的第二种应用。

  程序三:外部中断实验

  ORG 0000H

  AJMP START

  ORG 0003H ;外部中断地直入口

  AJMP INT0

  ORG 30H

  START: MOV SP,#5FH

  MOV P1,#0FFH ;灯全灭

  MOV P3,#0FFH ;P3口置高电平

  SETB EA

  SETB EX0

  AJMP $

  INT0:

  PUSH ACC

  PUSH PSW

  CPL P1.0

  POP PSW

  POP ACC

  RETI

  END

  本程序的功能很简单,按一次按钮1(接在12管脚上的)就引发一次中断0,取反一次P1。0,因此理论上按一下灯亮,按一下灯灭,但在实际做实验时,可能会发觉有时不"灵",按了它没反应,但在大部份时候是对的,这是怎么回事呢?我们在讲解键盘时再作解释,这个程序本身是没有问题的。

  21、单片机串行口介绍

  介绍:串行口是单片机与外界进行信息交换的工具。

  8051单片机的通信方式有两种:

  并行通信:数据的各位同时发送或接收。 串行通信:数据一位一位次序发送或接收。参看下图:

  

  串行通信的方式:

  异步通信:它用一个起始位表示字符的开始,用停止位表示字符的结束。其每帧的格式如下:

  在一帧格式中,先是一个起始位0,然后是8个数据位,规定低位在前,高位在后,接下来是奇偶校验位(能省略),最后是停止位1。用这种格式表示字符,则字符能一个接一个地传送。

  在异步通信中,CPU与外设之间必须有两项规定,即字符格式和波特率。字符格式的规定是双方能够在对同一种0和1的串理解成同一种意义。原则上字符格式能由通信的双方自由制定,但从通用、方便的角度出发,一般还是使用一些标准为好,如采用ASCII标准。

  波特率即数据传送的速率,其定义是每秒钟传送的二进制数的位数。例如,数据传送的速率是120字符/s,而每个字符如上述规定包含10数位,则传送波特率为1200波特。

  同步通信:在同步通信中,每个字符要用起始位和停止位作为字符开始和结束的标志,占用了时间;所以在数据块传递时,为了提高速度,常去掉这些标志,采用同步传送。由于数据块传递开始要用同步字符来指示,同时要求由时钟来实现发送端与接收端之间的同步,故硬件较复杂。

  通信方向:在串行通信中,把通信接口只能发送或接收的单向传送办法叫单工传送;而把数据在甲乙两机之间的双向传递,称之为双工传送。在双工传送方式中又分为半双工传送和全双工传送。半双工传送是两机之间不能同时进行发送和接收,任一时该,只能发或者只能收信息。

  2.8051单片机的串行接口结构

  8051单片机串行接口是一个可编程的全双工串行通信接口。它可用作异步通信方式(UART),与串行传送信息的外部设备相连接,或用于通过标准异步通信协议进行全双工的8051多机系统也能通过同步方式,使用TTL或CMOS移位寄存器来扩充I/O口。

8051单片机通过管脚RXD(P3.0,串行数据接收

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top