文档库 最新最全的文档下载
当前位置:文档库 › MCS 51单片机系统扩展技术 ADC0809

MCS 51单片机系统扩展技术 ADC0809

MCS 51单片机系统扩展技术  ADC0809
MCS 51单片机系统扩展技术  ADC0809

MCS-51单片机的系统扩展技术(五)

5 数——模转换接口

在工作控制和智能化仪表中,通常由微型计算机进行实时控制及实时数据处理。计算机所加工的信息总是数字量,而被控制或测量对象的有关参量往往是连续变化的模拟量,如温度、速度、压力等等,与此对应的电信号是模拟电信号。计算机要处理这种信号,首先必须将模拟量转换成数字量,这一转换过程就是“模——数转换(A/D)”。

由计算机运算处理的结果(数字量)往往也需要转换为模拟量,以便控制对象,这一过程即为“数模转换”(D/A)。

A/D、D/A转换技术发展极为迅速,目前常用的A/D或D/A芯片种类也非常多,本教程介绍的是比较经典的一些芯片的用法,目的在于帮助读教掌握这类芯片接口的一般方法,以及进一步理解数字系统和模拟系统的区别。当然,这些芯片本身也有一定的实用价值。

一、DAC电路原理

D/A转换是将数字量信号转换成模拟量信号的过程。D/A转换的方法比较多,这里仅举一种权电阻D/A转换法的方法,说明D/A转换的过程。

权电阻D/A转换电路实质上是一只反相求和放大器,图22是4位二进制D/A转换的示意图。电路由权电阻、位切换开关、反馈电阻和运算放大器组成。

图22 D/A转换的原理

权电阻的阻值按8:4:2:1的比例配置,按照运放的“虚地”原理,当开关D3-D0合上时,流经各权电阻的电流分别是V R/8R、V R/4R、V R/2R和V R/R。其中V R为基准电压。而这些电流是否存在则取决于开关的闭合状态。输出电压则是:

VO=-(D3/R+D2/2R+D1/4R+D0/8R)×V R×R F

基中D3-D0是输入二进制的相应位,其取值根据通断分别为0或1。显然,当D3-D0在0000-1111范围内变化时,输出电压也随这发生变化,这样,数字量的变化就转化成了电压(模拟量)的变化了。这里,由于仅有4位开关,所以这种变化是很粗糙的,从输出电压为0到输出电压为最高值仅有16档。显然,增加开关的个数和权电阻的个数,可以将电压的变化分得更细。一般,至少要有8个开关才比较实用。8个开关,就意味着输出量从最小(0)到最大一共被分成256档了。

上面的这种D/A转换技术对于权电阻的精度要求是相当高的,由于权电阻的大小并不

相同,所以制造很困难,因此,最常用的是另一种结构是被称之为R-2R型电络DAC的结构。关于这种DAC转换的原理,不再分析,只要知道数字量是可以转换为模拟量就行。

二、DAC接口电路

D/A转换器有各种现成的集成电路。对使用者而言,关键是选择好合用的芯片以及掌握芯片与计算机的正确的连接方法。下面以常用的DAC0832为例作一说明。

DAC0832是CMOS工艺制造的8位单片D/A转换器,其引脚图和逻辑图如图23所示。

DAC0832主要由两个8位寄存器和一个8位D/A转换器组成。使用两个寄存器的好处是能简化某些应用中的硬件接口电路设计。

图23 DAC0832的引脚图及内部结构框图

该D/A转换器为二十引脚双列直插封装,各引脚含义如下:

DI0-DI7:数字量输入端。

ILE:数据锁存允许信号,高电平有效;

CS:输入寄存器选择信号,低电平的效;

1

WR:输入寄存器的写选通信号1,低电平有效。和CS、ILE配合,构成第一级输入锁存;

WR:输入寄存器的写选通信号2,低电平有效;

2

XFER:数据转移控制信号,输入低有效,和2

WR配合构成第二级锁存;

V R:基准电压输入线;

R FB:反馈信号输入线,在芯片内部已有反馈电阻;

I OUT1和I OUT2:电流输出线。I OUT1和I OUT2的和为常数,I OUT1随DAC寄存器的内容线性变化;

VCC:工作电源;

DGND:数字地;

AGND:模拟信号地。D/A转换芯片输入的是数字量,输出为模拟量,模拟信号容易受到干扰,所以采用高精度的V R和独立的模拟地,以获得最好的效果。当然,这两种地最终还是要接在一起的,在布置印制板时,将这两路地线在电源处进行一点接地的处理。

DAC0832是电流型输出,应用时要外接运算放大器使之成为电压型输出。

三、DAC0832的应用

(1)单缓冲方式应用

图24是 DAC0832的典型应用系统,系统只有一路输出,采用单缓冲方式。在这种方式下,将二级寄存器的控制信号并接即可。输入数据在控制信号的作用下,直接进入0832的控制寄存器。

图24中,ILE接+5V,片选信号CS和传送信号XFER都连到地址线A0,这样输入寄存器和DAC寄存器的将被同时选中。写选通线1

WR和2

WR都和8031的写信号WR相连,CPU 对0832执行一次写操作,则把一个数据直接写入DAC寄存器。0832的输出模拟信号随之对应变化。

D/A转换器的基准电压由稳压管提供,如果要求更高,可以使用一些高精度的稳压源(如TL431)来提供。

下面的一些程序将在运放输出端产生程控波形。

锯齿波发生器:

START:MOV DPTR,#0EFFFH ;0832的端口地址

MOV A,#00H ;初值送0(无输出)

LOOP: MOVX @DPTR,A ;将A中的值送到0832转换

INC A ;A中的值加1

AJMP LOOP ;循环

上面的程序中,A的值从一开始的0开始加,由0变到FFH,输出电压也随之由0V变到最大输出,然后A中的值(FFH)加1之后变成0,输出电压又加到0,这样就形成了一个锯齿波。

(2)双缓冲方式应用

DAC0832也可以方便地工作于双缓冲模式,这适用于同时输出两路或多路模拟信号,并且这些信号必须同步的情形,详情请参考有关资料。

5.6 模——数转换接口

模——数转换电路的种类很多,选择A/D转换器件主要从速度、精度和价格等方面进

行考虑。根据A/D转换器的工作原理,可以分为下面的三种类型:

(1)并行A/D变换器:速度高,价格也很昂贵,用于高速(如视频处理)场合。

(2)逐次逼近型A/D转换器:精度、速度、价格方面比较折衷,是最常用的一种A/D 转换器件。

(3)双积分型A/D转换器:精度高,抗干扰能力强,价格低,但是速度慢,常用于测量仪表等场合。

A/D技术发展很快,各种新型的A/D层出不穷,A/D的选择要考虑很多因素,和使用者的基本功、见识等有很大的关系。本教程主要是通过典型芯片的介绍,让读者了解单片机与AD转换芯片接口的一般的方法,目的还是在于加深对单片机系统的理解。

一、MCS-51配置ADC0809扩展A/D转换器

ADC0809是最常用的8位A/D转换器,属逐次逼近型。ADC0809由单一+5V电源供电,片内有带锁存功能的8路模拟电子开关,可对0-5V 8路的输入模拟电压信号分时进行转换,完成一次换约需100us,输出具有TTL三态锁存缓冲器,可直接与MCS-51单片机的总线相连。

(1)ADC0809内部结构与外特性

ADC0809是CMOS工艺逐次逼近型A/D转换器,其字长为8位,可8路输入模拟量分时转换的组成芯片。图25是ADC0809的外部引脚配置图,图26是ADC0809的内部结构框图。

图25 ADC0809的引脚图

图26 ADC0809的内部结构框图从图5-26可以看出,ADC0809片内集成了8路模拟多路开关、地址锁存器与译码、8位A/D转换器以及8位三态输出锁存器四部份组成。各引脚的功能含义如下:D0~D7:8位二进制数字量输出端口;

IN0~IN7:8路模拟量输入端口

VCC:+5V工作电压源。

GND:接地端;

VREF(+)和VREF(-):基准参考电压,决定了输入模拟量的量程范围;

CLK:时钟信号输入端,时钟频率决定了转换速度,转换一次需要64个时钟周期。

START:A/D转换启动信号输入端口,高电平有效;

ALE :地址锁存允许信号输入端口,ALE 的下降沿将地址打入锁存器;

EOC :A/D 转换结束信号输出端口,开始转换时为低电平,一旦转换结束输出高电平; OE :完成转换后数字量输出允许控制信号输入端口,高电平有效,用以打开三态数据锁存器的输出。

A 、

B 、

C :地址输入端口。用三位编码组成3——8译码输出,选通8路模拟电子开关,实现IN0~IN7的8路选1工作。A 、B 、C 三位地址的输入与8路通道的对应关系如下:

表6 ABC 三位地址的输入与8路通道的对应关系

C 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

地址

编码

A 0 1 0 1 0 1 0 1 选中通道 IN0 IN1 IN2 IN3 IN4 IN5

IN6 IN7

二、MCS-51单片机配置ADC0809的硬件接口

图27是ADC0809与MCS-51单片机的接口电路图。

地址线与数据线的连接:ADC0809的输出部份有三态缓冲器,可以直接和数据总线相连;ADC0809的地址选择信号线ADDA 、ADDB 、ADDC 可以与地址线中的任意三根相连(图中与AD0、AD1、AD2相连),这样8个输入端所对应的地址就是从:

×××× ×××× ×××× ×000~×××× ×××× ×××× ×111 也就是FFF0H~FFF7H

时钟线的连接:ADC0809工作时必须外接时钟,如果单片机的主振频率为6M ,就可以直接借用ALE 信号来作为ADC0809的时钟信号,当不使用MOVX 类指令时,ALE 是时钟频率的6分频,在6M 晶振的频率下,ALE 的频率是1M ,如果用了更高频率(如12M )的晶振,用ALE 作为ADC0809的时钟就不恰当了。可以把ALE 二分频之后再提供给ADC0809,也可以用555之类的振荡电路做一个时钟发生器。

控制信号的连接:ADC0809所要求的或者所提供的都是高电平有效信号,而MCS-51能够提供或者需要的却是低电平有效信号,所以必须用一些门电路进行转换。具体的接法参考图27,转换结束信号EOC 通过非门与MCS-51的1INT 相连,每次转换完毕进行中断请求,MCS-51单片机在中断程序中读取数据,也可以用软件查询的方法获得数据。

例:利用中断方式编写程序,将8个模拟量信号轮流采集一遍,并依次将转换后的结果放在MCS-51单片机的30H 开始的单元中。

ORG 0000H JMP MAIN ORG 13H ;外中断1入口地址 JMP ADINT ;转到中断服务程序入口 ORG 30H

MAIN : MOV R0,#30H ;存储区首地址 SETB IT1 ;下降沿中断 SETB EA ;开总中断 SETB EX1 ;开外部中断1 MOV R3,#08H ;共有8个通道 MOV DPTR ,#0FFF0H ;指向通道0 MOVX @DPTR ,A ;启动转换 LOOP : SJMP LOOP ;等待转换的结果 ;以下中断处理

ADINT: PUSH PSW

PUSH ACC ;入堆栈保护

MOVX A,@DPTR ;读转换结果

MOV @R0,A ;存转换结果

INC DPTR ;指向下一通道

INC R0 ;存储数据区指针加1

DEC R3 ;减去1次

CJNE R3,#0,AD1 ;和0相比,如果未到则转

MOV DPTR,#0FFF0H ;复原,指向通道0

MOV R0,#30H ;指向数据区首地址

MOV R3,#8 ;转换次数恢复

JMP ADRET ;不再启动转换,直接返回

AD1: MOVX @DPTR,A ;启动转换

ADRET:POP ACC

PSW ;出栈

POP

RETI ;返回

中断式数据采集比较节约主程序的时间,每一个通道的数据采集完成之后,启动下一次转换,然后返回主程序,不用等8个通道全部完成。当8通道的采集工作全部完成,把所有的指针指向它们原来的位置,不再启动下一次转换。一般主程序是一个循环,会由主程序再次启动下一轮8个通道的数据采集工作。除了可以用中断的方式之外,还可以用查询的方式进行转换。

例:条件同上,但用查询方式编程。下面以子程序的形式给出。

MOV DPTR,#0FFF0H ;指向通道0

MOV R0,#30H ;数据区首地址

MOV R3,#08H ;通道数

LOOP: MOVX @DPTR,A ;启动转换

HERE: JB P3.3,HERE ;查询一次转换是否结束

MOVX A,@DPTR ;读转换结果

MOV @R0,A ;存转换结果

INC R0 ;指向下一个存储单元

INC DPTR ;指向下一个通道

DJNZ R3,LOOP ;8路数据未采集完,继续

RET

用这种编程方法,反相器可以省略,也不一定非要接在1

INT引脚上,接在任何一个I/O 引脚都可以。从上面的两个例子中还可以看到P3口的第二功能其实并没有什么特殊之处,关键看你把它当成是什么,第一个例子是当成外中断1来用,而第二个例子却是当成了普通的I/O口输入来用,如此而已。

如果对于转换的时间要求不高,还可以省掉EOC接口,直接用延时的方法来读取转换的结果。方法是在启动转换之后延时一段时间,然后去读0809的转换结果,这一段时间根据接在0809的CLK端的振荡频率及需要64个时钟来完成一次转换进行计算,然后适当留一些余量。这样可以省去一个反相器和少占用一个主机的I/O口。

图27 ADC0809与MCS-51单片机连接

基于MCS-51单片机的热量计

摘要 热量计在我们生活中最实际的应用应该是民用住宅的暖气计量了而我国现有的按使用面积收费的方式存在着许多不合理的因素。为解决这一问题,本论文介绍了一种新型的热量计,该热量计是基于51系列单片机,主要由流量传感器、温度传感器、单片机三部分组成。本文详细阐述了热量计的硬件和软件设计,并简要介绍了相应的抗干扰措施。 热量计可以精确的对实际热量的耗损进行测量,是实施城市供热体制改革,推行按热量计费的关键设备,对热量计消耗智能计算,以用户实际耗用热量为计量收费依据。如果将热量计作为供暖公司向每一位住户收费的依据和手段,是容易被百姓们所接受和推崇的,而且由于热量与费用直接相关,也加强了住户的节能意识。用热量计进行计量更为科学、合理,既方便用户,又便于管理。 关键词:热量计;单片机;温度传感器;流量传感器 Abstract

Calorimeter in our lives should be the most practical application of measurement of residential heating and use of the area by our existing way of charging, there are many irrational factors. To solve this problem, this paper introduces a new type of calorimeter, the calorimeter is based on the 51 series, mainly by the flow sensor, temperature sensor, microcontroller three parts. This paper describes the calorimeter hardware and software design, and briefly describes the corresponding anti-jamming measures. Calorimeter can accurately on actual measurement of heat loss is to implement the urban heating system, the implementation of key equipment by heat billing for consumption calorimeter intelligent computing to user's actual calorie consumption metering and charging basis. If the calorimeter as heating companies charge to every household basis and means, people who are likely to be accepted and respected, and because of the heat and the costs are directly related, but also strengthened the household energy awareness. Measured with a calorimeter more scientific and reasonable, not only user-friendly, and easy to manage. Keywords: Calorimeter; SingleChip Microcomputer; Temperature sensor; Flow sensors

基于MCS-51单片机的可调频率方波发生器课程设计报告

摘要 本实验是基于PHILIPS AT89C51 单片机所设计的,可以实现键位和数字动态显示的一种频率可调方波发生器。通过键盘键入(10HZ-9999HZ)随机频率,使用七段数码管显示,每一个数码管对应一个键位。单片机对各个键位进行扫描,确定键位的输入,然后数码管显示输入的数值,方波发生器输出以数码管显示的数值为频率的方波。 关键词:单片机七段数码管键盘电路频率可调方波发生器

一、目的和功能 1.1 目的: 设计一种频率范围限定且可调的方波发生器,志在产生特定频率的方波。 1.2功能: 假设键盘是4*4的键盘,当键盘输入范围在10hz-9999hz的数字,单片机控制数码管显示该数值,并把该数值当做方波发生器的输入频率,单片机控制该方波发生器以该数值作为频率显示方波,从而得到我们想要频率的方波。 二、硬件设计 2.1 硬件设计思想 键盘的数字和键位关系固定,通过键盘输入产生频率,通过LED数码管显示出来,每一个数码管对应一个键位。基本设备是基于PHILIPS AT89C51单片机,外围设备采用的是4个七段数码管,PHILIPS A T89C51单片机,1个OSCILLOSCOPE 方波发生器,16个Button,若干电阻,电源电池。 2.2 部分硬件方案论述 2.2.1 七段数码管扫描显示方式的方案比较 方案一:静态显示方式:静态显示方式是指当显示器显示某一字符时,七段数码管的每段发光二极管的位选始终被选中。在这种显示方式下,每一个LED数码管显示器都需要一个8位的输出口进行控制。静态显示主要的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度大,系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,这样既节约了CPU的时间,又提高了CPU的工作效率。其不足之处是占用硬件资源较多,每个LED数码管需要独占8条输出线。随着显示器位数的增加,需要的I/O口线也将增加。

基于MCS51单片机步进电机的控制系统设计与实现

学校代码:11509 学号:1005073029 Hefei University 毕业设计(论文) BACH ELOR DISSERTATI ON 论文题目:基于MCS51单片机步进电机的控制系统设计与实现学位类别:工学学士 学科专业: 10级自动化2班 作者姓名: 导师姓名: 完成时间: 2014年5月12日

基于MCS51单片机步进电机的控制系统设计与实现 中文摘要 步进电机最早出现在十九世纪初期,经过一段时期的发展步进电机被广泛应用在各个领域,因为其具有良好的控制作用。所以对步进电机控系统进一步的探索有着更为深远的意义。 本设计是基于单片步进电机的控制系统,硬件设计采用STC89C52单片机为控制核心;选取ULN2003作为驱动器提供脉冲频率,驱动步进电机运转;通过键盘的加减速按钮、正反转按钮和停止按钮来控制步进电机的速度、方向和停止,最后通过测试传感器将这几个参数显示在12864液晶显示器上。软件设计采用KEIL软件工具进行C语言编写,通过各个模块端口的定义,编写出了步进电机加减速控制和正反转的程序,最后通过各模块程序调试对硬件电路施行控制。 本设计以经济实用为原则,通过软硬件结合的设计,实现了对步进电机转动速度和方向的有效控制。该系统具有控制性好,设计成本低等优点。 关键字:STC89C52;步进电机;控制系统;测速传感器

Stepper motor control system design and implementation based on MCS51 microcontroller ABSTRACT The stepping motor was invented in the early 1800s, after a long period of development of the stepper motor is widely used in various fields, because it has good control effect. Therefore, the study of the stepper motor control system has a very important significance. This design is stepper motor control system based microcomputer, hardware design uses STC89C52 microcontroller as the control core; select ULN2003 as driver provides pulse frequency drive stepper motor rotation; through acceleration and deceleration button keyboard,forward and reverse button and stop buttons to control the stepper motor speed, direction and stops, Then these several parameters was displayed on the LCD monitor 12864 by the speed sensor. Software design using KEIL software tools for C language, defined each module port, and write a stepper motor control acceleration and deceleration and reversing the process. finally to control the hardware circuit through debugging. The design principle of economical and practical, through combination of software and hardware designed to achieve the effective control of the stepper motor rotation speed and direction. The system has good controllability and low coat. Keywords: STC89C52; stepper motor; control systems; speed sensor

基于MCS51单片机的压力测量 系统的设计与实现

基于MCS51单片机的压力测量 系统的设计与实现 班级; 学号: 姓名: 指导老师:

摘要 以STC-51单片机为核心,应用变阻式应变片测量压力并通过ADC0809的转换,经过单片机处理后在数码管模块显示的智能压力测量系统。是变阻式应变片和51单片机相结合的一个很典型的应用,本系统包括信号采集及转换电路、单片机最小系统、显示模块三个最基本的核心模块。外围扩展了键盘模块、蜂鸣器报警模块,用以调节系统的测量和显示范围。 经试验证明,系统能正常工作且误差在允许误差范围内,符合所有技术指标。 1.方案设计 通过应变片,将机械形变变为电压信号,再通过三级集成放大电路把信号放大,之后,ADC0809把模拟信号转化为数字信号,输入到单片机中,通过按键的控制,将电压的信号输出以数码管的形式显示出来,如果电压信号超出报警上线,蜂鸣

器就发出报警信号。 2.硬件系统设计与分析 (1)应变片与信号放大器的电路分析 应变片运用的是电阻式应变片,原理是吸附在基体材料上的应变电阻随机械性形变而产生电阻变化的现象,即它可以将被测件上的应变变化转化成一种电信号。桥式电路的输入信号是0~10v,经过电路后,输出的电压经过集成运放电路放大后,输入到A/D的In0口,完成信号的输入与传 (2)AD转换分析 A/D转换器是将模拟信号转化为数字信号,start与ale信号接到51到单片机的的p2.6接口,完成信号的输出,而clock接口接到74ls74d的2q接口, D0~D7接到单片机的p1.0~p1.7接口. (3)单片机最小系统分析

单片机的RST是复位接口,刚开始时是低电平,闭合s1开关,接通电源,获得高电平,完成复位。Xtal1与xtal2是晶振电路,为单片机提供工作频率,为12m。P0.0~p0.7接到74hc573的段锁存器,完成数码管的段选择,p2.4~p2,7接到位锁存器,完成数码管的位选择。 (4)按键分析 (5)数码管分析

MCS~51单片机系统与接口技术习题(含答案解析)

《MCS-51单片机系统及接口技 术》课程习题集 【说明】:本课程《MCS-51单片机系统及接口技术》(编号为09001)共有单选题,判断题,阅读分析,问答与作图题, 填空题等多种试题类型,其中,本习题集中有[阅读分析]等试题类型未进入。 一、单选题 1.下面哪些指令是访问ROM的指令? (A)MOVX A,DPTR (B)MOVC A,A+PC (C)MOVC A,A+DPTR (D)MOVX DPTR,A 2.下面哪些指令执行后,能够对PSW寄存器产生影响? (A)DEC 3FH (B)ADD A,3FH (C)SUBB A,R0(D)CJNE A,3FH,rel 3.要访问MCS-51单片机的特殊功能寄存器应使用的寻址方式是 (A)寄存器间接寻址,(B)变址寻址,(C)直接寻址,(D)相对寻址

4.要确定51单片机P1口的输入、输出工作方式,下面哪种说法是正确的? (A)由编程决定;(B)由输入/输出设备决定; (C)由读引脚或写引脚指令决定;(D)由CPU读写命令决定; 5.微机设置堆栈的目的是: (A)起数据缓冲作用;(B)存放将要处理的数据; (C)保存程序断点地址;(D)保存程序断点地址和数据。 6. CPU访问外部存储器的时候,下面哪种说法是正确的? (A)DPTR既可以存放ROM的地址又可以存放RAM的地址; (B)DPTR只能存放ROM的地址; (C)DPTR只能存放RAM的地址; 7.在程序设计中使用MOV PSW,#10H 指令的目的是: (A)当前程序使用第2组工作寄存器(B)程序初始化 (C)给一个单元赋初值(D)将立即数10H暂存入PSW中 8. 51单片机的堆栈操作,应该是: (A)先入栈,再修改指针(B)先修改栈指针,再出栈 (C)先修改栈指针,再入栈(D)以上都不对。

基于MCS-51单片机的压力传感器实验

燕山大学 课程设计说明书题目:压力传感器实验 学院(系):里仁学院 年级专业:仪表10-2 学号: 学生姓名: 指导教师: 教师职称:

燕山大学课程设计(论文)任务书 院(系):电气工程学院基层教学单位:仪器科学与工程系 说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。 年月日

摘要 此次设计是基于8051单片机的压力检测系统,简要介绍了压力传感器电路的工作原理和弱信号传感器电路以及A/D变换电路的工作原理,通过压力传感器将需要测量的位置的压力信号转化为电信号,再经过运算放大器进行信号放大,送至8位A/D转换器ADC0808,然后将模拟信号转换成单片机可以识别的数字信号,再经单片机转换成LED显示器可以识别的信息,最后显示输出。 关键词:8051单片机压力传感器A/D变换电路LED显示器

目录 摘要---------------------------- -------------------------------------------------------------------------2 关键字---------------- ----------------------------------------------------------------------------------2 第一章总体设计方案及模块划分---------------------------------------------------------------4 1.1总体设计方案--------------------------------------------------------------------------------4 1.2模块划分--------------------------------------------------------------------------------------4 1.3设计框图如下图所示-----------------------------------------------------------------------5 第二章各模块设计参数-------------------------------------------------------------------------------5 2.1传感器元件模块------------------------------------------------------------------------------5 2.2 A/D转换模块---------------------------------------------------------------------------------8 2.3控制器处理模块-----------------------------------------------------------------------------14 第三章压力传感器实验数据采集、显示及程序---------------------------------------------20 3.1数据采集及显示-----------------------------------------------------------------------------20 3.2程序设计--------------------------------------------------------------------------------------20 第四章心得体会--------------------------------------------------------------------------------------29 参考文献资料------------------------------------------------------------------------------------------30

MCS-51单片机指令系统

一、填空题 1、寻址是指( )。80C51单片机指令系统有7种寻址方式,分别是:( )。 2、访问内部RAM可以采用的两种寻址方式为:( )和( )。 3、MCS-51单片机指令的基本格式为:( )。 4、Rn代表( ),其中n的取值范围是( );Ri代表( ),其中i的取值范围是( )。@Ri的含义是( )。 5、在单片机指令中,30H和#30H的区别是( );R0和@ R0的区别是( );A←R1 和A←(R1) 的区别是( );DPTR和@DPTR的区别是( )。 6、汇编是指由( )“翻译”为( )的过程。 7、常用的伪指令有8条,试写出其中的5条( )、( )、( )、( )、( )。 8、LJMP指令的转移范围是(); AJMP指令的转移范围是(); SJMP指令的转移范围是()。 二、简答题 1、指出下列指令中的操作数的寻址方式。 (1)MOV R0,#30H (2)MOV A,30H (3)MOV A,@R0 (4)MOV @R0,A (5)MOVC A,@A+DPTR (6)CJNE A,#00H,30H (7)MOV C,30H (8)MUL AB (9)MOV DPTR,#1234H (10)POP ACC 2、80C51指令中,常用字符代表立即数或存储单元,试判断下列字符ABC的含义。(1)MOV A,#ABC (2)MOV A,ABC (3)MOV C,ABC (4)MOV DPTR,#ABC 3、若R0=11H,(11H)=22H,(33H)=44H,写出执行下列指令后的结果。 (1)MOV A,R0 (2)MOV A,@R0 (3)MOV A,33H (4)MOV A,#33H 4、若A=11H,(11H)=22H,B=44H,写出执行下列指令后的结果。 (1)MOV R1,A (2)MOV R3,11H (3)MOV R3,#11H (4)MOV R3,B 5、若A=11H,R0=33H,(22H)=66H,(33H)=44H,写出执行下列指令后的结果。 (1)MOV 40H,A (2)MOV 40H,R0 (3)MOV 40H,@R0 (4)MOV 40H,22H (5)MOV 40H,#22H 6、若A=11H,R0=33H,(22H)=66H,(33H)=44H,写出执行下列指令后的结果。 (1)MOV @R0,A (2)MOV @R0,22H (3)MOV @R0,#22H 7、若 A=11H,R0=33H,B=44H,(11H)=22H,(22H)=66H,(33H)=44H,分别写出执行下列指令后的结果。 (1)MOV A,R0 (2)MOV B,#55H (3)MOV 40H,@R0 (4)MOV 11H,22H (5)MOV @R0,22H 8、试将30H、R7、B、A、PSW、DPTR中的数据依次压入堆栈。并指出每次堆栈操作后,SP=?、(SP)=?设原SP=60H,当前工作寄存器区为0区,(30H)=11H,R7=22H,B=33H,A=44H,PSW=55H,DPTR=6677H。 9、若A=78H,R0=34H,(34H)=DCH,(56H)=ABH,求分别执行下列指令后A和Cy中的数据。 (1)ADD A,R0 (2)ADDC A,@R0 (3)ADD A,56H (4)ADD A,#56H

MCS-51单片机主要应用特性

MCS-51单片机是美国INTE公司于1980年推出的产品,与MCS-48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品,各高校及专业学校的培训教材仍与MCS-51单片机作为代表进行理论基础学习。我们也以这一代表性的机型进行系统的讲解。 MCS-51系列单片机主要包括8031、8051和8751等通用产品,其主要功能如下: ·4kbytes 程序存储器(ROM) ·128bytes的数据存储器(RAM) ·32条I/O口线 ·111条指令,大部分为单字节指令 ·21个专用寄存器 ·2个可编程定时/计数器 ·5个中断源,2个优先级 ·一个全双工串行通信口 ·外部数据存储器寻址空间为64kB ·外部程序存储器寻址空间为64kB ·逻辑操作位寻址功能 ·双列直插40PinDIP封装 ·单一+5V电源供电 MCS-51以其典型的结构和完善的总线专用寄存器的集中管理,众多的逻辑位操作功能及面向控制的丰富的指令系统,堪称为一代“名机”,为以后的其它单片机的发展奠定了基础。正因为其优越的性能 和完善的结构,导致后来的许多厂商多沿用或参考了其体系结构,有许多世界大的电气商丰富和发展 了MCS-51单片机,象PHILIPS、Dallas、ATMEL等著名的半导体公司都推出了兼容MCS-51的单片 机产品,就连我国的台湾WINBOND公司也发展了兼容C51(人们习惯将MCS-51简称C51,如果没有特别声明,二者同指MCS-51系列单片机)的单片机品种。 近年来C51获得了飞速的发展,C51的发源公司INTEL由于忙于开发PC及高端微处理器而无精力继续发展自己的单片机,而由其它厂商将其发展,最典型的是PHILIPS和ATML公司,PHILIPS公司主要是改善其性能,在原来的基础上发展了高速I/O口,A/D转换器,PWM(脉宽调制)、WDT等增强功能,并在低电压、微功耗、扩展串行总线(I2C)和控制网络总线(CAN)等功能加以完善。 PHILIPS公司在发展C51的低功耗,高速度和增强型功能上作了不少贡献,当初主要由其来发展C51单片机,他们的83Cxx和87Cxx系列省去了并行扩展总线,适合于作为家用电器类控制的经济型单片机。 ATMEL公司推出的AT89Cxx系列兼容C51的单片机,完美地将Flash(非易失闪存技术)EEPROM与80 C51内核结合起来,仍采用C51的总体结构和指令系统,Flash的可反擦写程序存储器能有效地降低开发费 用,并能使单片机作多次重复使用。 Siemens公司也沿用C51的内核,相继推出了C500系列单片机,在保持了与C51指令兼容的前提下,其产品的性能得到了进一步的提升,特别是在抗干扰性能,电磁兼容和通信控制总线功能上独树一帜,其产品常用于工作环境恶劣的场合。亦适用于通信和家用电器控制领域。 还有台湾的WINBOND公司亦开发了一系列兼容C51的单片机,其产品通常具备丰富的功能特性,而且 与其质优价廉在市场也占有一定的分额。 下表是80C51系列单片机的主要分类及功能特性:

第11章 MCS-51单片机系统扩展-第1部分 - 1

第十一章 MCS-51单片机系统扩展 11.1 8051/8751的最小系统 80C51片内有4KB的程序存储器,因此,只需要外接晶体振荡器和复位电路就可构成最小系统。 图11-1 最小单片机系统 最小系统的特点如下: (1)由于片外没有扩展存储器和外设,P0、P1、P2、P3都可以作为用户I/O口使用。但P0口作为用户I/O口使用时,需要加上拉电阻。 (2)片内数据存储器有128字节,地址空间00H~7FH,没有片外数据存储器。 (3)内部有4KB程序存储器,地址空间0000H~0FFFH,没有片外程序存储器,EA应接高电平。 (4)可以使用两个定时/计数器T0和T1,一个全双工的串行通信接口,5个中断源。 80C51虽有4个I/O口P0~P3,但在大多数应用系统中,真正用作I/O 口线的只有P1口的8位位线和P3口的某些位线。因此,在I/O接口引脚不够,或在片内的存储器资源还不能满足要求时,需要进行如下的扩展: (1) 外部I/O接口的扩展;【例如74LS164、74LS165等】 (2) 外部程序存储器的扩展; (3) 外部数据存储器的扩展。

11.2 系统扩展结构 单片机采用总线结构,使扩展易于实现,单片机系统扩展结构如图11-2所示。 图11-2 80C51单片机的系统扩展结构 从图11-2可以看出,系统扩展主要包括存储器扩展和I/O接口部件扩展。存储器扩展包括程序存储器扩展和数据存储器扩展。 系统扩展是以单片机为核心,通过总线把单片机与各扩展部件连接起来。因此,首先要利用单片机的I/O口构造系统总线。系统总线按功能通常分为3组,如图11-2所示。 (1)地址总线AB(Address Bus):用于发送CPU发出的地址信号,以便进行存储单元和I/O接口芯片中的寄存器的选择。 地址总线宽度为16位,由P0口经地址锁存器(通常用74LS373)提供地址低8位,P2口直接提供地址高8位,地址信号是由CPU发出的单方向信号。 存储器芯片的地址线的数目由芯片的容量决定。容量(Q)与地址线数目(N)满足关系式:2N Q 。存储器芯片的地址线与单片机的地址总线(A0~A15,P0口为低8位(需用74LS373锁存),P2口为高8位)按由低位到高位的顺序顺次相接。 一般来说,存储器芯片的地址线数目少于单片机地址总线的数目,因此连接后,单片机的高位地址线(P2口)应该有剩余。剩余的地址线一般作为译码线,译码器的输出与存储器芯片的片选信号线(CS或CE)相接。片选

MCS-51单片机存储器的扩展_百度文库.

第八章 MCS-51单片机存储器的扩展 第一节 MCS-51单片机存储器的概述 (一学习要求 1、熟悉 MCS-51 单片机的系统总线及系统总线扩展结构 2、掌握常用的片选方法:线选法和全地址译码法。(二)内容提要 1、三总线的扩展方法 单片机内资源少,容量小,在进行较复杂过程的控制时,它自身的功能远远不能满足需要。为此,应扩展其功能。 MCS-51单片机的扩展性能较强,根据需要,可扩展。三总线是指地 址总线、数据总线、控制总线。 1)地址总线 MCS-51 单片机地址总线宽度为 16 位,寻址范围为 64K。 地址信号: P0 作为地址线低 8 位, P2 口作为地址线高 8 位。 2)数据总线 MCS-51 单片机的数据总线宽度为 8 位。 数据信号: P0 口作为 8 位数据口, P0 口在系统进行外部扩展时与低 8 位地址总线分时复用。 3)控制总线 主要的控制信号有 /WR 、 /RD 、 ALE 、 /PSEN 、 /EA 等。

2、系统的扩展能力 MCS-51 单片机地址总线宽度为 16 位,因此它可扩展的程序存储器和数据存储器的最大容量是64K(216)。 1)线选法 线选法就是将多余的地址总线(即除去存储容量所占用的地址总线外)中的某一根地址线作为选择某一片存储或某一个功能部件接口芯片的片选信号线。一定会有一些这样的地址线,否则就不存在所谓的“选片”的问题了。每一块芯片均需占用一根地址线,这种方法适用于存储容量较小,外扩芯片较少的小系统,其优点是不需地址译码器,硬件节省,成本低。缺点是外扩器件的数量有限,而且地址空间是不连续的。 2)全地址译码法 由于线选法中一根高位地址线只能选通一个部件,每个部件占用了很多重复的地址空间,从而限制了外部扩展部件的数量。采用译码法的目的是减少各部件所占用的 地址空间,以增加扩展部件的数量。 3)译码器级连 当组成存储器的芯片较多,不能用线选法片选,又没有大位数译码器时,可采用多个小位数译码器级连的方式进行译码片选. 4)译码法与线选法的混合使用 译码法与线选法的混合使用时,凡用于译码的地址线就不应再用于线选,反之,已用于线选的地址线就不应再用于译码器的译码输入信号. (三)习题与思考题 1. 简要说明MCS-51 单片机的扩展原理。

)1MCS51单片机的指令格式中操作码与操作数之间必须用.

第2章汇编语言----智能电子产品的指令系统 判断题 ()1.MCS—51单片机的指令格式中操作码与操作数之间必须用“,”分隔。 ()2.MCS—51指令:MOV A,#40H ;表示将立即数40H 传送至A 中。 ()3.MCS—51指令:MOV A,@R0 ;表示将R0指示的地址单元中的内容传送至A 中。()4.MCS—51 指令:MOVX A,@DPTR ;表示将DPTR 指示的地址单元中的内容传送至A 中。 ()5.MCS—51 的数据传送指令是把源操作数传送到目的操作数,指令执行后,源操作数改变,目的操作数修改为源操作数。 ()6.MCS—51指令中,MOVX 为片外RAM 传送指令。 ()7.MCS—51指令中,MOVC 为ROM 传送指令。 ()8.将37H 单元的内容传送至A的指令是:MOV A,#37H。 ()9.MCS—51指令中,16 位立即数传送指令是:MOV DPTR,#data16。 ()10.MCS—51 单片机,CPU 对片外RAM 的访问只能用寄存器间接寻址的方式,且仅有4 条指令。 ()11.如JC rel 发生跳转时,目标地址为当前指令地址加上偏移量。 ()12.对于8051 单片机,当CPU 对内部程序存储器寻址超过4K 时,系统会自动在外部程序存储器中寻址。 ()13.指令MUL AB 执行前(A)=F0H,(B)=05H,执行后(A)=FH5,(B)=00H。()14.已知:DPTR=11FFH 执行INC DPTR 后,结果:DPTR=1200H。 ()15.已知:A=11H B=04H,执行指令DIV AB后,其结果:A=04H,B=1 CY=OV=0。()16.已知:A=1FH,(30H)=83H,执行ANL A,30H 后,结果:A=03H (30H)=83H P=0。 ()17.无条件转移指令LJMP addr16 称长转移指令,允许转移的目标地址在128KB 空间范围内。 ()18.MCS—51 指令系统中,执行指令FGO bit F0 ,表示凡用到F0 位的指令中均可用FGO 来代替。 ()19.MCS—51指令系统中,执行指令ORG 2000H;BCD:DB “A,B,C,D”表示将A、B、C、D 的ASII 码值依次存入2000H 开始的连续单元中。

基于MCS-51单片机的电子时钟的 设计

毕业论文(设计)材料 题目:基于MCS-51单片机的电子时钟的 设计 学生姓名:童晨阳 学生学号:0908030230 系别:电气信息工程学院 专业:电子信息工程 届别:2013 指导教师:张大雷

一、毕业论文(设计)任务书 要求完成的主要任务及达到的目标 电子时钟是实现对时、分、秒进行数字显示的计时装置,广泛用于车站、办公室等公共场所,成为人们日常生活中的必需品。钟表的数字化给人们的生产生活带来了极大的方便,电子时钟的精度,远远超过传统时钟,而且钟表的功能也加强了。例如学校上下课时自动打铃的功能、电视机的定时关机等,这些都是以钟表数字化为基础的。因此,研究数字时钟及推广其应用,有着非常现实的意义。 ?基于单片机内部的定时器/计数器研究 ?基于时钟芯片(如DSC21887)的方式研究 ?基于共阴/阳数码管的方式研究 ?基于液晶显示研究 ?常见扩展功能研究 在此基础上巩固、加深和扩大51系列单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力。学会查阅书籍,并且要能够熟练的编写程序、仿真、会画流程图、原理图及PCB图。对课题设计方案的分析、选择、比较,熟悉用51单片机做系统开发、研制的过程,软硬设计的方法、内容及步骤。 工作进度要求 2012.12.1——2012.12.28 撰写开题报告 2012.12.29——2012.12.31 拟定论文提纲 2013.1.1——2013.2.28 撰写论文初稿 2013.3.1——2013.4.31 论文修改 2013.5.1——2013.5.14 论文定稿 指导教师签名:年月日

二、毕业论文(设计)开题报告 课题研究目的 现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。从而达到计时的功能,是人民日常生活不可缺少的工具。数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。 本次课题研究的目的是应用单片机控制技术,设计出以89C51单片机为核心的电子时钟,电子时钟能够显示时、分、秒显示时间的功能,还可以进行时和分的校对,而且其片选的灵活性强。 课题研究计划 根据课题的实际需要和研究现状,为更好地高效地保证完成论文,拟如下具体安排:第一阶段:查阅文献、资料 第二阶段:撰写论文开题报告 第三阶段:实验探索 第四阶段:论文定稿与答辩 工作进度 2013.1.1——2013.2.28 学习了解STC89C51单片机和各个器件所实现的功能和本次论文相关的原理,与指导老师就所研究的课题进行详细的探讨后再逐条拟定论文提纲。 2013.3.1——2013.3.31 尽力完成论文课题实物并撰写论文初稿。 2013.4.1——2013.4.30初稿完成后,根据指导老师意见就细节和内容进行修改论文。 2013.5.1——2013.5.14多次修改后,最终定稿并上交指导老师。

基于-MCS51单片机温度控制系统

MCS51单片机温度控制系统 在现代化的工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。例如:在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用MCS-51单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的问题。本文以它为例进行介绍,希望能收到举一反三和触类旁通的效果。 1硬件电路设计 以热电偶为检测元件的单片机温度控制系统电路原理图如图1所示。 1.1 温度检测和变送器温度检测元件和变送器的类型选择与被控温度的围和精度等级有关。镍铬/镍铝热电偶适用于0℃ -1000℃的温度检测围,相应输出电压为0mV-41.32mV。 变送器由毫伏变送器和电流/电压变送器组成:毫伏变送器用于把热电偶输出的0mV-41.32mV变换成4mA-20mA的电流;电流/电压变送器用于把毫伏变送器输出的4mA-20mA电流变换成0-5V的电压。 为了提高测量精度,变送器可以进行零点迁移。例如:若温度测量围为500℃-1000℃,则热电偶输出为20.6mV-41.32mV,毫伏变送器零点迁移后输出4mA-20mA围电流。这样,采用8位A/D转换器就

可使量化温度达到1.96℃以。 1.2接口电路接口电路采用MCS-51系列单片机8031,外围扩展并行接口8155,程序存储器EPROM2764,模数转换器ADC0809等芯片。 由图1可见,在P2.0=0和P2.1=0时,8155选中它部的RAM工作;在P2.0=1和P2.1=0时,8155选中它部的三个I/O端口工作。相应的地址分配为: 0000H - 00FFH8155部RAM 0100H命令/状态口 0101H A 口 0102H B 口 0103H C 口 0104H定时器低8位口 0105H定时器高8位口 8155用作键盘/LED显示器接口电路。图2中键盘有30个按键,分成六行(L0-L5)五列(R0-R4),只要某键被按下,相应的行线和列线才会接通。图中30个按键分三类:一是数字键0-9,共10个;二是功能键18个;三是剩余两个键,可定义或设置成复位键等。为了减少硬件开销,提高系统可靠性和降低成本,采用动态扫描显示。A口和所有LED的八段引线相连,各LED的控制端G和8155C口相连,故A口为字形口,C口为字位口,8031可以通过C口控制LED 是否点亮,通过A口显示字符。

第3章-MCS-51系列单片机的指令系统和汇编语言程序

第3章MCS一51系列单片机的指令系统 和汇编语言程序 3·1汇编指令 3·1·1请阐明机器语言、汇编语言、高级语言三者的主要区别,进一步说明为什么这三种语言缺一不可。 3·1·2请总结: (1)汇编语言程序的优缺点和适用场合。 (2)学习微机原理课程时,为什么一定要学汇编语言程序? 3·1·3MCS一51系列单片机的寻址方式有哪儿种?请列表分析各种寻址方式的访问对象与寻址范围。 3·1·4要访问片内RAM,可有哪几种寻址方式? 3·1·5要访问片外RAM,有哪几种寻址方式? 3·1·6要访问ROM,又有哪几种寻址方式? 3·1·7试按寻址方式对MCS一51系列单片机的各指令重新进行归类(一般根据源操作数寻址方式归类,程序转移类指令例外)。 3·1·8试分别针对51子系列与52子系列,说明MOV A,direct指令与MOV A,@Rj 指令的访问范围。 3·1·9传送类指令中哪几个小类是访问RAM的?哪几个小类是访问ROM的?为什么访问ROM的指令那么少?CPU访问ROM多不多?什么时候需要访问ROM? 3·1·10试绘图示明MCS一51系列单片机数据传送类指令可满足的各种传送关系。3·1·11请选用指令,分别达到下列操作: (1)将累加器内容送工作寄存器R6. (2)将累加器内容送片内RAM的7BH单元。 (3)将累加器内容送片外RAM的7BH单元。 (4)将累加器内容送片外RAM的007BH单元。 (5)将ROM007BH单元内容送累加器。 3·1·12 区分下列指令的不同功能: (l)MOV A,#24H 与MOV A.24H (2)MOV A,R0与MOV A,@R0 (3)MOV A,@R0与MOVX A,@R0 3·1·13设片内RAM 30H单元的内容为40H; 片内RAM 40H单元的内容为l0H; 片内RAM l0H单元的内容为00H; (Pl)=0CAH。 请写出下列各指令的机器码与执行下列指令后的结果(指各有关寄存器、RAM单元与端口的内容)。 MOV R0,#30H MOV A,@R0 MOV RI,A MOV B,@Rl MOV @R0,Pl MOV P3,Pl MOV l0H,#20H MOV 30H,l0H

基于MCS-51单片机的交通灯设计

基于MCS-51单片机的交通灯设计 设计一个基于单片机的交通灯信号控制器。已知东、西、南、北四个方向各有红黄绿色三个灯,在东西方向有两个数码管,在南北方向也有两个数码管。要求交通灯按照表1进行显示和定时切换,并要求在数码管上分别倒计时显示东西、南北方向各状态的剩余时间。 表1 交通灯的状态切换表 1:系统设计 (1)任务分析与整体设计思路 试题要求实现的功能主要包括计时功能、动态扫描以及状态的切换等几部分。 计时功能:要实现计时功能则需要使用定时器来计时,通过设置定时器的初始值来控制溢出中断的时间间隔,再利用一个变量记录定时器溢出的次数,达到定时1 秒中的功能。当计时每到 1 秒钟后,东西、南北信号灯各状态的暂存剩余时间的变量减1。当暂存剩余时间的变量减到0 时,切换到下一个状态,同时将下一个状态的初始的倒计时值装载到计时变量中。开始下一个状态,如此循环重复执行。 动态扫描:需要使用4 个数码管分别显示东西、南北的倒计时数字,将暂存各状态剩余时间的数字从变量中提取出“十位”和“个位”,用动态扫描的方式在数码管中显示。整个程序依据定时器的溢出数来计时,每计时1S 则相应状态的剩余时间减1,一直减到0时触发下一个状态的开始。 (2)单片机型号及所需外围器件型号,单片机硬件电路原理图 图1 交通灯硬件电路原理图 选用MCS51 系列AT89S51 单片机作为微控制器,选择两个四联的共阴极数码管组成8位显示模块,由于AT89S51 单片机驱动能力有限,采用两片74HC244 实现总线的驱动,一个74HC244完成共阴极数码管位控线的控

制和驱动,另一个74HC244完成数码管的7 段码输出,在7段码输出口上各串联一个100 欧姆的电阻对7 段数码管限流。用P3口的P3.0-P3.5完成发光二极管的控制,实现交通灯信号的显示,每个发光二极管串联500欧姆电阻起限流作用。硬件电路原理图如图1 所示。 (3)程序设计思路,单片机资源分配以及程序流程 ①单片机资源分配 单片机P3口的P3.0-P3.1引脚用作输出,控制发光二极管的显示。在计时模块中,需要定义两个数组变量(init_sn[3],init_ew[3])来存储东西、南北两个方向在不同状态中倒计时的初始值,题目中每个方向的交通灯共有3种显示状态,因此数组元素个数为3。还需要定义两个变量( cnt_sn, cnt_ ew)暂存东西、南北两个方向的倒计时剩余时间。在状态的切换中,为了明确当前处于哪种状态,东西、南北方向各设置一个状态变量(state_val_sn, state_val_ew),当倒计时的剩余时间到零时,状态变量增1,表示启动下一个状态,当该变量增到3 时变为0,回到序号为1的状态。 ②程序设计思路 在设计中,由于没有键盘功能,因此只涉及定时计数和动态扫描功能。主程序将变量初始化之后,设置单片机定时器和中断特殊功能寄存器的初始值,将定时器T1的工作方式设置为8位自动装载模式,定时器每隔250us 产生一次溢出。在初始化变量与寄存器后,主程序进入一个循环结构,在循环中只做动态扫描的工作,根据东西、南北两向的剩余时时间进行动态扫描显示。计时以及状态的切换通过定时器的中断服务程序来实现,在中断服务程序中,每计时到一秒时,则各方向当前状态的剩余时间减1,一直减到0时触发下一个状态的开始,改变交通灯的指示。 ③程序流程 图3-7 交通灯主程序流程图图3-8 中断服务程序流程图 (4)软硬件调试方案

相关文档
相关文档 最新文档