Proteus平台单片机项目式教程(中篇共上中下3篇)_第1页
Proteus平台单片机项目式教程(中篇共上中下3篇)_第2页
Proteus平台单片机项目式教程(中篇共上中下3篇)_第3页
Proteus平台单片机项目式教程(中篇共上中下3篇)_第4页
Proteus平台单片机项目式教程(中篇共上中下3篇)_第5页
已阅读5页,还剩130页未读, 继续免费阅读

下载本文档

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

文档简介

主讲:XXX《Proteus平台单片机项目式教程》西安电子科技大学出版社江西农业大学南昌商学院七、静态数码显示课程引入

1应用效果仿真展示2基本原理(重点)3实物效果展示4思考题与课外拓展5一、课程引入第一步:复习旧课。上节课,我们基于单片机的最小应用系统完成了汽车双闪灯控制系统的设计,它是单片机控制发光二极管的应用设计实例。但是生活中,我们经常用发光二极管来构成数码管的方式来显示基本信息。这节课,我们将讲述:怎么样利用单片机驱动控制一位数码管显示字符或数据?请大家一起来体验它的应用设计过程。一、课程引入第二步:启发式引入新的问题:在生活中,数码管的显示方式分为:静态显示和动态显示。(一动一静之间,彰显科技之美!)你知道什么叫静态显示、动态显示吗?(互动提问)第三步:提出这节课中心问题:

怎样通过单片机驱动一位数码管静态显示数字“0-9”或字符“a-f”中任意一个?

应用提示:生活中各个门店的的广告牌、显示屏的原理基本上都是采用静态或动态的驱动显示方式。答案是:静态显示和动态显示区别在于它的数据驱动方式,说白了就是单片机给数据的方式,而不是显示字符静止或流动。动态显示后面专题再讲,大家先网上自学一下。二、应用效果仿真展示打开Proteus仿真软件展示仿真效果(激发学生学习兴趣)

提问:数码管能显示字符吗,想想用它能显示哪些字符?三、基本原理(重点)

1、数码管简介数码管一种是半导体发光器件,分共阴、共阳两种。共阴极数码管:8个发光二极管的阴极(二极管负端)连接在一起。当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能提供额定的段导通电流。三、基本原理(重点)

2、静态数码显示的工作原理数码管的工作原理:是通过单片机的I/O端口进行驱动数码管的各个段码,点亮不同的段码从而形成字符显示出我们要的数字或字符。静态显示原理:当数码管显示某一字符时,相应的发光二极管恒定导通或恒定截止。每个数码管的8个字段分别与一个8位I/O口地址相连,I/O口只要有段码输出,相应字符即显示出来,并保持不变,直到I/O口输出新的段码。采用静态显示方式的特点:较小的电流即可获得较高的亮度,且占用CPU时间少,编程简单,显示便于监测和控制,但其占用的口线多,硬件电路复杂,成本高,只适合于显示位数较少的场合。

三、基本原理(重点)

3、数码管显示的编码原理要使数码管显示出相应的数字或字符,必须使段数据口输出相应的字形编码。

P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0显示字符编码数据D7D6D5D4D3D2D1D0dpgfedcba00111111“0”3FH00000110“1”06H01011011“2”5BH01001111“3”4FH01100110“4”66H01101101“5”6DH01111101“6”7DH00000111“7”07H01111111“8”7FH01101111“9”6FH01110111A77H01111100B7CH111111“0”00111111“0”3FH三、基本原理(重点)

4、任务分析和硬件电路设计采用AT89c51单片机作为本系统的控制核心,利用单片机P0口直接驱动一个共阴的数码管,驱动显示数据“5”。(1)硬件电路设计共阴数码管的公共端通过限流电阻接地,笔段端通过单片机P0口直接驱动,单片机是无法提供足够的驱动电流的。

为了节省硬件,直接采用上拉电阻进行简单的驱动配置,达到提供驱动电流的目的,提高数码管的显示亮度。

三、基本原理(重点)

5、软件程序

BUF1

EQU30H ORG

0000H LJMP

START ORG

0030HSTART: MOV

BUF1,#05HNEXT:MOV

A,BUF1 MOV

DPTR,#TABLE MOVC

A,@A+DPTR MOV

P0,A LCALL

DELY10MS LJMP

STARTDELY10MS:MOV

R6,#20D1: MOV

R7,#248 DJNZ

R7,$ DJNZ

R6,D1 RETTABLE: DB3FH,06H,5BH,4FH,66H,6DH;0,1,2,3,4,5 DB7DH,07H,7FH,6FH,77H,7CH;6,7,8,9,A,B DB58H,5EH,79H,71H,40H,00H;C,D,E,F,- END提问:请大家讨论一下,怎样编写程序实现一位数码管交替显示“6”、“A”?四、实物效果展示五、思考题与课外拓展1、思考题:编写程序实现一位数码管交替显示“6”“A”。

2、课外拓展:

请基于以上原理设计程序,在Proteus软件仿真平台分别实现以下功能。

(1)请利用单片机四组I/O口分别驱动4位数码管显示“good”、“1000”。

(2)请利用驱动芯片组成并口静态数码显示电路,显示“012345”等,提示可采用74LS373等数据锁存器。

(3)请利用驱动芯片组成串口静态数码显示电路,显示“HELLO”等字符,提示可采用74LS164等串行移位寄存器。

课外(自学):交替显示“6”“A”课外(自学):显示“HELLO”单片机技术主讲:XXX《Proteus平台单片机项目式教程》西安电子科技大学出版社江西农业大学南昌商学院八、0—9随机抽号器的设计

课程引入1应用效果仿真展示2基本原理(重点)3实物效果展示4思考题与课外拓展5一、课程引入第一步:复习旧课。上节课,我们基于单片机的最小应用系统完成了数码管的字符显示功能,它是单片机控制数码显示的静态显示实例,后面我们也会接着讲动态数码显示的编程方式。这节课将在上节课静态显示的基础上巩固加深,做一个数码跑动的键控效果,让数码管“动”起来。一、课程引入第二步:启发式引入新的问题:生活中,我们经常用到随机抽号器,例如考试的随机抽题、各种随机形式的抽签等等。以最简单的0-9随机抽号器的设计为例。那么请大家一起讨论一下,我们需要从那几个方面考虑?请积极发言:第三步:提出这节课中心问题:针对上述四个关键问题请给出最佳的设计、处理思路?

(1)数码管的显示,需要能够从0到9快速跑起来。(2)按键控制停止,按下键就停在某一随机数字上。(3)如何保证0-9的数据具有随机性?(4)怎样恢复到下一次的抽号?二、应用效果仿真展示仿真平台应用效果展示(激发学生学习兴趣)1、设计方法(4)怎样恢复到下一次的抽号?对策思路:最佳的人性化方案是,再按一下同一个键,即可立刻自动复位到随机抽号功能。可以通过开关按键的电平检测细分状态编程实现。(1)数码管的显示,需要能够从0到9快速跑起来。对策思路:要用一个计数变量,编程做加法运算实现0到9的循环数,之后译码显示。任务分析(2)按键控制它的停止,按下键就停在某一随机数字上。对策思路:要做一个按键检测,检测到就锁存正显示的数据不动,并且要始终嵌套在主程序中一直执行按键扫描。(3)如何保证0-9的数据具有随机性?对策思路:要保证公平性和随机性,加法循环计数速度要远远超过按键的操作速度,可以采用1秒钟,循环计数1000-10000次。三、设计原理(重点)三、设计原理(重点)2、系统设计(1)硬件电路设计采用AT89c51单片机作为本系统的控制核心,利用单片机P0口直接驱动一个共阴的数码管,按键状态通过P3.7口输入,不按为高电平,按下为低电平。三、设计原理(重点)

(2).软件程序编写

Count EQU30H SP1 BITP3.7 ORG 0000H LJMP START ORG 0030HSTART: MOV

Count,#00H MOV

DPTR,#TABLELOOP: MOV A,Count ADD A,#1 DA A ANL

A,#0FH MOV

Count,A MOVC

A,@A+DPTR MOV

P0,Asweep:JB

SP1,LOOP;等于1跳转。LCALL

DELY10MS JB

SP1,LOOPwt:

JNBSP1,wt;检测按键释放1;JNB等于0就跳转。

;LJMP$wIt:

JBSP1,wIt

;检测是否再次按键复位0,没有就等待wt2:

JNBSP1,wt2

;按键了准备复位,等待释放后复位。

LJMPSTARTDELY10MS:

MOVR6,#20D1: MOVR7,#248 DJNZR7,$ DJNZR6,D1 RETTABLE:

DB3FH,06H,5BH,4FH,66H,6DH;0,1,2,3,4,5

DB7DH,07H,7FH,6FH,77H,7CH;6,7,8,9,A,B

DB58H,5EH,79H,71H,40H,00H;C,D,E,F,- END

思考:请大家讨论一下,怎样编写程序实现两位数码显示的随机抽号功能?四、实验箱演示实物运行效果:五、思考题与课外拓展1、思考题:怎样编写程序实现两位数码显示的随机抽号功能?2、课外拓展:请基于以上原理设计程序,在Proteus软件仿真平台分别实现以下功能。(1)请编程实现一位数码管的0-9随机抽签排序功能,随机抽出0-9的数字各一,保证稳定性,防止误操作。(难点提示:可以通过“两键互锁,一键恢复”的方式防止误操作。)(2)请编程实现1-4位数码管随机抽号功能,添加一个按键,用于选择数码管的位数的模式切换。(3)请编程实现1-4位数码管随机抽签排序功能,添加一个按键选择数码管的位数模式切换。ThankYou!单片机技术主讲:XXX《Proteus平台单片机项目式教程》西安电子科技大学出版社江西农业大学南昌商学院项目3抢答器的设计

课程引入1应用效果仿真展示2基本原理(重点)3实物效果展示4思考题与课外拓展5一、课程引入第一步:复习旧课。上节课,我们基于单片机的最小应用系统完成了0-9随机抽号器的设计。一、课程引入今天我们将在此基础之上,设计一个抢答器。这是对数码显示技术及按键检测处理方法的一次综合型设计,目的是训练大家的应用编程能力,帮助理解前面的知识点,形成实际的编程应用能力。下一节课我们将转入下一个项目:交通灯的设计一、课程引入第二步:启发式引入新的问题:常见的抢答器有哪些功能?请大家回想数字电路课程设计中抢答器,它主要由哪几部分构成?以8路抢答器的设计为例。请大家一起讨论一下,我们需要从那几个方面考虑?第三步:提出这节课中心问题:针对上述四个关键问题请给出最佳的设计、处理思路?

(1)数码管的显示、驱动方式。(2)按键检测与处理。(3)如何保证抢答器的公平性?(4)怎样恢复到下一次的抢答?二、应用效果仿真展示仿真平台应用效果展示(激发学生学习兴趣)1、设计方法(4)怎样恢复到下一次的抢答?对策思路:设置主持人键,主持人按复位键手动恢复下一次抢答。分正常抢答完成、提前抢答和抢答超时三种情况下的复位。(1)数码管的显示、驱动方式。对策思路:数码管显示位数不多,可以采用静态显示,共阴数码管采用上拉电阻驱动即可。任务分析(2)按键检测与处理。对策思路:采用独立式按键,检测按键输入的电平变化,对按键扫描需要考虑到按键抖动的干扰,需要消抖处理。(3)如何保证抢答器的公平性?对策思路:利用开机自检、测试保证设备公平性;扫描的按键速度us级保证按键动作捕获公平;设置抢答锁定,设置主持键允许抢答、提前抢答违规处理保证过程公平。三、设计原理(重点)三、设计原理(重点)2、相关知识(1)按键去抖动

接触式按键,是有机械触点的弹性开关。按键按下,开关闭合;按键释放,开关断开。实现电气上逻辑关系的输出,提供标准的TTL逻辑电平。理想波形按键机械抖动波形一般有硬件消抖和软件消抖两种方法。三、设计原理(重点)硬件消抖:RC滤波去抖动脉冲计数就是合理设置一个计数值,通过计数来确认按键动作,避免重复响应。延时消抖是根据按键抖动出现的特性,利用10ms左右的延时,规避抖动信号出现的时间段,达到软件消抖的目的。软件消抖:脉冲计算、延时响应消抖。三、设计原理(重点)(2)数码管显示字符编码数据:单片机对笔段端I/O口输出的编码数据。共阴数码管显示字符“0”,对应的数据D7~D0为:3FH。数码显示方式:静态显示和动态显示。

这里采用静态显示:通过驱动器或锁存器直接控制数码管的显示,单片机端口直接驱动一位数码管。静态显示,耗占用CPU时间少。一般只适合于数码管显示位数较少的场合。数码管编码数据三、设计原理(重点)(3)驱动接口电路设计数码管、LED、点阵等发光部件常需要用数据锁存器74273、缓冲器74245、反相器7406、达林顿管UL2003等来做驱动。抢答器中的蜂鸣器、扬声器常需要三极管作驱动接口设计。常见的三极管接口电路三、设计原理(重点)3、系统设计(1)需求功能边界的确认开机自检:数码管倒计数,LED流水灯,显示是否正常。待机准备:禁止抢答,显示“0”,LED全亮,抢答键无效。主持人抢答键按下:蜂鸣器提示,数码管初始显示“-”,指示灯灭。数码管闪烁显示“g”、“o”,表示抢答键开始有效。提前抢答:数码管显示“E”,表示error,LED指示哪路提前抢答。抢答成功:蜂鸣器发声提示,数码管显示抢答结果,进入锁定状态。若抢答超时,蜂鸣器长响,主持人按键后恢复待机准备状态。三、设计原理(重点)(2)硬件电路设计

采用89c51单片机作为主控,利用单片机P1口扫描8路抢答按键,P2口接LED指示灯,并通过P0口上拉驱动的数码管显示。P3.0口为主持人键,P3.7口驱动蜂鸣器。三、设计原理(重点)

(3)

程序设计方法:先画出流程图,再写代码。代码分析见教材,或项目配套工程文件中讲解。思考:

请大家讨论,怎样编写程序实现10路抢答功能?四、实验箱演示实物运行效果:五、思考题与课外拓展1、思考题:基于Proteus平台,自己编程,独立完成简化版的八路抢答器设计:能够8路抢答、锁存、显示即可,做出仿真效果图。2、课外拓展:

拓展一:要求自己动手查找资料,基于Proteus平台,用C语言编写程序实现十路抢答器。拓展二:基于Proteus平台,实现具有数码0~9随机抽号功能。拓展三:基于Proteus平台,实现99计数器,按下键,数码管计数值加1。ThankYou!单片机技术主讲:XXX《Proteus平台单片机项目式教程》西安电子科技大学出版社江西农业大学南昌商学院单片机技术项目4交通灯-外部中断技术课程引入1应用效果仿真展示2基本原理(重点)3实物效果展示4思考题与课外拓展5一、课程引入第一步:复习旧课。上节课我们讲了8路抢答器的设计,单片机通过检测8路按键的状态判断抢答对象,并数码显示。主要涉及到数码显示技术及按键检测处理方法。前面讲的这些都是属于单片机基本的端口控制功能应用方法与技巧,今天我们开始涉及到单片机智能型体现的关键技术——中断系统。一、课程引入第二步:启发式引入新的问题:大家知道单片机是单片微型计算机的简称,知道在信息技术日益发达的今天,单片机以它的智能性改变着我们的生活,让我们逐步迈入了信息化的时代。那么,你知道它的智能性,真正体现在哪里吗?又或者说,你知道计算机的智能性体现在哪里吗?(提问)

其实,没有中断系统它谈不上智能,只是说速度比人快上几百万倍、几亿倍。目前计算机顶尖技术水平已经趋于晶体管开关速度的顶峰而已,它靠速度体现出了功能强大,但它的智能性却体现在于它的中断系统。既然大家都说计算机很厉害,大家就简单谈一下计算机的智能性:(老师总结大家的发言)(1)自动上网(2)智能识别(3)智控报警……一、课程引入

这节课我们需要解决以下几个问题:(1)什么叫中断?(2)为什么要引入中断系统?(3)单片机的中断系统怎么用?应用提示:现实生活中的防盗报警器、智能识别系统、微型自动控制系统等等。第三步:提出这节课中心问题:怎样编程应用外部中断INT0实现对P1口发光二极管的状态取反?我希望这时有人敢于质疑:老师,你凭什么这样说?二、Proteus仿真平台应用效果展示(激发学习兴趣)打开Proteus仿真软件展示仿真效果(激发学生学习兴趣)三、基本原理(重点)1、任务说明:我们按动单次脉冲产生电路的按键,触发外部中断0产生中断使发光二极管的状态每按一次就取反一次。2、外部中断的工作原理:首先来回答刚才的三个问题:(1)中断概念:主程序被突发事件打断。(2)中断智能性的体现与其特点。(3)需要对中断相关控制寄存器的设置。(1)什么叫中断?(2)为什么要引入中断系统?(3)单片机的中断系统怎么用?中断的特点:突发性、可以嵌套、有优先级、入口固定、保护现场。

主程序:

看财务报告一级中断:集团会务二级中断:市级会务中断服务子程序断点……中断返回中断返回中断响应中断响应断点三、基本原理(重点)3、外部中断应用方法:以INT0为例。(1)、外部中断的初始化设置共有三项内容:

IE:中断总允许即EA=1,EXi=1(i=0或1)。

TCON:中断触发方式设置:中断方式设置一般有两种方式:电平方式和脉冲方式,本设计选用后者下降沿触发。

INT0:中断请求信号,由引脚INT0(P3.2)和INT1(P3.3)输入触发信号。(2)、中断服务的关键:

a、保护现场。 堆栈有保护断点和保护现场的功能:使用PUSH。 b、必须在中断服务程序中:设定是否允许中断重入,设置EX0位。

c、恢复现场:用POP指令。三、基本原理(重点)

(3)、相关寄存器的设置涉及到中断控制有关的寄存器有:IE、TCON、和IP。我们只用外部中断INT0,设INT0触发方式为下降沿触发,并允许INT0中断。IE:(中断允许控制位为“0”时禁止中断,为“1”时允许中断。)IEEA

ESET1EX1ET0EX0TCON:(定时器控制位为“1”时启动,为“0”时停止。中断控制位为“0”时低电平触发,为“1”时下降沿触发。)TCONTF1TR1TF0TR0IE1IT1IE0IT0总允许00ST1INT1T0INT081H10000001T1标志启动、停止位T0标志启动、停止位X1标志X0触发方式X0标志X0触发方式01H00000001三、基本原理(重点)IP

PSPT1PX1PT0PX000H

00000

我们只用外部中断INT0,设INT0触发方式为下降沿触发,不需要设置中断优先级。IP:(中断优先级控制位为“0”时低级中断,为“1”时高级中断。)中断入口地址:INT0: 0003HT0: 000BHINT1: 0013HT1: 001BH串口S: 0023HST1INT1T0INT0三、基本原理(重点)4、系统设计(1)硬件电路设计如图所示。P1口接8个LED,单片机INT0脚接按键,按一次键输入负脉冲,触发中断一次。三、基本原理(重点)三、基本原理(重点) ORG0000H LJMPSTART ;跳至主程序 ORG0003H LJMPINTERRUPT ;跳至子程序 ORG0030HINTERRUPT: PUSHPSW;保护现场 CPLA ;取反LED MOVP1,A POPPSW ;恢复现场 RETISTART: MOVP1,#00H CLRA MOVTCON,#01H ;外部中断0下降沿触发 MOVIE,#81H ;打开INT0允许位EX0和总中断允许位EA LJMP$ END(2)软件程序编写提问:请大家讨论一下,用外部中断INT1,要怎样修改程序代码实现同样的功能?四、实物效果展示五、思考题与课外拓展1、课外思考题:

(1).简述中断处理的一般过程。(2).脉冲方式如何防止重复响应外中断。2、课外作业:基于Proteus软件仿真平台,怎样编写程序用外部中断1完成本节课的实例?3、课外拓展:基于单片机的外部中断技术,使用传感器做信号检测,做一个简易的防盗报警器。ThankYou!单片机技术主讲:XXX《Proteus平台单片机项目式教程》西安电子科技大学出版社江西农业大学南昌商学院单片机技术项目4交通灯课程引入1应用效果仿真展示2基本原理(重点)3实物效果展示4思考题与课外拓展5一、课程引入第一步:复习旧课。上节课我们讲了外部中断技术应用编程方法,通过编程应用外部中断INT0实现对P1口发光二极管的状态取反。

提问:外部中断技术的应用具有哪些关键点:(1)中断初始化配置:中断使能、工作方式、优先级(2)中断开启。(3)中断服务子程序。一、课程引入第二步:启发式引入新的问题:

现实生活中,交通事故的发生都是难以预料的,属于典型的中断突发事件,大家出行时应遵守交通规则,勿闯红灯。今天,我们要设计的项目是《交通灯》。交通灯规则有哪些?交通灯设计需要解决哪些问题?(提问)总结:(老师总结大家的发言)(1)“红灯停、绿灯行”。(2)红灯(禁行)、绿灯(通行)、黄灯(警示)。(红绿灯是国际统一的交通信号灯)(3)直行方向:“绿灯-黄灯-红灯-绿灯”正常控制,以及“全路口红灯”的特殊放行机制等等。第三步:提出这节课中心问题:应用外部中断,怎样编程实现交通灯控制?二、Proteus仿真平台应用效果展示(激发学习兴趣)打开Proteus仿真软件展示仿真效果(激发学生学习兴趣)三、基本原理(重点)1、任务说明:基于Proteus仿真平台,利用89C51单片机设计实现一个交通信号灯的模拟控制系统:正常情况下A、B道(A、B道交叉组成十字路口,A是主道,B是支道)轮流放行,A道放行1分钟(其中5秒用于警告),B道放行30秒(其中5秒用于警告)。一道有车而另一道无车(用按键开关K1、K2模拟)时,使有车车道放行。有紧急车辆通过(用按键开关K0模拟)时,A、B道均为红灯。2、解决的思路:(1)直行方向正常控制:主程序通过延时控制A、B通道轮流放行时间。(2)有车车道放行控制:INT1中断服务,检测车道放行。(3)紧急通行:INT0中断服务。三、基本原理(重点)3、系统设计(1)硬件电路设计如图所示。同一通道两个方向的交通灯是并联的。交通灯是高电平点亮的,低电平熄灭。74LS04作为交通灯驱动器,单片机P1口输出低电平有效。按键K1、K2分别模拟A、B道的车辆检测信号,采用异或门来实现中断的输入。按键K0是用来实现紧急车辆通过的应急开关,利用外部中断0中断实现A、B两个通道都同时为红灯。三、基本原理(重点)三、基本原理(重点)(2)软件设计主程序:输出P1端口数据控制A、B通道红绿灯轮流放行,分配R2寄存器来决定调用0.1秒延时子程序的次数,决定交通灯的各种延时时间。正常时,各口线控制功能及相应控制码(P1端口数据)如下表所示。

P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0控制码(P1端口数据)状态说明(空)(空)B线绿灯B线黄灯B线红灯A线绿灯A线黄灯A线红灯11110011F3HA线放行,B线禁止11110101F5HA线警告,B线禁止11011110DEHA线禁止,B线放行11101110EEHA线禁止,B线警告三、设计原理(重点)

(3)

程序设计方法:先画出流程图,再写代码。代码分析见教材,或项目配套工程文件中讲解。思考:

请大家讨论,怎样编写程序实现加入“左转弯”或倒计时功能?三、基本原理(重点)初始化: ORG 0000H AJMP MAIN ;指向主程序。 ORG 0003H AJMP INT00 ;指向紧急车辆出现中断程序。 ORG 0013H AJMP INT11 ;指向一道有车另一道无车中断程序。 ORG 0100HMAIN: SETB PX0 ;置外部中断0为高优先级中断。 MOV TCON,#00H ;置外部中断0、1为电平触发。 MOV IE,#85H ;开CPU中断,开外中断0、1中断。DISP: MOV P1,#0F3H ;A绿灯放行,B红灯禁止。 MOV R2,#55 ;延时55S,置1秒循环次数55。DISP1:MOV R1,#10 ;置0.1秒循环次数10。(4)软件程序:初始化代码编写。四、实物效果展示五、思考题与课外拓展1、课外作业:

任务2:基于Proteus平台,利用中断技术实现家庭防盗门的防盗报警器的设计。任务3:基于Proteus平台,完成交通灯设计,要求加入“左转弯”功能。2、课外拓展:要求自己动手查找资料,基于Proteus平台,每个通道采用两位数码管显示交通灯的倒计时时间,加入“左转弯”功能,加入人行横道红绿灯等,实现功能完整的交通灯。ThankYou!主讲:XXX单片机技术《Proteus平台单片机项目式教程》西安电子科技大学出版社单片机技术江西农业大学南昌商学院项目5、定时器-1.定时1S课程引入

1应用效果仿真展示2基本原理(重点)3实物效果展示4思考题与课外拓展5一、课程引入第一步:复习旧课。上节课我们讲了交通灯控制系统的设计,实现正常控制以及“全路口红灯”的特殊放行机制,主要涉及到中断系统的应用编程。一、课程引入第二步:启发式引入新的问题:通过上节课的学习我们知道了中断的用法,在计算机系统里,还有一种特别重要的中断资源,那就是定时器,它的使用与中断的配置很类似。首先看一下几个定时器的实物照片:(思政:科技兴国)1876年,英国外科医生索加取得一项定时装置的专利,用来控制煤气街灯的开关,它利用机械钟带动开关来控制煤气阀门,起初每周上一次发条,1918年使用电钟计时后,就不用上发条了,这就是定时器最早的发明。(科普由来)一、课程引入第三步:提出这节课中心问题:

怎样利用定时器T0实现1秒的定时?应用:定时器确实是一项了不起的发明,使相当多需要人控制时间的工作变得简单了许多。人们甚至将定时器用在了军事方面,制成了定时炸弹,定时雷管。现在的不少家用电器都安装了定时器来控制开关或工作。这节课我们需要解决以下几个问题:(1)单片机的定时器有什么特点?(2)该怎么用?二、应用效果仿真展示打开Proteus仿真软件展示仿真效果(激发学生学习兴趣)

提问:定时器的定时时间怎么配置?三、基本原理(重点)

1、定时器的工作原理单片机中主要有定时器和计数器两个功能。(滴水模型)内部定时器的编程主要涉及:定时常数的设置和有关控制寄存器的配置。定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。滴水模型TMOD:用于设置定时器/计数器工作模式,配置定时功能或计数功能。TCON:是为定时器在溢出时设定标志位,并控制定时器的启动或停止。三、基本原理(重点)

2、本节课具体任务:定时器T0,定时为一秒钟,CPU运用定时中断方式,实现每一秒钟输出状态发生一次反转,即发光管每隔一秒钟亮一次。方式1:TMOD=01HGATEC/TM1M0GATEC/TM1M0用于设置T1用于设置T0M1M0工作方式功能00方式0TLX低5位与THX的8位=13位计数器01方式1TLX与THX构成16位计数器10方式2自动重装8位计数器,TLX与THX溢出,THX内容自动送TLX11方式3定时器T0分成两个8位定时器;T1停止。fosc=12MHz,Tm=1us→213=8192us→216=65536us→28=256us→28=256us定时常数:65536-10000(10ms)=55536D=d8f0H10ms/次*100次=1s三、基本原理(重点)

3、控制寄存器TCON、IE

TCON:(定时器控制位为“1”时启动,为“0”时停止。)TCONTF1TR1TF0TR0IE1IT1IE0IT0T1标志启动、停止位T0标志启动、停止位X1标志X0触发方式X0标志X0触发方式10H00010000IEEA

ESET1EX1ET0EX0总允许00ST1INT1T0INT082H10000010三、基本原理(重点)

4、软件程序ORG 0000HLJMP STARTORG 000BHSJMPT0_INTORG

0030H

;初始化程序:中断定时10ms/次*100=1sSTART:MOV

TMOD,#01H ;设置T0工作在方式165536-10000(10ms)=55536D=d8f0hMOV TH0,#0d8H ;将计数初值存入T1MOV TL0,#0f0HMOVIE,#82H ;EA\..\..\ES\ET1\EX1\ET0\EX0SETB TR0 ;启动T0MOVR0,#100AJMP $ T0_INT:MOV TH0,#0d8H ;将重装初值存入T0MOV TL0,#0f0HDJNZR0,EXITCPL

P2.0MOVR0,#100EXIT:RETIEND提问:

请大家想想,要怎么修改程序实现定时2秒的效果?四、实物效果展示五、思考题与课外拓展1、思考题:

(1)如何将LED的状态间隔改为2秒,怎么修改程序实现定时2秒的效果?

(2)如果更换不同频率的晶振,会出现什么现象?如何调整程序?2、课外拓展:

请基于以上原理设计程序,课后利用Proteus仿真平台,采用定时器1工作在方式0模式下,自己独立编写程序,实现定时1秒对P1口LED取反?主讲:XXX单片机技术《Proteus平台单片机项目式教程》西安电子科技大学出版社单片机技术江西农业大学南昌商学院项目5、定时器-2.“9分59秒”定时器课程引入

1应用效果仿真展示2基本原理(重点)3实物效果展示4思考题与课外拓展5一、课程引入第一步:复习旧课。上节课我们讲了定时器的应用编程方法,通过编程应用定时器T0实现对P1口发光二极管的状态定时1秒取反。提问:定时器的编程应用具有哪些关键点:(1)定时器初始化配置:定时常数的配置、工作模式设置。(2)定时开启。(3)定时中断服务子程序。一、课程引入第二步:启发式引入新的问题:通过上节课的学习我们知道了单片机定时器的用法,今天我们应用它设计一个“9分59秒”定时器。定时器的应用主要分为以下步骤:(1)根据定时时间配置工作模式TMOD,装载定时常数。(2)置位TR0或TR1,启动定时器。(3)定时中断服务:保护现场,重装初值,中断处理和恢复现场。第三步:提出这节课中心问题:

怎样利用定时器T0实现“9分59秒”定时器?二、应用效果仿真展示打开Proteus仿真软件展示仿真效果(激发学生学习兴趣)

三、设计原理(重点)

1、项目任务:

基于Proteus仿真平台,设计实现秒定时器。要求可预设最大定时时间为9分59秒。功能预设如下:(1)开机显示“101”,表示当前初始值为:1分零1秒。可按键设置定时时间。(2)定时时间设置完毕后,按“开始键”启动定时器,倒计时开始。发光二极管每过1秒闪烁1次,数码管显示秒位减1。(3)当所设定时时间到,数码管减为零,LED灯灭,蜂鸣器长响提示。三、设计原理(重点)

2、系统设计(1)硬件电路设计

P3、P2、P0:分、秒值的显示。

P1.0、P1.1:分、秒按键,预设时间的调整。

P1.0、P1.1:确认与取消键。 P1.7:LED(低电平有效) P1.3:蜂鸣器(低电平有效)三、设计原理(重点)(2)软件设计

思路:对于分钟和秒钟我们分别用两个变量minite、second来表示。

1秒定时利用定时器T0完成,定时初值配置为TL0=0x06,则每次溢出中断事件为250μs,对中断次数进行计数,达到4000次即为1秒。

主程序:采用查询方式实现按键的扫描,完成对预设时间的调整与定时器的启动、停止。

中断服务子程序:采用定时器0工作在方式2实现1s的定时,并做秒的减1及送显操作等。

三、设计原理(重点)

(3)

程序设计方法:先画出流程图,再写代码。代码分析见教材,或项目配套工程文件中讲解。思考:

请大家讨论,怎样编写程序实现“9999S”定时?四、实物效果展示五、思考题与课外拓展1、思考题:

基于Proteus平台,9999秒定时器的设计。2、课外拓展:

拓展一:要求自己动手查找资料,基于Proteus平台,设计实现数字钟的设计。

拓展二:基于Proteus平台,完成低频频率计的设计。主讲:XXX单片机技术《Proteus平台单片机项目式教程》西安电子科技大学出版社单片机技术江西农业大学南昌商学院项目6串口通信 课程引入1应用效果仿真展示2基本原理(重点)3实物效果展示4思考题与课外拓展5一、课程引入第一步:复习旧课。前面,我们采用单片机的定时中断,设计了一个“9分59秒”定时器。主程序:按键的扫描。中断服务:T0工作在方式2实现1s的定时,及送显。一、课程引入今天我们将了解单片机串行通信的特点。掌握单片机串行通信协议及其具体应用编程方法。那么,什么叫通信?常见的通信方式有哪些?(学生讨论、老师作总结)总结:(1)通信,就是信息的传递。(2)烽火台、击鼓、驿站接力、信鸽、旗语,电报,电话,短信,E-MAIL等。(3)串行通信和并行通信、全双工通信,Wi-Fi,USB,NFC等。一、课程引入第二步:启发式引入新的问题:串行通信、并行通信有什么不同?现代计算机系统中串口通信十分常见,为什么计算机与外设通信采用串口居多?例如:USB接口从1.0(1996年),3.0到4.0(2019年),速度从1.5Mbps到40Gbit/s。(速度的背后:协议标准升级、换代)第三步:提出这节课中心问题:单片机如何实现与PC机进行串口通信?

同理,单片机的串口通信,需要解决以下几个问题:(1)串口通信协议是指什么?(2)单片机串口通信的特点?二、应用效果仿真展示仿真平台应用效果展示(激发学生学习兴趣)三、基本原理(重点)

1、项目任务:

基于Proteus仿真平台和单片机技术实现PC机与单片机串口通信。具体如下:

(1)将PC机键盘输入的数据先发送给单片机,单片机收到PC机发来的数据后,回送同一数据给PC机,通过串口调试终端显示出来。

(2)单片机同时将接收到的30-39H之间的数据转换成0-9的数字显示在数码管上,其他的字符则直接显示为其ASCII码。

(3)当串口调试终端显示的字符与所键入的字符相同,说明二者之间的通信正常。三、基本原理(重点)2、相关知识(1)串行通信概念

串行通信,计算机与外设通信时,数据一位一位地按顺序传送。

特点:传送控制复杂、通信速度较慢。但传输线少,成本低。往往只需一根数据信号线,可以较大地节约通信成本。串行通信示意图串行通信可分为同步通信和异步通信两类。三、基本原理(重点)(2)通信协议异步通信:在异步通信中,收、发设备时钟独立,互不同步,数据以字符帧为单位进行传输。字符帧格式:异步通信的字符帧格式三、基本原理(重点)波特率(Baud):波特率指每秒钟传送码元(符号)的个数,1波特即指每秒钟传输1个码元。它是衡量异步通信传输通道频宽的一个重要指标。同步通信协议:收、发设备时钟同步,在数据开始传送前用同步字符同步收发。同步通信的字符帧格式三、基本原理(重点)(3)单片机串口的结构特点

89C51单片机的串行口主要由串行口缓冲器SBUF、串行控制寄存器SCON、输入移位寄存器和定时器T1等几部分构成。工作原理:发送数据时,“MOVSBUF,A”指令将数据写入到发送SBUF,在移位脉冲控制下,TXD向外按位输出数据。串行口结构示意图三、基本原理(重点)串行口接收数据时,CPU不停地检测引脚RXD上的信号,采样到起始位低电平“0”时,在接收控制器的控制下,按设定好的波特率,每来一次移位脉冲,读取RXD引脚上的1位数据到移位寄存器。

一帧数据接收完后,被存入接收SBUF,RI位由硬件置1。

串行口结构示意图三、基本原理(重点)(4)串行口控制寄存器SCON串行工作方式选择:SCOND7D6D5D4D3D2D1D0位名称SM0SM1SM2RENTB8RB8TIRI功能工作方式选择位多机通信控制位允许串行接收使能发送数据第接收数据第发送中断标志位接收中断标志位SM0SM1工作方式功能波特率00方式8位同步移位寄存器fosc/1201方式10位UART可变(T1溢出率)10方式11位UARTfosc/64或fosc/3211方式11位UART可变(T1溢出率)三、基本原理(重点)(5)串行口工作方式1)方式0:同步移位寄存器方式0输出数据串行口工作时序图三、基本原理(重点)2)方式1:10位UART发送数据:10位的帧格式:接收数据:三、基本原理(重点)3)方式2:11位UART发送数据:11位的帧格式:接收数据:三、基本原理(重点)4)方式3:11位UART通常,我们可以通过查表6-4就可以快速得到常见的波特率设置参数。方式3模式下,串行口也为11位UART,波特率可变。除波特率外,方式3和方式2完全相同,适用于多机通信。2)方式1和方式3,波特率:Baud=(6)串行口波特率1)方式0和方式2,波特率:Baud=三、基本原理(重点)3、系统设计(1)硬件电路设计

采用MAX232芯片,零调制三线经济型连接。利用两位带BCD译码功能的数码管显示单片机接收到的数据。

串口调试虚拟仿真终端监视串口收发的数据。三、基本原理(重点)

(2)

程序设计

串行口一般初始化步骤:

一、确定T1的工作方式(TMOD)。T1用作波特率发生器时工作在定时模式2,则TMOD=20H。

二、计算T1的初值,装载TH1、TL1。由表6-4可知,波特率9600bps时,fosc=11.059MHz,其误差为0%,可设置SMOD=0,TH1=FDH,TL1=FDH,PCON=00H。

三、启动T1:SETB TR1。

四、确定串行口工作方式(SCON)。由表6-4可知,可配置串行口工作方式1,SM0=0,SM1=1;允许接收数据,REN=1;清除中断标志,TI=0,RI=0。所以,SCON=50H。

五、串口中断设置(IE、IP)。配置串口高级中断,PS=1,则IP=10H。允许串口中断,ES=1。开总中断,EA=1。因此,IE=90H。三、基本原理(重点)

串行口初始化程序如下:INIT_UART:MOV TMOD,#20H ;T1工作在定时模式2,自动重装载的8位。MOV TL1,#0FDH ;波特率9600bps,定时初值为FDH。MOV TH1,#0FDH ;设置定时初值。MOV PCON,#00H ;设置SMOD=0。SETB TR1 ;启动定时器T1。MOV SCON,#50H ;串行口工作方式1,允许接收清除TI、RI。MOV IP,#10H ;配置串口中断优先级为高级中断。MOV IE,#90H ;允许串口中断,开总中断。三、基本原理(重点)

程序设计流程图:方法:先画出流程图,再写代码。代码分析见教材,或项目配套工程文件中讲解。思考:

请大家讨论,怎样编写程序实现多机通信?三、基本原理(重点)源程序讲解ORG 0000HLJMP STARTORG 0030HINIT_UART:

;初始化。MOV SP,#60H ;SP初始化。MOV TMOD,#20H ;T1工作在重装8位。MOV TL1,#0FAH ;波特率9600bps。MOV TH1,#0FAH ;设置定时初值。MOV PCON,#80H ;SMOD=1,加倍。MOV SCON,#50H ;串行口方式1。MOV IP,#10H ;串口为高级中断。MOV IE,#90H ;允许串口中断。SETB TR1 ;启动定时器T1。MOV P1,00H ;关掉数码显示。RETSTART:ACALL INIT_UART ;调用初始化。LOOP: JNB RI,$

;等待接收完成。 CLR RI ;清除接收标志。 MOV A,SBUF;读取数据。 PUSH ACC ;压栈暂存数据。

CJNE A,#30H,SET1 ;

SJMP SET3 ;A=30H,跳SET3。SET1:

JC SET4 ;若CY=1,则跳SET4。 CJNE A,#39H,SET2

SJMP SET3SET2:

JNC SET4

CLR CSET3:

SUBB A,#30HSET4:

MOV P1,A ;送显。

POP

ACC ;出栈恢复数据。

MOV SBUF,A;发送接收到的数据。 JNB TI,$ ;等待发送完成。 CLR TI

;清除TI标志。 SJMP LOOP ;继续接收数据。 END四、实验箱演示实物运行效果:五、思考题与课外拓展1、思考题:基于Proteus平台,自己编程,独立实现:单片机检测按键是否按下,每按下一次,串口发送数据十六进制数据FAH给PC端串口,并通过串口调试助手显示。设计原理图并编写程序,做出仿真效果。2、课外拓展:

拓展一:基于Proteus平台,通过单片机串口向PC机发送“Youarewelcome!”,并通过串口调试助手显示。

拓展二:基于Proteus平台设计双机通信,要求实现对甲乙机编程完成甲机键盘扫描,通过串行口将键号送给乙机,并在乙机最右边的LED中显示键号。ThankYou!主讲:XXX单片机技术《Proteus平台单片机项目式教程》西安电子科技大学出版社单片机技术江西农业大学南昌商学院项目799马表的设计课程引入

1应用效果仿真展示2基本原理(重点)3实物效果展示4思考题与课外拓展5一、课程引入第一步:复习旧课。上次课,我们基于Proteus完成了单片机串行通信的系统设计,大家可以跟我一起看一下仿真效果,进行一次复习回顾。今天我们将设计一个99马表,这是对数码显示技术及按键j精细检测处理方法的一次应用性设计。目的是训练应用编程能力,理解知识点,形成应用能力。一、课程引入第二步:启发式引入新的问题:马表是什么?体育运动比赛的用表,通常只有分针和秒针,按动转钮可以随时使它走或停,能测出1/5秒或1/10秒的时间。最初用于赛马计时,因而得名。也叫停表或跑表(人生如赛跑)。请大家总结一下马表的功能:(提问,总结大家发言)(1)赛马时,按一下键开始跑。(2)马到达终点,第二次按键计时停止。(3)再按键计时归零。一、课程引入第三步:提出这节课中心问题:

温馨提示

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

评论

0/150

提交评论