单片机应用技术项目式教程(C语言版)(下篇共上中下3篇)_第1页
单片机应用技术项目式教程(C语言版)(下篇共上中下3篇)_第2页
单片机应用技术项目式教程(C语言版)(下篇共上中下3篇)_第3页
单片机应用技术项目式教程(C语言版)(下篇共上中下3篇)_第4页
单片机应用技术项目式教程(C语言版)(下篇共上中下3篇)_第5页
已阅读5页,还剩92页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

《单片机应用技术项目式教程(C语言版)》邯郸职业技术学院项目四

报警控制—非同小可情境导入:

报警装置,警醒世人,保驾护航

1任务4.1蜂鸣器模拟警报控制2任务4.2跑马灯中断系统控制

3任务4.3设计与制作入库停车报警器目录项目4报警控制—非同小可任务4.1蜂鸣器模拟警报控制项目4报警控制—非同小可任务4.1

蜂鸣器模拟警报控制1.什么是中断?生活中中断现象举例中断就是中断当前的工作去处理一些临时发生的事件,处理完后,则继续原工作过程。接电话接电话4.1.1

中断概念2.51单片机也需要中断

通常单片机只有一个CPU,但要应付诸如“运行程序,数据输入、数据输出,以及特殊情况处理等多项任务,为此单片机必须具备中断处理的功能,以应付特殊情况的紧急处理。3.中断过程4.1.1

中断概念4.谁能“中断”单片机中断源:能引发中断的来源称为中断源。外部中断0——INT0外部中断1——INT1定时器0中断——T0定时器1中断——T1串口中断——TI/RI单片机P3.2P3.3TF0TF1TI或RIINT0INT1T0T1TI/RI4.1.1

中断概念5.中断源同事来临怎么办?中断优先级:处理中断源的优先顺序称为中断优先级INT1IE1T1TF1串口TIRI高低T0TF0INT0IE0中断源自然优先级4.1.1

中断概念6.”中断源“信号可否屏蔽?

可以。通过总开关和分开关。4.1.1

中断概念7.中断可否嵌套?

可以。高优先级中断可以打断低优先级的中断。4.1.1

中断概念8.每个“中断”响应程序放在哪里?

51单片机给每个中断安排了一个唯一的中断入口地址。4.1.1

中断概念9.中断优点1、可实现分时操作(CPU与多个外设并行工作)温度压力断电MCU2、可实现实时处理(被控对象信息随机变化)外设1外设2外设nMCU3、可进行故障处理(及时处理突发事件)4.1.1

中断概念中断结构4.1.2

中断结构INT0IT0=0IT0=1INT1IT1=0IT1=1IE0TCONSCONTF0IE1TF1T0T1TIRITXDRXDESET0EX0EX1ET1EA自然优先级矢量地址高级中断请求自然优先级矢量地址低级中断请求PX0PT0PX1PT1PSIEIP中断标志位中断源允许总允许中断优先级任务4.1.3

中断设置TF1TF0IE1IT1IE0IT0IT0:外部中断0类型控制位。当IT0=1时,选择外部中断0为下降沿触发申请中断;当IT0=0时,选择外部中断0为低电平触发。IE0:外部中断0中断请求标志。当IE0=1时,外部中断0向CPU申请中断。IE1:外部中断1中断请求标志。当IE1=1时,外部中断1向CPU申请中断。IT1:外部中断1类型控制位。当IT1=1时,选择外部中断1为下降沿触发申请中断;当IT1=0时,选择外部中断1为低电平触发。TF1:定时器T1中断请求标志。当定时器T1计满溢出时,TF1=1,向CPU申请中断TF0:定时器T0中断请求标志。当定时器T0计满溢出时,TF0=1,向CPU申请中断1.定时器/计数器控制寄存器TCON2.中断允许控制寄存器IEEA

ESET1EX1ET0EX0中断源中断允许位EAINT0EX0T0ET0INT1EX1T1ET1串口ES任务4.1.3

中断设置

例1假设允许51系列单片机片内定时器/计数器中断,禁止其他中断。试根据要求设置寄存器IE的值。

方法二:位操作命令

EA=1; //开总中断 ET0=1; //允许T0中断 ET1=1; //允许T1中断01010001EAXXESET1EX1ET0EX0IE

方法一:字节操作命令 IE=0x8A;任务4.1.3

中断设置3.串行口控制寄存器SCON

TIRIXXXXXXTI:串行口发送中断请求标志RI:串行口接受中断请求标志

任务4.1.3

中断设置4.中断优先级控制寄存器IP高优先级的中断源相应设定位设置为1;低优先级的中断源相应设定位设置为0。中断源优先级设定位INT0PX0T0PT0INT1PX1T1PT1串口PS任务4.1.3

中断设置IPXXXPSPT1PX1PT0PX0

例2假设8051芯片的外部中断源为高优先级,片内中断源为低优先级。试设置寄存器IP相应的值。任务4.1.3

中断设置10100000IPXXXPSPT1PX1PT0PX0

方法二:位操作命令

PX0=1; PX1=1; PS=0; PT0=0; PT1=0;

方法一:字节操作命令

IP=0x05;任务4.1.4蜂鸣器模拟报警器交流蜂鸣器:给蜂鸣器一个脉冲信号就会响,常用PWM波控制蜂鸣器频率。用输入输出端口P中一个输入输出端口控制,输出一个脉冲信号给到蜂鸣器接收口。通过程序先送1信号延时一段时间,再送0信号延时一段时间。1.蜂鸣器发声原理任务4.1.4蜂鸣器模拟报警器2.报警器控制1)控制要求:在单片机主程序执行一位秒表显示效果的基础上。当外部出现突发情况的时候,让灯呈现闪烁10次、同时蜂鸣器发出声响来给与警示作用。

程序参考:

任务4.1.4蜂鸣器模拟报警器任务4.2跑马灯中断系统控制项目4报警控制—非同小可一个完整的中断过程可分为四个阶段:主函数中断请求中断服务函数主函数CPU中断响应中断返回中断处理中断请求中断响应中断处理中断返回4.2.1中断响应过程中断服务程序从中断程序入口地址开始执行,直到返回为止,这个过程称为中断处理(或中断服务)。中断函数一般包括两部分内容:一是保护和恢复现场,二是处理中断源的请求。入口地址RETI主函数中断请求中断函数主函数CPU中断响应中断返回中断处理断点1.中断类型号中断响应过程就是自动调用并执行中断函数的过程。常用的中断函数定义如下:

void函数名()

interruptnn为中断类型号,C51编译器允许0~31个中断,n范围0~31。51单片机提供的5个中断源所对应的中断类型号

中断源 n

外部中断0 0

定时/计数器01

外部中断1 2

定时/计数器1 3

串行口 4 2.中断子程序编写

//设置INT0,外部中断0

IT0=0;//电平触发方式

EX0=1;//打开INT0的中断允许。

EA=1;//打开总中断 voidInt0() interrupt0 //外部中断0的中断函数{

delay(1000); //延时消抖 if(k1==0) {

P0=0xc0;//中断子程序显示0 }}任务4.2.2

跑马灯什么是跑马灯?控制的里面的灯光逐步点亮,可以一颗一颗流动。任务4.2.3

跑马灯中断设计

1.任务要求:

在单片机主程序执行led灯呈现跑马灯效果控制的基础上,设置一外部中断源——按键。当按键按下,让led灯呈现闪烁效果。任务4.2.3

跑马灯中断设计1.硬件电路设计任务4.2.3

跑马灯中断设计2.程序中断设置

主程序中设置中断://设置INT0,外部中断0

IT0=0;//电平触发方式

EX0=1;//打开INT0的中断允许。

EA=1;//打开总中断 voidInt0() interrupt0 //外部中断0的中断函数{

}

任务4.3设计与制作入库报警器项目4报警控制—非同小可

键盘是十分重要的人机对话的组成部分,是人向机器发出指令、输入信息的必需设备。3.1.1键盘的定义1.什么是键盘?触点式按键无触点式按键按键按普通方式分类谢谢!

《单片机应用技术项目式教程(C语言版)》邯郸职业技术学院情景导入:

项目6串行通信

多机互联

在很多远程监控系统中,可以通过PC实现对外部设备进行远程监控,不需要去现场即可了解现场信息,控制现场。

1

任务6.1双机串行通信2任务6.2单片机与PC机间通信目录项目6

串行通信

多机互联任务6.1双机串行通信项目6串行通信多机互联一认识串行接口1、串行通信一认识串行接口单工形式:数据只能单方向从一端向另一端传送;如:有线电视节目。半双工形式:数据可以双向传送,但任一时刻只能向一个方向传送。既可分时双向传送数据。如:某些对讲机全双工形式:同时双向传送数据,因此,全双工配置是一对单向配置,它要求两端的通信设备都具有完整和独立的发送和接收能力,通信效率最高。适合于计算机之间的通信串行通信通路形式一认识串行接口串行通信基本通信方式

通常,实现数据同步有两种方式:异步通信和同步通信。

数据传输中的同步:通信双方要正确的进行数据传输,需要解决何时开始传输、何时结束传输,以及数据传输速率等问题。(1)异步通信数据一帧一帧地传送。发送端和接收端可以由各自的时钟控制数据的发送和接收,两个时钟源彼此独立,互不同步。数据的一帧:由一个字符代码组成。(2)同步通信

在一个数据块的开头使用同步字符。数据传送时使用同一频率的脉冲来实现发送端与接收端的严格时间同步。一认识串行接口帧格式:一个字符由四部分组成:起始位、数据位、奇偶校验位和停止位。起始位(0):位于字符帧的开头,占用一位,用来通知接收设备一个待接收的字符开始到达。数据位:紧跟起始位后,5~8位数据(规定低位在前,高位在后)奇偶校验位(可省略),占一位,用于对字符传送作正确性检查,因此奇偶校验位是可选择的,共有三种可能,即奇偶校验、偶校验和无校验,由用户根据需要选定。停止位(1)停止位用来表征字符的结束。停止位可以是1位、1.5位或2位。接收端收到停止位后,知道上一字符已传送完毕帧格式一认识串行接口一认识串行接口传输距离不同,可以选择不同的总线标准。如果是长距离传送,可采用RS-485标准。一认识串行接口2、STC90C52串行口结构与控制一认识串行接口串行口控制(1)串行口控制寄存器SCON(98H)SM0、SM1:串行口工作方式控制位,两位对应

四种工作方式,如下表所示(fosc是晶振频率)。一认识串行接口SM2:多机通信控制位,主要用于方式2和方式3当串行口以方式2或方式3接收时,如SM2=1,则只有当接收到的第9位数据(RB8)为1,才将接收到的前8位数据送入SBUF,并置位RI产生中断请求,否则将接收到的前8位数据丢弃。SM2=0,不论第9位数据为0还是为1,都将前8位数据装入SBUF中,并产生中断申请。在方式0时,SM2=0。REN:允许接收控制位REN=1,允许接收;REN=0,禁止接收。一认识串行接口TB8:发送数据第9位方式0,此位未使用方式1,此位未使用方式2和方式3:TB8=1,说明该发送帧为地址帧。TB8=0,说明该发送帧为数据帧RB8:接收数据第9位方式2和方式3:RB8存放接收到的第9位数据,代表接收数据的某种特征。若SM2=1,RB8=1,说明收到帧为地址帧。一认识串行接口TI:发送中断标志在一帧数据发送完时置位。TI=1,申请中断,中断被响应后,TI不能自动清零,必须由软件清零。RI:接收中断标志在接收到一帧有效数据后,由硬件置位。RI=1,申请中断。RI不能自动清零,必须由软件清零。一认识串行接口电源控制寄存器PCONPCON不能位寻址。SMOD—串行口波特率的倍增位当SMOD=1时,串行口波特率加倍。系统复位时,SMOD=0。一认识串行接口3、波特率设计方式0波特率方式0波特率=fosc/12方式2波特率方式2波特率=(2SMOD/64)×foscSMOD为0时,波特率等于振荡器频率的1/64SMOD为1时,波特率等于振荡器频率的1/32。方式1和方式3的波特率串行口方式1和方式3的波特率由定时器T1或T2的溢出率和SMOD所确定。波特率=2smod/32×(定时器1溢出率)一认识串行接口任务实施二【工作任务】

本工作任务是利用AT89C52实现单片机与单片机之间点对点通信。要求按下接在甲机P2.0口线的按键,依次向乙机发送0-9十个数字;乙机中,以中断的方式接受甲机发来的数据,并输出到接在P2口的数码管进行显示。任务实施二【任务实施】基于工作过程系统化,制定了该项目的任务实施过程为以计时器的设计、仿真与制作为典型工作任务,以单片机教学做一体化教室为主要学习场所,进行51单片机系统的硬件设计、软件程序设计、仿真调试等工作,以便熟练掌握使用51单片机进行系统的设计和制作的技能。各小组集中讨论,汇总信息并整理,确定该项目的设计方案,要保证项目的可行性和可操作性。任务实施二1、硬件电路设计任务实施二2、软件程序设计(1)搭建软件编程环境建立工程文件,保存在指定的文件夹内,配置工程参数,包括晶振频率12MHZ、HEX文件输出配置。新建文件并添加文件,准备编程。(2)软件设计与编程实现参考程序如下:任务实施二#include"reg51.h"sbitkey=P2^0;unsignedchara;delay(){ unsignedinti; for(i=0;i<200;i++);}sendB(unsignedcharda){ SBUF=da; while(!TI); TI=0;}甲机参考程序如下:任务实施二intmain(){ TMOD=0x20; TH1=0xfd; TL1=0xfd; SCON=0x40; TR1=1; while(1) { if(key==0) { delay(); if(key==0) { sendB(a); a=(a+1)%10; while(key==0)delay(); } } }}任务实施二#include"reg51.h"unsignedchara;unsignedcharcodeseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};intmain(){ TMOD=0x20; TH1=0xfd; TL1=0xfd; SCON=0x50; EA=1; ES=1; TR1=1; while(1);}乙机参考程序如下:任务实施二voidserial()interrupt4{ if(RI) { RI=0; a=SBUF; P2=seg[a]; }}任务实施二3、仿真调试任务实施三如果想实现单片机与计算机之间的通信,应该怎么处理呢?4、拓展思考任务6.2单片机与PC之间的通信项目6串行通信多机互联任务实施一【工作任务】

本工作任务是单片机与PC通信,单片机课接收PC发送的数字字符,按下单片机的S1键后,单片机可向PC发送字符串。任务实施一【任务实施】基于工作过程系统化,制定了该项目的任务实施过程为以计时器的设计、仿真与制作为典型工作任务,以单片机教学做一体化教室为主要学习场所,进行51单片机系统的硬件设计、软件程序设计、仿真调试等工作,以便熟练掌握使用51单片机进行系统的设计和制作的技能。各小组集中讨论,汇总信息并整理,确定该项目的设计方案,要保证项目的可行性和可操作性。任务实施一1、硬件电路设计任务实施一2、软件程序设计(1)搭建软件编程环境建立工程文件,保存在指定的文件夹内,配置工程参数,包括晶振频率12MHZ、HEX文件输出配置。新建文件并添加文件,准备编程。(2)软件设计与编程实现示例程序如下:任务实施一#include"reg52.h"#defineucharunsignedchar#defineuintunsignedintucharReceive_Buffer[101]; //接收缓冲ucharBuf_Index=0; //缓冲空间索引ucharcodeDSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6b,0x7d,0x07,0x7f,0x6f,0x00};voidDelayMS(uintms){ uchari; while(ms--)for(i=0;i<120;i++);}任务实施一voidmain(){ uchari; P0=0x00; Receive_Buffer[0]=-1; SCON=0x50; TMOD=0x20; TH1=0xfd; TL1=0xfd; PCON=0x00; EA=1;EX0=1;IT0=1; ES=1;IP=0x01; TR1=1;

while(1) { for(i=0;i<100;i++) { if(Receive_Buffer[i]==-1)break; P0=DSY_CODE[Receive_Buffer[i]]; DelayMS(200); } DelayMS(200); }}任务实施一//串口接收中断函数voidSerial_INT()interrupt4{ ucharc; if(RI==0)return; ES=0; RI=0; c=SBUF; if(c>='0'&&c<='9') { Receive_Buffer[Buf_Index]=c-'0'; Receive_Buffer[Buf_Index+1]=-1; Buf_Index=(Buf_Index+1)%100; } ES=1;}//外部中断0voidEX_INT0()interrupt0{ uchar*s="这是由8051发送的字符串!\r\n" ; uchari=0; while(s[i]!='\0') { SBUF=s[i]; while(TI==0); TI=0; i++; }}项目总结二单片机的串行通信是51单片机学习的难点,总是会让人望而却步,需要同学们积极探索、勇于挑战,利用所学知识完成任务,会有意想不到的收获。本项目重点介绍了串行通信的基础知识、51单片机的串口结构、串口控制和工作方式等内容。通过本项目的学习,大家对单片机串行接口和串行通信有了深入了解,根据所学知识解决实际问题,提高了专业技能,培养了动手能力,更培养了探索精神。谢谢!

《单片机应用技术项目式教程(C语言版)》邯郸职业技术学院情景导入:

项目7

STM32触类旁通适应市场的发展,得到市场认可

1

任务7.1认识STM322任务7.2STM32应用实例目录项目7

STM32触类旁通任务7.1认识STM32项目7

STM32触类旁通一认识STM32单片机

STM32是来自于ARM公司具有突破性的Cortex-M3内核的32位闪存微控制器。该内核是专门设计于满足集高性能、低功耗、实时应用、具有竞争性价格于一体的嵌入式领域的要求。STM32单片机STM32有两个系列:①STM32F103是增强型系列②STM32F101是基本型系列一认识STM32单片机一认识STM32单片机一认识STM32单片机STM32有三种不同的时钟源可被用来驱动系统时钟,分别如下★HSE振荡器时钟★HSI振荡器时钟★PLL时钟一认识STM32单片机1、HSE振荡器时钟2、HSI振荡器时钟HSI时钟信号是由内部8MHZ的RC振荡器产生,它可以直接作为系统时钟信号或2分频后作为PLL时钟。高速外部时钟信号(HSE)有以下两种方式产生:★HSE外部晶体/陶瓷谐振器(HSE晶振)★HSE用户外部时钟(HSE旁路)3、PLL时钟内部PLL可以用来倍频HISRC的输出时钟或HSE晶体输出时钟。一认识STM32单片机STM32目前支持的中断共为84个(16个内核+68个外部),和16个可编程的优先中断级的设置。对于外部的68个中断通道,已经固定的分配各相应的外设,每个中断通道都有自己的中断优先级8位控制字节,其中高4位有效。而对于这4位的中断优先级控制位又分成2组:从高位开始,前面是定义抢先式优先级的位,后面是定义子优先级的位。一认识STM32单片机a)

Datasheet——芯片基本数据,功能参数封装管脚定义和性能规范。b)

固件函数库用户手册——函数库功能,库函数的定义、功能和用法。c)

参考手册——各种功能的具体描述,使用方法,原理,相关寄存器。d)

STM32F10xxx硬件开发:使用入门——相关基础硬件设计e)

STM32F10XXX的使用限制:芯片内部未解决的硬件设计bug,开发需要注意绕开。

几个重要的官方文档一认识STM32单片机总共24个库,不可能都学,也不可能都不学,按照自己的需要对固件库函数学习的排列顺序:a)

绝大部分程序都要涉及到的库——flash,lib,nvic,rcc,gpio,只学基础的和最简单应用相关必用的部分,其他部分后期返回头再学。b)

各种程序通用但不必用的库——exti,MDA,s

温馨提示

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

最新文档

评论

0/150

提交评论