单片机的C语言程序设计第3章

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第3章单片机内部资源的C51编程•单片机的内部资源主要有中断系统定时器/计数器并行口以及串行口。单片机的大部分功能就是通过对这些资源的利用来实现的。3.1单片机的并行口•51单片机有4个并行的I/O口,每个端口既可以按字节单独使用,也可以按位操作,各个端口可作为一般的I/O口使用,大多数端口又可以作为第二功能使用。3.1.1基本知识•MCS-51有四个并行端口,分别为P0、P1、P2和P3,每一个口都是8位的。每个位结构都有一个输出锁存器和一个输入缓冲器。•1.简介•2.操作3.1.2C51编程实例•例3-1MCS-51单片机P1.0~P1.3接4个发光二极管,P1.4~P1.7接4个开关,电路如图3-1所示,编程将开关的状态反映到发光二极管上•例3-2如图3-2所示,8个发光二极管LED0~LED7经限流电阻分别接至P1口8个引脚,阳极共同接高电平。编程实现发光二极管的流水点亮,即按照LED0→LED1→...→LED7的顺序,每次点亮一个LED,一段时间后熄灭该LED,然后点亮下一LED,重复循环。3.2单片机的中断系统•51单片机的中断系统是8位机中功能较强的,可以提供5个中断源(52子系列是6个),具有两个中断优先级,可以实现两级中断嵌套。3.2.1基本知识•1.中断源及中断结构•2.中断控制•3.中断优先级结构•4.中断服务程序入口地址•5.中断请求的撤除3.2.2C51编程实例•定义中断服务函数的一般形式为:•函数类型函数明(形式参数表)interruptn[usingn]•例3-5外部中断•在本实例中,首先通过P1.7口点亮发光二极管,然后外部输入一脉冲串,则发光二极管亮、暗交替。电路如图3-11所示,编写程序如下。•例3-6如图3-12所示,8只LED阴极接至单片机P0口,两开关K0、K1分别接至单片机引脚P3.2()和P3.3()。编写程序控制LED状态,按下K0后:如果8只LED为熄灭状态,则点亮之,如果8只LED为点亮状态,则保持;按下K1后:不管8只LED是熄灭状态还是点亮状态,则变为闪烁状态。•例3-7利用外中断控制外设的数据传送•如图3-13所示,外设数据经P1口输入单片机,每准备好一个数据,发出选通信号,使触发器输出1再经非门得0至,向CPU发出中断请求,CPU响应这个中断请求后,在中断处理程序中先撤除中断请求信号,(通过P3.0=0,使=1),再由P1口输入数据到单片机内部。3.3单片机的定时器/计数器•MCS-51单片机内部有两个16位的可编程的定时器/计数器,即定时器T0和定时器T1(8052提供3个,第三个称为定时器T2)。它们既可用作定时器方式,又可用作计数器方式。3.3.1基本知识•1.结构•2.有关的控制寄存器•3.工作方式•4.初始化3.3.2C51编程实例•例3-15设系统时钟频率为12MHz,用定时器/计数器T0编程实现从P1.0输出周期为500μs的方波。•例3-16设单片机的fosc=12MHz,要求在P1.0上产生周期为2ms的方波。•例3-17设系统时钟频率为12MHz,编程实现从P1.1输出周期为1s的方波。•例3-18设系统时钟频率为12MHz,编程实现:P1.1引脚上输出周期为1s,占空比为20%的脉冲信号。3.4单片机的串行口•MCS-51单片机内部的串行接口是全双工的,即它能同时发送和接收数据。这个口既可以用于网络通信,也可以实现串行异步通信,还可以作为同步移位寄存器使用。在串行口中可供用户使用的是它的寄存器,因此了解其寄存器结构对用户来说是十分重要的。3.4.1基础知识•1.串行口的结构•2.有关的寄存器•3.串行口的工作方式•4.波特率的设定•5.串行口的应用3.4.2C51编程实例•单片机串行口通常用于三种情况:利用方式0扩展并行I/O口;点对点双机通信;多机通信。本章小结•本章是对51单片机的内部资源的C语言编程进行了详细的讲解,每一部分在讲解过程中都提供了大量的例子.这些例子对加深C语言的理解具有十分重要的作用.•并行口、中断系统、定时器/计数器、串行口构成了51单片机内部的主要资源,这些资源的使用具有非常的作用,掌握了这些主要资源的C语言编程,就掌握了51单片机的C语言编程。

1 / 24
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功