MCS51单片机课程设计教学案

上传人:无*** 文档编号:144872318 上传时间:2022-08-28 格式:DOC 页数:25 大小:987.54KB
收藏 版权申诉 举报 下载
MCS51单片机课程设计教学案_第1页
第1页 / 共25页
MCS51单片机课程设计教学案_第2页
第2页 / 共25页
MCS51单片机课程设计教学案_第3页
第3页 / 共25页
资源描述:

《MCS51单片机课程设计教学案》由会员分享,可在线阅读,更多相关《MCS51单片机课程设计教学案(25页珍藏版)》请在装配图网上搜索。

1、.MCS-51单片机课程设计(交通控制灯的制作)第一讲一单片机的概念所谓单片机就是将计算机的CPU、RAM、ROM、定时器/计数器和各种I/O口(如并行口、串行口等)集成在一片芯片上而制成的大规模集成电路。形成芯片级的计算机。因此单片机早期的含义称为单片微型计算机,简称为单片机(Single Chip Microcomputer)。CPU:是计算机的核心,叫做中央处理单元(Center Process Unit)。所有的数学运算和逻辑控制都由它完成。RAM:随机存取存储器(Random Access Memory),存放运算过程中的数据。ROM:只读存储器(Read Only Memory)。

2、定时器/计数器:计算机部重要部件。I/O:输入/输出口(Input/Output),包括并行口、串行口等。二单片机的特点1 小巧灵活,成本低,易于产品化。2 面向控制,能针对性解决从简单到复杂的各类控制任务,因而能获得最佳性能价格比。3 抗干扰能力强,能在恶劣的环境下可靠工作。三单片机的应用1 工业方面:电机控制、过程控制、智能传感器等2 仪器仪表方面:智能仪器、医疗器械等3 民用方面:电子玩具、家电产品、游戏机等4 军事方面:导弹控制、智能武器装置等5 其它四、 MCS-51单片机部结构(如图)内部BUS内中断振荡器OSC程序存储器4KB ROM数据存储器128B RAM216位定时器/计数

3、器8051CPU可编程并行口可编程串行口外中断1 1个8位的CPU2 一个片振荡器及时钟电路3 4KB ROM(不同型号容不同,看书)4 128B 部RAM5 可寻址64KB的外部ROM和外部RAM的控制电路6 两个16位定时器/计数器(Timer/Counter)7 26个特殊功能寄存器(SpecialFunction Register)8 4个8位并行(Parallel)I/O口9 一个串行口(Series)10 5个中断源(Interrupt)这些我们称为单片机的资源(Souce),单片机的应用就是怎么充分合理地利用这些资源,来解决实际中的问题。五、MCS-51单片机的CPUMCS-51

4、的CPU包括两部分:运算部件和控制器。1运算部件运算部件包括算术逻辑部件ALU、布尔处理器、累加器A、寄存器B、暂存器以及程序状态寄存器PSW等。该部分的功能是实现数据的算术逻辑运算、位变量处理和数据的传送操作。ALU的功能十分强,可以对8位变量进行逻辑“与”、“或”、“异或”、循环、求补和清零等基本操作,还可以进行加、减、乘、除等基本运算。还可对位(BIT)变量进行布尔处理,如置位、清零以及逻辑“与”、“或”等操作。累加器A是一个8位的累加器(也可以写为ACC),绝大部分运算和操作都同A有关。在程序中用的最多。另外它有一个进位标志CY,同时又是布尔处理器的累加器。寄存器B是专为执行乘法和除法

5、操作而设置的,一般情况下也可以作为暂存器使用。程序状态寄存器PSW是一个8位的寄存器,部存放程序运行状态的信息。2控制器(Controler)控制器是单片机的神经中枢,以振荡器的频率位基准,产生CPU时序,对指令(Command)进行译码,然后发出各种控制信号,实现各种操作。六、MCS-51单片机最小应用系统1、最小硬件系统(System)所谓最小硬件系统是指单片机能工作所必须具备的硬件条件,它包括四个部分:1)电源芯片接上5V电源,即40脚接5V电源的正,20脚接5V电源的负。2)时钟电路18、19脚接晶体振荡器和电容构成时钟电路。3)程序存储器选择EAAT89S51片有EEPROM,EA接

6、“正”。4)复位电路8.2KRSTVCC+5V+5V+5V40 31 89C511 9 181920EA10F6MHz20P为保证单片机正常工作,必须有复位电路,电路复位后程序从头开始运行。要使电路复位,只要在复位引脚上加两个机器周期以上的高电平。2、MCS-51复位状态1)复位后PC值为0000H,程序(Program)从头运行(Run)。2)SP为07H3)P0P3口为FFH4)其余的SFR被置为03、I/O口线 P0口:8位双向I/O口。在访问外部存储器时,P0口可用于分时传送低8位地址总线和8位数据总线。能驱动8个LSTTL门。 P1口:8位准双向I/O口(“准双向”是指该口部有固定的

7、上拉电阻)。能驱动4个LSTTL门。 P2口:8位准双向I/O口。在访问外部存储器时,P2口可用于高8位地址总线。能驱动4个LSTTL门。 P3口:8位准双向I/O口。能驱动4个LSTTL门。P3口还有第二功能。I/O口应用要求: (AT89S51)I/O口作输入使用作输出使用带负载能力P0 先向对应锁存器写入“1” 上拉电阻 8TTLP1 同上 / 4TTLP2 同上 / 4TTLP3 同上 / 4TTL七、单片机应用的一般步骤:1硬件电路设计:单片机的最小应用系统:包括电源、时钟电路、复位电路、程序存储器选择四个方面。制作显示电路。状态指示灯和LED/LCD显示电路。制作键盘电路。行列式键

8、盘或独立式按键接口电路。根据系统的实际情况选择自己的键盘电路。2软件设计:新建文件-保存(文件名和扩展名有何要求?)文件名长度小于等于8个字符,扩展名为ASM文件要保存在自己的文件夹中程序的一般结构ORG 0000HLJMP SETUP;起始程序;中断入口地址ORG 0030HSETUP:;初始化部分MAIN:;主程序LJMP MAIN;子程序和中断服务程序END ;汇编程序结束先编好程序的一般结构,具体程序添加在一般结构的相应位置,要始终保持程序结构的完整性。标点符号要在英文格式下输入。编译-编译过程中自动检查语法错误,出现信息窗口提示错误类型,并指出所在行。修改错误直到编译通过。仿真-观察

9、CPU窗口、DATA窗口 -复位后执行单步F8或跟踪F7比较单步F8和跟踪F7的区别3下载:用编程器将目标文件*.HEX下载到单片机芯片中。(器件选择、目标文件装入、擦除、写入)4通电调试:将单片机放到硬件电路上通电调试第二讲一、特殊功能寄存器SFRSFR也属于部存储器,由于它是专用的,人们通常讲的部RAM只指前面的128个,而不包括SFR。共计21个,它们离散的分布在80HFFH。参看P34-35页的表。对特殊功能寄存器应注意以下几个问题:1 那些是可以位寻址的,字节地址(Address)的末位为0或8。2 可位寻址的SFR的几种操作方式。3 不可位寻址的SFR的操作方式。4 80HFFH中

10、其余单元,不要使用。5 程序状态寄存器PSW位编号PSW.7PSW.6PSW5PSW.4PSW.3PSW.2PSW.1PSW.0位地址D7HD6HD5HD4HD3HD2HD1HD0H位定义名CYACF0RS1RS0OVPRS1、RS0=000区(00H07H)RS1、RS0=011区(08H0FH)RS1、RS0=102区(10H17H)RS1、RS0=113区(18H1FH)CY 与的区别OV:CY为无符号数运算时的进位或借位标志,OV为有符号数运算时的溢出标志。二、RAM部RAM:(00H7FH)部数据存储器的空间编址是00H7FH,共128个,它又分为三部分:工作寄存器区,位寻址区和数据

11、缓冲区。堆栈、数据缓冲区(30H7FH)位寻址区(202FH)工作寄存器3区(18H1FH)工作寄存器2区(10H17H)工作寄存器1区(08H1FH)工作寄存器0区(00H07H)1 工作寄存器区00H1FH共32个单元,分为4组,每次只有一组处于工作状态,通过改变状态寄存器PSW中RS1,RS0的设置来改变当前使用的工作寄存器。指令系统中有专用于工作寄存器的操作,读写速度比一般RAM要快,另外还具有间接寻址功能,使用很方便。2 位寻址区20H2FH共16个单元为位寻址区,每个单元也就是一个字节8位,共计128位,每位对应一个地址,地址的围为00H7FH。位寻址区的主要用途是存放各种标志位信

12、息和位数据。3 数据缓冲区(Buffer)RAM中30H7FH为数据缓冲区,用于存放各种数据和中间结果。中断源(AT89C51)中断源5个中断源名称入口地址外部中断0 INT0 0003H定时器0 T0 000BH外部中断1 INT1 0013H定时器1 T1 001BH串行口 0023H三、外部中断应用步骤:1)硬件上:在对应的中断引脚上加有效请求信号外中断0(12引脚P3.2)/外中断1(13引脚P3.3)2)在程序开头送入口地址ORG 0003HLJMP INEXOP 3)外部中断初始化IT0 信号触发方式/SETB IT0EX0 中断允许/SETB EX0EA 总中断允许/SETB E

13、A4)对应中断服务程序保护现场 PUSH (压入堆栈)恢复现场 POP (弹出堆栈)(堆栈:先进后出,后进先出)四、定时器中断的应用步骤:1.在程序开头送入口地址2.定时器初始化2.1选择定时器工作方式:MOV TMOD,#11H2.2送定时初值TH0(TH1) /MOV TH0,#;定时初值高八位TL0(TL1)/ MOV TL0,#;定时初值低八位2.3、启动定时器(TR0 TR1) SETB TR0 2.4、定时器中断允许(ETOET1) SETB ET0 SETB ET12.5、开总中断EA SETB EA3.定时器服务程序保护现场重装初值恢复现场五、 MCS-51单片机的设计思路和步

14、骤一个单片机的控制系统在运行时,一般情况下都需要和使用它的人之间交换信息。单片机运行的状况要有指示或显示,便于人掌握运行情况,同时人也要给单片机系统输入适当的参数,控制或改变其运行。单片机应用系统一般都包含显示和键盘电路(除特别简单的应用),在设计制作时应首先做好显示电路,便于后面的工作展开,如键盘电路是否正确可以通过显示电路表现出来。硬件制作和软件互相配合,程序编制也应跟硬件制作同步,即某部分电路制作好以后编写相应的程序对其操作,看是否达到设想的要求。单片机应用系统的一般设计步骤如下:1 制作最小应用系统,也即单片机能工作的最基本的必要条件。包括电源、时钟电路、复位电路、程序存储器选择四各方

15、面。2 制作显示电路。状态指示灯和LED/LCD显示电路,根据系统工作的性能要求确定显示电路的形式,分配资源并要考虑后面制作对资源的要求,综合考虑。编写相应的控制或显示程序。3 制作键盘电路。行列式键盘或个独立式按键接口电路。根据系统的实际情况选择自己的键盘电路,如果是系统要求的按键比较多,或要求直接能输入数字、字符,一般选用行列式键盘,其它情况下一般用独立式按键,并且可以采用复合功能的方法减少键的数量。同样硬件的制作也要和软件同步,特别要和显示程序结合起来。4 其它功能电路设计制作。包括输出的驱动电路、数字量输入的缓冲整形电路、A/D、D/A转换电路、模拟量的变换电路等。需要根据它们之间在关

16、系确定制作的前后顺序,同步地编写控制程序。合理使用定时器,定时器也可以看作是硬件的资源,由于数量有限,需合理配置满足系统要求。六、 MCS-51单片机应用程序的一般结构ORG 0000HLJMP SETUP ;起始程序 ;中断服务程序入口地址ORG 0030HSETUP: ;初始化部分MAIN: ;主程序LJMP MAIN ;子程序和中断服务程序END汇编语言的程序结构在软件设计过程中非常重要,程序结构的错误将导致系统不能运行,因此在编写程序过程中应始终保持程序结构的完整性。程序的开头一般都是一句跳转语句,要跳过中断服务入口地址。初始化部分一般包括系统运行的起始参数和运行状态标志的设置,部中断

17、源的设置等。初始化程序还应考虑堆栈的设置,一般应将堆栈设置在数据缓冲区,跳过工作寄存器区和位寻址区。主程序一般是显示程序和键盘程序(键盘用程序控制扫描方式时)。主程序是循环程序。程序容上的错误是容易检查,通过运行的状态和结果可以判断出问题所在,而结构的错误往往较难判断,最好在编写过程中注意。七、 位信息的使用在实际的单片机应用程序的设计中,程序比我们实验上设计的程序要复杂得多,不是课堂上讲的顺序程序和循环程序,更多的是分支程序,分支程序的设计要根据某一状态确定程序执行的分支。在程序设计多数要编程者人为分配位地址,来存放这些状态信息。位信息的使用需要注意以下几个方面:1 位信息只能用来存放两个相

18、反的状态,对于多状态的情况需要用多个位信息的组合表示。如:表示灯的亮灭,开关的闭合都可以用一个位信息来表示,而要表示红灯、绿灯和黄灯量的状态,一个位信息显然无法存放,我们可以用两个位信息的组合来表示,BIT1=1时,BIT2任意值表示红灯亮、绿灯灭、黄灯灭的状态;BIT1=0时,BIT2=0表示红灯灭、绿灯亮、黄灯灭的状态;BIT1=0时,BIT2=1表示红灯灭、绿灯灭、黄灯亮的状态;2 位信息在使用前都必须初始化,在初始化程序中确定其初始的状态值以及所表示的状态。一般在初始化时都设为0(可以根据编程者的习惯任意设定),在需要改变时用指令切换。3 位信息的修改一般都是“双次”的,“双次”的意思

19、是某一位信息被改变了,在程序的其它地方一定有使其恢复的操作。只有极个别情况下不是这样,如系统出现某一种特殊状态,不允许继续运行程序,继续运行可能造成控制系统设备或人员的损伤。这时系统待外部检查没有问题了,从上电开始重新运行。4 位信息的使用在很多情况下是和定时器配合使用,编写多延时程序;或者和键盘程序配合使用,实现按键的复合功能。八、 多延时程序设计在单片机的实践应用中,经常遇到多个同时(三个以上)与延时有关的程序设计,我们把这样的程序称为多延时任务程序。多延时任务程序从任务间的关系上分为两类:一是各延时时任务间无时间关联,称为简单多延时任务程序。二是延时任务程序间有时间关联,延时任务的执行同

20、时启动其它一个或多个延时任务操作,或者延时任务执行的同时启动自己的取消操作延时,这类多任务程序称为复合多延时任务程序。由于单片机部的定时器数量总是有限的,如MCS51系列单片机,部只有23个定时器。这时就需要用位信息和定时器配合设计多延时程序。方法步骤如下:1 首先,为每个时间任务分配一个计时标志(用位寻址区的位存放,1计时,0不计时)、计时单元(一般用部RAM)和执行标志(1有效,0撤消)。2 找出所有时间任务的公倍时间值,这个时间值要小于单片机系统的定时器能产生的最大定时值,定时值时间越长越好,可以减少定时器中断的次数。3 分配一个定时器反复产生确定的公倍时间。4 在需要执行某一时间任务时

21、,置位该任务的计时标志并清除其计时单元。该操作可能在系统初始化时执行,也可在主程序中,或者是某一延时任务动作时执行,示具体的任务间关系而定。在定时器的服务程序中,判断这些任务的计时标志是否为1,为0不计时,去判断下一任务的标志。如果为1,相应计时单元加1,并和设定的值比较,达到设定值时,置该任务的执行标志为1,同时清除其计时标志。5 主程序或其它程序检查到某一任务执行标志时执行相应的操作。例:用一个定时器输出多路矩形波在P1.0和P1.1引脚输出图3所示的多路矩形波(输出更多路信号,方法类似)。将要输出的信号分解成若干个延时任务。P1.0输出信号可以分成两个延时任务,TASK1延时2ms使P1

22、.0输出低电平,TASK2延时3ms使P1.0输出高电平,且TASK1和TASK2相互交替启动对方延时。同样可以把P1.1输出分解成延时任务TASK3和TASK4。显然这4个延时任务的最大公倍延时时间为1ms。P1.0P1.12ms3ms3ms4ms 单片机输出多路矩形波延时任务TASK1TASK2TASK3TASK4计时标志00H01H02H03H计时单元70H71H72H73H计时标志位和计时单元由于4个延时任务的操作都是简单的操作,可以直接放在定时器的服务程序中执行,只需为每个任务分配一个计时标志和一个计时单元,如表1所示。在初始化程序中将定时器T0设置为方式1定时模式,定时1ms,所有

23、计时单元清为0,位地址00H、02H置为1,位地址01H、03H置为0,P1.0置为1,P1.1置为0,波形的输出在T0的中断服务程序中完成。第三讲一、课题:设计一个交通控制灯二、设计目的1、掌握MCS-51单片机应用的一般步骤 2、掌握单片机部资源的使用方法 3、了解位信息的使用、多延时程序设计 4、设计制作一个交通控制灯三1基本要求(1)用红、绿灯(LED二极管)指示某一方向通行状态,并有时间提示(LED数码管)。(2)红、绿灯时间参数可设置。(3)控制灯切换原则:红灯倒计时结束切换为绿灯,绿灯倒计时结束切换为红灯,某一时刻只能有一个方向为绿灯。状态指示灯切换和数码管上时间同步切换。(4)

24、提供具体的修改参数方法,便于用户操作。(5)为简化设计,不考虑转向、行人通道。2高级要求(1)用红、绿、黄灯指示通行状态。(2)红、绿灯时间参数可设置,在断电情况下不丢失。(3)控制灯切换原则:同一时刻一个方向的红灯显示时间比另外一个方向绿灯显示多3秒钟,绿灯结束黄灯闪烁2秒,然后变红灯,红灯结束后变绿灯。(4)修改参数期间各个方向都黄灯闪亮,指示车辆减速慢行。(5)提供具体的修改参数方法,便于用户操作。(6)为简化设计,不考虑转向、行人通道。二、系统控制方案分析1控制方案(以高级要求为例,基本要求参照高级要求适当删减)通过分析控制系统的功能要求,系统中需要以下功能电路:单片机最小系统(核心)

25、、显示电路(LED指示灯和数码管)、键盘接口和存储器电路。系统如右图所示。2单片机资源分配1)显示电路。本例中用普通的LED数码管作为时间显示器件,LED二极管作为作为交通控制的指示灯(实际交通灯中都是高亮度的二极管点阵构成,和本例的区别仅是驱动电路,控制的过程是一致的)。共需要8个数码管,12个二极管(红、绿、黄各4个),由于相对方向码管显示的时间和二极管的状态是一致的,可以用同一个驱动电路控制,所以只需要设计4个数码管和6个二极管的控制电路。6个LED二极管用P1口的六位控制,4个LED数码管的段用P0控制,位用P2口的4位控制。(用共阳型的数码管)2)键盘电路。系统操作的容不多,仅修改红

26、绿灯参数,键的数量要求不多,可以采用34个键的独立式键盘接口电路,采用中断控制扫描方式,键输入口线用P2的其它几位。按键功能和数码管的显示配合起来使用,在正常指挥交通时数码管上显示红、绿剩余时间,在修改参数时分别用来显示某一方向的红绿灯参数(只要设置一个方向的参数即可,两个方向参数之间有在联系,知道一个方向的参数可以计算出另一方向的参数,参数间相互关系学生可以根据要求中的红绿灯变化规律推导)键的功能定义如下:第一个键:从指挥交通状态进入参数修改状态,并调出系统原来的参数,前面2个数码管显示南北方向红灯时间,后两个显示南北方向绿灯时间,以备修改,修改时有一个数码管闪烁,表示该位显示的数可以修改。

27、第二个键:(在指挥交通状态该键不起作用,后面两个键也是这样)加1键,使闪烁的数码管加1,并在09之间变化。第三个键:移位键,使4个数码管闪烁状态依次循环切换,和第二个键配合可以修改四个数码管上的数据,达到修改参数的目的。第四个键:运行键,保存设置的参数,并按照修改的参数进入指挥交通状态。3)电源。上述电路可以和单片机共用5V电源即可。4)一个定时器用于产生秒的倒计时,另一个用于在修改参数状态控制数码管的闪烁。(鼓励学生自主提出设计方案或不同的解题思路,鼓励创新)单片机课程设计的报告要求:一、要有封面、正文两部分,装订成册二、正文容1课题2实训目的3实训任务(设计要求)4硬件设计方案:(1)交通

28、控制灯原理框图和原理图(2)交通控制灯各单元电路进行原理阐述5软件设计:(1)交通灯的设计调试过程(分步进行,遇到问题和解决方法)(2)交通灯功能程序框图和总的交通灯源程序6收获体会第四讲 显示电路1显示电路设计单片机应用系统的显示电路一般有三种形式的显示电路:LED指示灯、LED数码管、LCD(液晶)。(1)LED指示灯一般被用来表示系统运行的状态,数量不多可以单片机的I/O直接控制。LED指示灯发光的条件是两端加正向电压1.8V左右,流过电流大于4毫安,小于10毫安,单片机系统的工作电压一般都是5V,不能直接用来驱动,要在LED回路中串接限流电阻,如下图所示:360+5V单片机口驱动可以用

29、高电平或者低电平,电路分别如下(以AT89C51为例):+5VAT89C51360图B 低电平驱动AT89C51360+5V图A 高电平驱动高电平驱动由于单片机I/O输出拉电流较小,不足以驱动LED,需要接一个上拉电阻。一般情况采用低电平驱动,如图B所示。LED指示灯的程序控制很简单,用部RAM操作指令对口操作。(略)如果系统需要的状态指示灯非常多,就不能直接用I/O驱动了,需要将LED指示灯设计成LED数码管形式来控制,后面介绍。LED流水灯电路原理390+5V8.2KRSTVCC+5V+5V+5V40 31 89S511 8 9 181920EA10F6MHz20P图 15流水灯电路原理图

30、如图所示。用P1口的8位分别驱动一个发光二极管,从图上可见,某位口上输出0(低电平)对应的发光二极管就亮,反之某位口上输出1(高电平)对应的发光二极管就熄灭。我们可以根据自己的思路设计灯亮灭次序从而形成不同的样式的流水灯。其余电路就是我们常讲的最小系统,实验箱已设计连接好。示例程序如下:(小灯依次亮灭程序。学生应编写自己的程序。) ORG 0000H ;汇编程序开头 LJMP SETUP ;跳过中断入口地址区 ORG 0030HSETUP: CLR P1.0 ;点亮第一个小灯 LCALL DELAY ;调用延时子程序 SETB P1.0 ;熄灭第一个小灯(下同) CLR P1.1 LCALL

31、DELAY SETB P1.1 CLR P1.7 LCALL DELAY SETB P1.7 LJMP SETUP ;所有灯依次亮灭后回到第一个灯DELAY: MOV R7,#80H ;延时子程序DEL: MOV R6,#0FFHDEL1: DJ NZ R6,DEL1 DJNZ R7,DEL RET END ;汇编程序结束这是一个简单的顺序程序,下面设计的是循环程序。 ORG 0000H ;汇编程序开头 LJMP SETUP ;跳过中断入口地址区 ORG 0030HSETUP: MOV A,#0FEH ;A中赋初值(第一个灯亮,其余不亮信息)AA: MOV P1,A ;A息送给P1口,驱动对应

32、的灯亮 LCALL DELAY ;调用延时子程序 RL A ;A息循环转移一次,改变了信息 LJMP AA ;将A中改变后的信息再从P1口输出DELAY: MOV R7,#80H ;延时子程序DEL: MOV R6,#0FFHDEL1: DJ NZ R6,DEL1 DJNZ R7,DEL RET END ;汇编程序结束(2)LED数码管在单片机应用系统中经常采用,其结构如下图所示:引脚共阳型共阴型a、b、c、d、e、f、g、h 8个引脚为数码管的段引脚,其余两个引脚部是相通的,为数码管的位引脚,LED数码管部是由8个LED二极管,根据部结构的不同分为共阳型和共阴型。从数码管的结构上看需要在其位

33、和段加上适当的信号,使二极管两端有正向电压,流过的电流达到4毫安以上。数码管的显示电路分为静态显示电路和动态显示电路,静态显示电路控制的方式与LED发光类似,用一个8位的I/O口作为段控制信号,将公共端接地或电源即可,在实际应用中比较少,略去不讲。常用的是动态显示方式,如下图所示:将所有数码管相同的段连接在一起用一个8位的I/O口去控制,每个数码管的公共端用一位的I/O口控制开关使其接地或电源,如下图为共阳型数码管的动态显示电路。9012P0.7P0.0P2.7P2.410Kadp P0最小系统 P2+5V+5V3601.5K数码管1234COMP0口作为数码管段控制口,P2.4P2.7为位控

34、制口,控制三极管导通使公共端接到电源,控制三极管截止关断。数码管动态扫描电路的工作原理是:循环显示,动态扫描,视觉暂留。利用人眼的视觉暂留特性,在某一时刻只控制一个数码管显示,保留很短时间,再控制另一数码管显示,依次显示,到最后一个再返回到第一个,如此反复进行,当扫描的速度达到一定值时,人眼就感觉不到数码管熄灭,看到所有数码管都稳定显示。一个有实际意义的数码管动态扫描程序,汇编语言编写需要用到查表指令,设计查表程序。数码管动态显示电路检查硬件检查主要检查位和段的控制电路,取下单片机芯片,上电,将两根连接线与地线相连,其中一根接到P2口的某个位控制引脚,另一根依次碰触P0口的某一位,如果硬件正确

35、,则对应数码管的段亮,否则检查对应的段或位。三、查表程序设计数码管的动态扫描程序是单片机应用中最重要的程序之一,是进一步应用的基础和前提。数码管的动态扫描程序都是用查表程序设计的,包括LCD(液晶)也是用查表程序设计的。首先要命名一个标号,用DB伪指令定义表格,编写系统所要显示的所有数字和字符的字段码,并按顺序存放(如下面程序09的编码)。表格在程序结构中的位置一般放在查表程序的后面,在子程序区,注意不能放在某个子程序的部,需放在两个子程序之间。查表指令有两条:MOVC A, A+DPTRMOVC A, A+PC指令的具体功能请查阅课本。一般情况下用前一条指令,只有在系统有外部扩展并行数据存储

36、器或扩展外部并行口使用MOVX指令来操作时,才使用第二条指令,使用该指令时表格位置与查表指令间的距离有限制,不能超过256个字节。以第一条指令说明查表程序设计的步骤。分为三步:第一步:将表格的首地址送给数据指针DPTR;第二步:将要查找的项(显示容的字段码)与表格首地址的间隔数送给累加器A;第三步:执行指令MOVC A, A+DPTR;则累加器中就是要显示容的字段码,将其送段控制口即可。编写显示程序时一般都为每个数码管设置一个数据缓冲区,显示缓冲区存放的是显示容的字段码在表格中的位置。参考程序如下: ORG 0000H ;汇编程序开头 LJMP SETUP ;跳过中断入口地址区 ORG 003

37、0HSETUP: MOV 70H,#0 ;显示缓冲区赋初值 MOV 71H,#1 ; MOV 72H,#2 ; MOV 73H,#3 ; MAIN: LCALL DIS ;调用显示子程序 LJMP MAINDIS: ;显示子程序MOV DPTR,#TAB ;表格首地址送给数据指针DPTR MOV A,70H ;第一个显示的数送A MOVC A,A+DPTR ;查表得显示容的字段码 MOV P0,A ;字段码从P0口输出 CLR P2.4 ;开通第一个数码管的位,显示相应信息 LCALL DEL ;调用延时子程序 SETB P2.4 ;关闭第一个数码管的位,以下依次类推 ; MOV A,73H

38、;第略个显示的数送A MOVC A,A+DPTR ;查表得显示容的字段码 MOV P0,A ;字段码从P0口输出 CLR P2.7 ;开通第略个数码管的位,显示相应信息 LCALL DEL ;调用延时子程序 SETB P2.7 ;关闭第略个数码管的位 RET ;显示子程序结束TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;共阳型数码管09字段码DEL: MOV R7,#80H ;延时子程序 DJNZ R7,$ ;$在转移指令中表示转移到该指令本身 RET END ;汇编程序结束前面曾提到有许多LED状态指示时可以设计成数码管的电路形式

39、,实际上就是把LED状态指示灯人为设计成数码管的形式,用数码管的动态显示方式来控制数码管的笔画,如上图虚线框,只要将二极管不相连的管脚分别连到数码管的段上,在用一个位控制公共端,和前面的电路构成有5个数码管的动态显示电路,编写程序(最后数码管不需查表,直接输出控制即可)。(3)LCD显示电路要求高的场合可以采用LCD液晶显示器,LCD液晶显示器有数码型和字符型,显示器一般自带驱动模块,使用者按照驱动接口要求用单片机的I/O口去控制。批量大的产品可以定做。第五讲键盘接口电路键盘是单片机应用系统最基础的电路之一,用于人和单片机系统的对话,通过键的操作控制系统的执行或获取系统的运行状态等,一般是和显

40、示电路一起构成完整的人机交互系统。单片机常用的键盘接口电路有两类:行列式键盘和独立式按键。由于按键的操作都是通过机械的触点实现,存在着抖动现象,影响按键操作,因此键盘电路都需要有消抖动的措施,消抖动方法有:硬件消抖动和软件消抖动。硬件主要采用滤波电路、单稳态电路、双稳态电路等。软件主要采用软件延时。键盘程序设计一般有三种控制扫描方法:第一,程序控制扫描。就是将键盘程序作为主程序的一部分,在程序运行时循环检测。程序结构思路简单易理解,存在着两个缺陷,一是不能及时响应键的操作,因为只有在程序执行到键盘程序时按键才会被响应。在没有按键操作时也执行键盘扫描程序,浪费CPU时间。但这种响应的及时性和浪费

41、时间也是相对的。对一般的应用没有多大影响。第二,定时控制扫描。用定时器控制扫描的周期,每隔一段时间检测一次键盘,同样存在着响应的及时性和浪费CPU时间,并且占用了一个定时器,一般很少采用。第三,中断控制扫描。在硬件上将所有的按键操作都转换成外部中断的请求信号,然后在中断服务程序中执行键盘程序。克服了其他两种方法的缺陷,但要占用一个外部中断资源。在具体应用中采用那种控制方式可以根据系统对键盘的综合要求确定。独立式按键接口电路在按键需要不多的系统一般设计独立式按键接口电路作为系统的键盘电路。电路结构简单,如下图所示:S1S40.1P3.2最小系统+5V+5V10K15K没有键按下时,4个端口都被上

42、拉到高电平,有键按下时,对应的端口被拉为低电平,这样键的动作被转换成电平的变化,通过检测4个输入端口电平的变化就可确定哪个键按下。本电路还通过二极管与门电路将按键转变成中断请求信号,加到P3.2外部中断0,用电容滤波消抖动。程序设计按编写外中断应用程序的步骤:初始化、入口地址、服务程序。按键个数根据实际情况配置,也可以将每个按键功能复用,减少键的数量,但程序结构也相对复杂。可以综合考虑。程序结构如下:ORG 0000HLJMP SETUPORG 0003H ;外部中断0入口地址LJMP INEX0P ;转中断0服务程序ORG 0030HSETUP:SETB IT0 ;设置中断0为边沿触发方式S

43、ETB EX0 ;开中断0允许位SETB EA ;开总的允许位MAIN: ;主程序LCALL DIS ;调用数码管显示子程序LJMP MAINDIS: ;数码管显示子程序RETDELAY: ;数码管显示子程序的延时子程序RETINEX0P:;中断0的服务程序SETB P2.0JNB P2.0,KEY1 ;第一个键按下转执行其功能SETB P2.1JNB P2.1,KEY2 ;第二个键按下转执行其功能SETB P2.2JNB P2.2,KEY3 ;第三个键按下转执行其功能SETB P2.3JNB P2.3,KEY4 ;第四个键按下转执行其功能RETIKEY1: ;第一个键功能程序RETIKEY2

44、: ;第二个键功能程序RETIKEY3: ;第三个键功能程序RETIKEY4: ;第四个键功能程序RETIEND四、键盘电路检查接通电源,用万用表测量P2.0P2.3引脚电平,没有键按下时,4个端口都是高电平,当某一键按下时,对应端口电平由高到低变化,说明该按键连接正确,否则不正确,检查电路,修改后再试。另外每次按键检测P2.0P2.3的同时,检测P3.2引脚电平,也应有相同的变化,说明与门电路也正确,就可以编写程序来实现设想的功能。2)键盘电路。系统操作的容不多,仅修改红绿灯参数,键的数量要求不多,可以采用34个键的独立式键盘接口电路,采用中断控制扫描方式,键输入口线用P2的其它几位。按键功

45、能和数码管的显示配合起来使用,在正常指挥交通时数码管上显示红、绿、黄灯剩余时间,在修改参数时分别用来显示某一方向的红绿灯参数(只要设置一个方向的参数即可,两个方向参数之间有在联系,知道一个方向的参数可以计算出另一方向的参数,参数间相互关系学生可以根据要求中的红绿灯变化规律推导)键的功能定义如下:第一个键:从指挥交通状态进入参数修改状态,并调出系统原来的参数,前面2个数码管显示南北方向红灯时间,后两个显示南北方向绿灯时间,以备修改,修改时有一个数码管闪烁,表示该位显示的数可以修改。第二个键:(在指挥交通状态该键不起作用,后面两个键也是这样)加1键,使闪烁的数码管加1,并在09之间变化。第三个键:

46、移位键,使4个数码管闪烁状态依次循环切换,和第二个键配合可以修改四个数码管上的数据,达到修改参数的目的。第四个键:运行键,保存设置的参数,并按照修改的参数进入指挥交通状态。第六讲定时器应用定时器应用一般分为三部分,提供定时器的中断入口地址(如果用定时器中断)、定时器的初始化、定时器的中断服务程序,本次实验用其产生秒计时。可以用两个定时器中的一个。(假设用T0)1定时器的中断入口地址T0:000BH T1:001BH2定时器的初始化定时器初始化包括:定时器工作方式选择、赋定时初值、启动定时器、开通相应的中断等。定时器的工作方式通过定时器方式寄存器TCOM来设置,其字节地址为89H,不可位寻址。低

47、4位用于T0,高4位用于T1。D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0(1)M1M0工作方式选择M1M0 工作方式 功能 00 方式0 13位计数器 01 方式1 16位计数器 10 方式2 两个8位计数器,初值自动重装 11 方式3 两个8位计数器,只适用于T0(2)C/T计数/定时方式选择 C/T=1,计数方式;C/T=0,定时工作方式。(3)GATE门控位。有关容请参考教科书。我们选T0工作在方式1定时方式,产生0.1S的定时,10次1S。系统的晶振6M,机器周期为2微秒,产生0.1S定时需要数:0.1106/2=50000(个机器周期)计数器的初值=

48、65536-50000=15536,计数器高位为60,计数器低位为176。启动定时器运行通过定时器控制寄存器TCON的启动位控制。TCON字节地址为88H,可以位寻址。TF1TR1TF0TR0IE1IT1IE0IT08FH8EH8DH8CH8BH8AH89H88HTR0、TR1分别为T0和T1的启动位,等于1运行,等于0停止。中断控制通过中断允许寄存器IE中相应的位来控制。3中断服务程序由于只能产生0.1S定时,需要在服务程序中做两件事,一是对中断的次数进行计数,到10次时对计时单元加1;二是为保证以后还能产生0.1S计时,需对定时器重新赋初值。4程序的框架如下ORG 0000HLJMP SE

49、TUPORG 000BH ;T0入口地址LJMP INET0P ;转中断0服务程序ORG 0030HSETUP:MOV TMOD,#01H ;选择定时器工作方式MOV TH0,#60 ;0.1S定时初值MOV TL0,#176 ;0.1S定时初值SETB TR0 ;启动T0SETB ET0 ;开T0允许位SETB EA ;开总的允许位MOV R5,#0 ;0.1S计数单元MAIN: ;主程序LCALL DIS ;调用数码管显示子程序LJMP MAINDIS: ;数码管显示子程序RETDELAY: ;数码管显示子程序的延时子程序RET RETINET0P:CLR TR0 INC R5 MOV T

50、H0,#60 ;0.1S定时初值 MOV TL0,#176 ;0.1S定时初值 SETB TR0 CJNE R5,#10,N1S ;不到1S直接退出中断 MOV R5,#0 ;到1S计数单元清0 ;做相应的处理,然后退出N1S: RETI END第七讲交通控制灯总体设计程序模块包括:主程序(系统初始化、显示程序)、外中断服务程序(按键处理)、定时器服务程序(倒计时处理)等。主程序包括对定时/计数器、外部中断的初始化,读出系统运行参数,将交通灯时间参数送对应的显示缓冲区,然后反复调用显示子程序。并在显示过程中等待键盘中断处理键盘功能,等待定时器中断改变数码管显示指挥交通。系统用两个定时器,一个用

51、来交通灯的计时处理,一个用来控制数码管的闪烁显示,结合显示程序进行综合设计。其它与时间有关的处理程序也用该定时器实现,进行多延时程序设计。2)主程序设计定时器设置,交通灯控制需要产生秒信号,定时器一般不能直接产生,可以将定时器设置为反复定时固定时间,数中断的次数,有关定时器和外中断的初始化请参阅有关实验。3)交通控制时间处理程序因为每个方向交通灯的状态有2种:红、绿。可以用一个单元存放状态信息,用65H和66H分别存放南北和东西方向交通灯状态,0表示绿灯状态,1表示红灯状态。状态切换的规则为:010,两个方向规律是一致的。程序处理的思路为:设定时器反复定时50毫秒,在服务程序中数中断次数,到2

52、0次为1秒,处理倒计时,直接将南北方向的显示缓冲区数值取出,转换为二进制,判断是否为0,不为0直接减1后再转换为十进制数,送显示缓冲区,不改变交通灯状态;如果为0,判断交通状态,并按切换的规则切换,将参数送显示缓冲区。然后处理东西方向的数据,工作过程一样。具体的程序略。5)键盘功能处理程序设计键盘用外部中断来处理,首先判断那个键按下,然后按照总体方案中规划编写每个按键的功能程序,下面列出四个按键的功能描述和处理程序。第一个键。系统由运行状态进入修改参数状态,需做以下工作:(1)停止倒计时。(2)第一个数码管小数点亮,标志进入设置状态。第二个键,加1键。按照上表分配的位标志和显示缓冲区单元,依次

53、对四个数码管的小数点亮标志位进行判断,对相应的显示缓冲区进行加1处理(09变化)。第三个键,移位键。使数码管小数点亮依次移位,和第二键配合修改四个数码管上的数据。程序结构和第二个键一样,仅是处理容不同,进行移位操作,框图略去。在编程时应注意,移到下一位小数点亮时应将前面数码管的亮灭标志清0,避免移位后熄灭。第四个键,运行键。操作使系统重新进入指挥交通状态,需要做以下操作:(1)保存修改后的参数,并替换系统的原有参数。(2)设置初始系统状态(于初始化部分一样)。(3)使数码管小数点不亮。(4)启动倒计时,进入指挥交通状态。思考题1 基本题(应知)1)简述单片机应用的一般步骤。2)51系列单片机口在作为基本I/O口使用时的要什么?3)51系列单片机部RAM空间从作用个功能上分为哪几部分?指出各部分的地址空间围和数据操作方式。4)简述汇编语言程序的一般结构。5)51系列单片机有哪几个中断源?各中断的入口地址是多少?6)简述外部中断使用的步骤。7)为什么通常将外中断的触发方

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!