基于C语言的MCS-51单片机教程 课件 2项目1 彩灯控制器的设计与制作_第1页
基于C语言的MCS-51单片机教程 课件 2项目1 彩灯控制器的设计与制作_第2页
基于C语言的MCS-51单片机教程 课件 2项目1 彩灯控制器的设计与制作_第3页
基于C语言的MCS-51单片机教程 课件 2项目1 彩灯控制器的设计与制作_第4页
基于C语言的MCS-51单片机教程 课件 2项目1 彩灯控制器的设计与制作_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目1彩灯控制器的设计与制作项目1彩灯控制器的设计与制作知识与能力目标熟悉单片机应用系统的开发流程1加深对单片机最小系统概念的理解2熟练掌握51单片机I/O口的输入和输出控制方法3理解中断的相关概念4熟练编写外部中断程序51、认识并行I/O口输入输出端口对单片机的控制,其实就是对I/O口的控制,无论单片机对外界进行何种控制,亦或接受外部的控制,都是通过I/O口进行的,所以并行I/O端口是实现单片机与外部进行并行数据交换的通道。CPU输入输出端口外部设备内总线MCS-51任务1:51单片机I/O(输入/输出)接口

51系列单片机有4个I/O端口,每个端口都是8位准双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0~P3)、一个输出驱动器和输入缓冲器。通常把4个端口笼统地表示为P0~P3。

在无片外扩展存储器的系统中,这4个端口的每一位都可以作为准双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。

(1)P0口的结构P0.n由1个锁存器、2个三态缓冲器、1个输出控制电路和1个输出驱动电路组成。2、51单片机I/O(输入/输出)接口的结构及特点(2)P0口的工作方式具有两种工作方式“通用数据I/O双向端口”;“地址、数据复用总线”

。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。注意:P0口作为普通I/O口输出时需要外接上拉电阻,其电阻值为4.7欧姆~10K欧姆。2、51单片机I/O(输入/输出)接口的结构及特点(3)P1口的结构P1.n由1个锁存器、1个场效应管驱动器、2个三态缓冲器组成。2、51单片机I/O(输入/输出)接口的结构及特点(4)P1口的工作方式具有一种工作方式:“通用数据I/O双向端口”;①P1口作为通用输出口使用时,可以实现0或1的输出。②P1口作为输入口使用时,有两种工作方式:读端口(读锁存器)与读引脚。读端口实际上并不是从外部直接读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后写回到端口锁存器,比如取反、置位、清零等指令。读引脚方式才是真正地把外部数据读入到内部总线。但这里要注意:P1口作为输入口需要先向端口写1,因此P1口称为准双向口。(5)P2口的结构P2.n由1个锁存器、2个三态缓冲器、1个输出控制单元、1个输出驱动单元组成。2、51单片机I/O(输入/输出)接口的结构及特点具有两种工作方式:“通用数据I/O双向端口”;“地址复用总线”

。在具有片外扩展存储器的系统中,P2口作为高8位地址线。(6)P2口的工作方式(7)P3口的结构P3.n由1个锁存器、2个三态缓冲器、1个第二功能控制单元、1个输出驱动单元组成。2、51单片机I/O(输入/输出)接口的结构及特点具有两种工作方式:“通用数据I/O双向端口”;“第二功能方式”

。(8)P3口的工作方式P3口各位的第二功能返回二极管相关知识点1)发光二极管简称为LED。由镓(Ga)与砷(AS)、磷(P)的化合物制成。磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。2)工作原理发光二极管使用时必须串联限流电阻以控制通过管子的电流。限流电阻R可用下式计算:R=(VS-VL)/I;VS为电源电压,VL为LED的正向压降,I为LED的一般工作电流。

补充知识:3)、LED灯的内部结构与连线

发光二极管的两根引线中较长的一根为正极,应连接电源正极。4)LED灯的连线返回

任务2:按键和点灯应用系统功能演示

任务2:按键和点灯1任务目标设计系统硬件电路设计与制作23系统软件程序设计与调试系统的调试45扩展任务系统的开发流程

任务目标1.任务2:按键和点灯加深理解单片机复位电路的工作原理。掌握时钟发生电路的基本工作原理。理解单片机最小系统的工作方式。熟练掌握51单片机I/O口的输入和输出控制方法。理解给出的C语言源程序的结构和各语句所起作用。在达到以上5点目标的基础上,根据“任务扩展”中提出的问题,以组或个人为单位,在规定时间里完成任务。

任务要求2.任务2:按键和点灯本任务通过单片机P1口完成对其端口的输入与输出控制。按键作为端口输入信号源,LED灯作为端口输出信号的状态指示。按键S1为独立按键,红色LED灯D1、绿色LED灯D2分别连接51单片机的P1.0、P1.1、P1.2引脚。

本项目通过编写相应的程序,实现开后D1和D2亮1.5s左右,然后红灯亮、绿灯灭,当S1按键按下时,红灯灭、绿灯亮;释放S1按键,红灯重新亮,绿灯重新灭。任务2:按键和点灯1、最小系统模块的设计2、按键控制模块的设计3、发光二极管模块的设计4、电源模块的设计系统硬件电路设计3任务2:按键和点灯系统总体硬件电路任务2:按键和点灯系统程序流程图任务2:按键和点灯系统仿真电路图任务2:按键和点灯程序设计#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitRedLed=P1^0;//红色LED灯D1的控制输出端sbitGreenLed=P1^1;//绿色LED灯D2的控制输出端sbitSelectKey=P1^2;//独立按键S1的控制输入端voiddelay(uchar);/*****主函数***********************/voidmain(void){RedLed=0;//点亮红色LED灯D1GreenLed=0;//点亮绿色LED灯D2delay(255);delay(255);delay(255);delay(255);delay(255);delay(255);//延时

while(1){

if(SelectKey==0)//按键S1被按下

{

RedLed=1;//红灯灭

GreenLed=0;//绿灯亮

}

else//按键S1未按

{

RedLed=0;//红灯亮

GreenLed=1;//绿灯灭

}}}/********主函数结束***************/voiddelay(ucharx)//延时,系统主频为11.0592MHz{

uchark; while(x--)//延时大约x毫秒钟

for(k=0;k<125;k++){}}理解按键和点灯任务的软、硬件原理,然后以个人为单位,设计程序完成以下任务:开机后,红灯先亮3s,绿灯不亮;然后绿灯亮3s,同时红灯熄灭,如此反复,当S1键被按下时,红绿两灯全灭;释放后重复红、绿两灯依次点亮的过程。完成如下任务:硬件电路板的制作、调试;程序的编写和仿真;软硬件的联调。任务2:按键和点灯项目任务扩展

任务3按键和流水灯应用系统功能演示

任务3按键和流水灯1任务目标设计系统硬件电路设计与制作23系统软件程序设计与调试系统的调试45扩展任务系统的开发流程

任务目标1.任务3按键和流水灯加深对单片机最小系统工作原理的理解。熟练掌握51单片机I/O口的输入和输出控制方法。理解给出的C语言源程序的结构和各语句所起作用。在达到以上3点目标的基础上,根据“任务扩展”中提出的问题,以组或个人为单位,在规定时间里完成任务。

任务要求2.任务3按键和流水灯按键S1、S2为独立按键,分别连接单片机的P1.0和P1.1口,8个LED灯分别连接单片机的P2口。

这里设计了两类花样,第一类是8个LED灯从上到下依次逐个点亮,再从下到上依次逐个熄灭;第二类是8个LED灯从中间开始两颗灯依次点亮,即D4D5亮,然后D3D6亮(D4D5不熄灭),然后D2D7亮(D3D4D5D6不熄灭),然后D1D8亮(D2D3D4D5D6D7不熄灭);然后再从两端开始两颗灯依次熄灭,即D1D8灭,然后D2D7灭,然后D3D6灭,然后D4D5灭。当按下S1键则显示第一类花样,按下S2则显示第二类花样。任务3按键和流水灯1、最小系统模块的设计2、按键控制模块的设计3、发光二极管模块的设计4、电源模块的设计系统硬件电路设计3任务3按键和流水灯系统总体硬件电路任务3按键和流水灯系统程序流程图任务3按键和流水灯系统仿真电路图任务3按键和流水灯程序设计#include<reg51.h>#defineucharunsignedchar#defineuintunsignedint#defineLEDP2sbitSelectKey1=P3^2;//独立按键S1的控制输入端sbitSelectKey2=P3^3;//独立按键S2的控制输入端//函数声明voiddelay(uchar);voidHuayang1(void);voidHuayang2(void);voidmain(void){LED=0xff;while(1){ if(SelectKey1==0){Huayang1();} elseif(SelectKey2==0){Huayang2();}

elseLED=0xff;}}voiddelay(ucharx)//延时,系统主频为11.0592MHz{

uchark; while(x--)//延时大约x毫秒钟

for(k=0;k<125;k++){}}voidHuayang1(void){ LED=0xfe; delay(500); LED=0xfc; delay(500); LED=0xf8; delay(500); LED=0xf0; delay(500); LED=0xe0; delay(500); LED=0xc0; delay(500); LED=0x80; delay(500); LED=0x00; delay(500); LED=0x80; delay(500); LED=0xc0; delay(500); LED=0xe0; delay(500); LED=0xf0;

delay(500); LED=0xf8; delay(500); LED=0xfc; delay(500); LED=0xfe; delay(500); LED=0xff; delay(500);}voidHuayang2(void){ LED=0xe7; delay(500);

LED=0xc3;

delay(500); LED=0x81; delay(500); LED=0x00; delay(500); LED=0x81; delay(500); LED=0xc3; delay(500); LED=0xe7; delay(500); LED=0xff; delay(500);}理解按键和流水灯任务的软、硬件原理,然后以个人为单位,在“按键和流水灯任务工作表”中随机抽取两个子任务,完成如下任务:花样的编码用数组的方式存放;硬件电路板的制作、调试;程序的编写和仿真;软硬件的联调。任务3按键和流水灯项目任务扩展

任务4外部中断和花样流水灯应用系统功能演示

任务4外部中断和花样流水灯1任务目标设计系统硬件电路设计与制作23系统软件程序设计与调试系统的调试45扩展任务系统的开发流程

任务目标1.任务4外部中断和花样流水灯理解中断的相关概念。熟练掌握51单片机外部中断的使用。理解给出的C语言源程序的结构和各语句所起作用。掌握中断子函数的编写格式。理解中断子函数与主函数之间的关系及中断子函数与普通子函数的区别。在达到以上5点目标的基础上,根据“任务扩展”中提出的问题,以组或个人为单位,在规定时间里完成任务。

任务要求2.任务4外部中断和花样流水灯

按键S1、S2为独立按键,分别连接单片机的P3.2和P3.3口,24个LED灯分别连接单片机的P0、P1、P2口。自行设计流水灯花样,和LED灯排布的样式,同时要求实现按下S1按键花样流动暂停,按下S2键花样继续流动。

当CPU在执行程序时,由单片机内部或外部的原因引起的随机事件要求CPU暂时停止正在执行的程序,而转向执行一个用于处理该随机事件的程序,处理完后又返回被中止的程序断点处继续执行,这一过程就称为中断。任务4外部中断和花样流水灯3.知识补充—中断的概念2、51系列单片机的中断源

231外部中断:由外部信号引起:INT0(P3.2)和INT1(P3.3)定时/计数器中断:

内部2个16位定时/计数器T0、T1串行口中断源:

内部有一个全双工的串行接口中断源(5个)3、中断结构TCON(88H)D7D6D5D4D3D2D1D0位名称TF1TR1TF0TR0IE1IT1IE0IT0位含义T1的溢出中断标志位T1的启动停止控制位T0的溢出中断标志位T0的启动停止控制位INT1中断请求标志位INT1触发方式控制位INT0中断请求标志位INT0触发方式控制位1)中断请求标志TCON(定时器控制寄存器)

为INT0中断请求标志位。当INT0有请求信号时,该位就会由硬件自动置1,在CPU响应中断后,才由硬件自动将IE0清零。IE0(TCON.1)IE1(TCON.3)IT0(TCON.0)IT1(TCON.2)

为INT0触发方式控制位。由软件进行置位和复位,当IT0=0时,为低电平触发;当IT0=1时,为负跳变触发。

为INT1触发方式控制位。由软件进行置位和复位,当IT1=0时,为低电平触发;当IT1=1时,为负跳变触发。

为INT1中断请求标志位。当INT1有请求信号时,该位就会由硬件自动置1,在CPU响应中断后,才由硬件自动将IE1清零。TF0(TCON.5)TF1(TCON.7)TR0(TCON.4)TR1(TCON.6)

为定时/计数器T0的启动停止控制位。由软件进行设定,当TR0=0时,停止T0定时(或计数);当TR0=1时,启动T0定时(或计数)。

为定时器/计数器T0的溢出中断标志位。当T0定时(或计数)结束时,由硬件自动置1,在CPU响应中断后,才由硬件自动将TF0清零。也可以由软件查询该标志,并由软件清零。

为定时/计数器T1的启动停止控制位。由软件进行设定,当TR1=0时,停止T0定时(或计数);当TR1=1时,启动T1定时(或计数)。

为定时/计数器T1的溢出中断标志位,当T1定时(或计数)结束时,由硬件自动置1,在CPU响应中断后,才由硬件自动将TF1清零。也可以由软件查询该标志,并由软件清零。3、中断结构SCON(98H)D7D6D5D4D3D2D1D0位名称——————TIRI位含义——————串行口发送中断标志位串行口接收中断标志位1)中断请求标志SCON(串行口控制寄存器)RI(SCON.0):串行口接收中断标志位。当串行口接收数据时,每接收完一个串行帧,由硬件置RI为1,CPU相应中断,但硬件不能自动清除RI,所以RI必须由软件来清零。TI(SCON.1):串行口发送中断标志位。当CPU将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置TI为1,CPU相应中断,但硬件不能自动清除TI,所以TI必须由软件来清零。IE(A8H)D7D6D5D4D3D2D1D0位名称EA——ESET1EX1ET0EX0位含义中断总允许控制位——串行口中断允许位T1中断允许位INT1中断允许位T0中断允许位INT0中断允许位2)中断允许控制IE寄存器

3、中断结构

◆EA(IE.7)为所有中断总允许控制位。EA=0,中断总禁止;EA=1,中断总允许。◆ES(IE.4)为串行口中断允许位。ES=1,允许串行口中断;ES=0,禁止串行口中断。◆ET1(IE.3)为T1中断允许位。ET1=1,允许T1中断;ET1=0,禁止T1中断。◆EX1(IE.2)为INT1中断允许位。EX1=1,允许外部中断INT1中断;EX1=0,禁止外部中断INT1中断。◆ET0(IE.1)为T0中断允许位。ET0=1,允许T0中断;ET0=0,禁止T0中断。◆EX0(IE.0)为INT0中断允许位。EX0=1,允许INT0中断;EX0=0,禁止INT0中断。IP(B8H)D7D6D5D4D3D2D1D0位名称——PT2PSPT1PX1PT0PX0位含义——定时/计数器2优先级设定位串行口中断优先级设定位定时/计数器1优先级设定位外部中断1优先级设定位定时/计数器0优先级设定位外部中断0优先级设定位2)中断优先级控制中断优先级控制寄存器IP

3、中断结构说明:PT2(IP.5):定时/计数器2优先级设定位。(8052扩展,8051无)

以上各位为1时,是高优先级,为0时为低优先级。8051单片机的中断系统硬件默认自然优先级排列

4、8051单片机的中断优先级的三条原则

CPU同时接收到几个中断时,首先相应优先级最高的中断请求。正在进行的中断过程不能被新的同级或低优先级的中断请求中断。正在进行的中断过程能被新的高优先级的中断请求中断。

5、8051中断处理过程

编制应用程序时中断初始化中断服务程序包含

6、8051中断服务函数的编制

中断服务程序的格式中断响应过程就是自动调用并执行中断函数的过程。C51编译器支持在C语言源程序中直接以函数形式编写中断服务程序。常用的中断函数定义语法如下:void函数名()interruptn

其中,n为中断类型号,C51编译器允许0~31个中断,所以n的取值范围为0~31。下面表给出了8051控制器提供的5个中断源对应的中断类型号。

任务要求1)7、外部中断举例

本例子实现的是按键计数显示。按键S1连接到单片机的P3.2口,两个共阴极数码管分别段选端分别连接单片机的P0和P2口,利用P3.2口的第二功能,实现每按下一次按键就触发一次外部中断,用数码管显示按键次数,最大计数到99,当计数到100时,又重新开始计数。系统总体硬件电路系统仿真电路图程序程序设计#include<reg51.h>#defineuintunsignedint#defineucharunsignedcharsbitkey=P3^2;ucharcount;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论