计算机控制技术与应用课程设计_第1页
计算机控制技术与应用课程设计_第2页
计算机控制技术与应用课程设计_第3页
计算机控制技术与应用课程设计_第4页
计算机控制技术与应用课程设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机控制技术与应用课程设计 课题:数字式秒表的设计 专业:电气工程与自动化 计算机控制技术课程设计 题目:数字式秒表的设计1、 设计目的(1) 熟练掌握计算机控制系统的设计方法。(2) 设计并实现一个简易数字秒表。2、 设计说明1) 秒表由6位7段LED显示器显示,其中2位显示分钟,4位显示秒,其中分辨率为0.01秒。2) 计时最大值为99分钟59.99秒。3) 计时误差不得超过0.01秒。4) 具有清零、启动计时、暂停计时及继续计时功能。3、 设计要求(1) 方案论证按系统功能实现要求,决定控制系统的实现方案,选择芯片,作出系统框图。(2) 硬件电路设计。按控制系统的实现方案,做出硬件原理

2、图。(3) 系统程序设计。对系统内存进行划分,采用模块化设计方法,作出初始化程序、主程序、显示子程序和模/数转换子程序。(4) 调试及仿真。(5) 用Keil+Proteus进行软件、硬件联合仿真和调试。 具体设计过程一、硬件设计1、 总体方案的设计数字秒表具有显示直观、读取方便、精度高等优点,在计时中广泛应用。本设计中用单片机和数码管组成数字秒,表力求结构简单。设计中包括硬件电路的设计和系统程序的设计。硬件电路主要有主控制器、控制按钮与显示电路组成。主控制器采用单片机AT89C52,显示电路采用四位共阴极数码管显示计时时间。本设计利用AT89C52单片机的定时器,使其能精确计时。利用中断系统

3、使其实现启动和暂停的功能,P0口输出段码数据,P2.0P2.5作为位选,P3.2和P3.3接口的两个按钮分别实现启动和暂停功能。设计的基本要求是正确性。硬件电路按下图进行设计。 AT89C52单片机控制开关六位数码管位控制 计时器采用T0中断实现,定时溢出中断周期为1ms,当溢出中断后向CPU发出溢出中断请求,每发出10次中断请求就对10ms位(即最后一位)加一,达到100次就对100ms位加一,以此类推,直到99.99s为止。 再看按键的处理。两个按键采用中断的方法,设置外部中断0和外部中断1位脉冲边沿触发方式,这样一来每当按键按下时便会触发中断,从而实现启动和暂停。2、 单片机的选择 本设

4、计在选取单片机时,充分借鉴了许多成型产品使用单片机的经验。并根据自己的实际情况,选用了ATMEL公司的AT89C52。 ATMEL公司的89系列单片机以其卓越的性能、完善的兼容性、快捷便利的电擦写操作、低廉的价格完全替代了87C51/62和8751/52,低电压、低功耗,有DIP、PLCC、QFP封装,是目前性能最好、价格最低、最受欢迎的单片机之一。 AT89S52为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8XC52相同,其主要用于汇聚调整时的功能控制。功能包括对汇聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,汇聚调整控制,汇

5、聚测试图控制等。3、单片机外部结构AT89S52单片机采用40脚的DIP封装,如下所示。(1)主电源引脚Vss和Vcca、 Vss接地b、 Vcc正常操作时为+5V接地外接晶振引脚XTAL1和XTAL2a、XTAL1内部振荡电路反相放大器的输出端,是外接晶体的一个引脚。当采用外部振荡时,此引脚接地。b、XTAL2内部振荡电路反相放大器的输出端,是外接晶体的的另一端。当采用外部振荡时,此引脚接外部振荡源。(2)控制或与其他电源复用引脚a、RST/VPD 当振荡器运行是,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位在Vcc掉电期间,此引脚可接上备用电源,由VPD向内部提供备用

6、电源,以保持内部RAM中的数据。b、ALE/PROG 正常操作时为ALE功能(允许地址锁存)提供把地址的低字节锁存到外部存储器,ALE引脚以不变的频率(振荡器频率的1/6)周期性的发出正脉冲信号。因此,它可以用作对外输出的时钟,或用于定时目的。c、PSEN 外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)期间,PSEN在每个机器周期内两次有效。d、EA/Vpp 内部程序存储器和外部程序存储器选择端。当EA/Vpp位高电平时,访问内部程序存储器,当EA/Vpp为低电平时,则访问外部程序存储器。对于EPROM编程期间,此引脚上加21VEPROM编程电源(Vpp)。(3)输入/输出引

7、脚P0.0P0.7,P1.0P1.7,P2.0P2.7,P3.0P3.7。a、P0口(P0.0P0.7)是一个8位漏极开路型双向I/O口,在访问外部存储器时,它是分时传送的低字节地址和数据总线,P0口能以吸收电流的方式驱动八个LSTTL负载。b、P1口(P1.0P1.7)是一个带有内部上拉电阻的8位准双向I/O口。能驱动四个LSTTL负载。c、P2口(P2.0P2.7)是一个带有内部上拉电阻的8位准双向I/O口,在访问外部存储器时,它输出高8位地址。P2口可以驱动四个LSTTL负载。d、P3口(P3.0P3.7)是一个带有内部上拉电阻的8位准双向I/O口。能驱动四个LSTTL负载。4、显示电路

8、的选择与设计对于数字显示电路,通常采用液晶显示或数码管显示。对于一般的段式液晶屏,需要专门的驱动电路,而且液晶显示作为一种被动显示,可视性差,不适合远距离观看;对于具有驱动电路和单片机接口的液晶显示模块,一般多采用并行接口,对单片机的接口要求较高,占用资源多;另外,AT89C52单片机本身没有专门的液晶驱动接口。而数码管作为一种主动显示器件,具有亮度高、响应速度快、价格便宜、易于购买等优点,而且有远距离视觉效果,很适合夜间或者远距离操作。因此在本设计中,我们采用7段数码管作为显示介质。数码管显示可以分为静态显示和动态显示两种。由于本设计需要采用六位数码管显示时间,如果静态显示则占用的口线多,硬

9、件电路复杂,所以采用动态显示。动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。通常各位数码管的段选线相应并联在一起,由一个8位的I/O口控制;各位的公共阴极位选线由另外的I/O口线控制。动态方式显示时,各数码管轮流选通,要使其稳定显示必须采用扫描方式,即在某一时刻只选通一位数码管并送出相应的段码,在另一时刻选通另一数码管,并送出相应的段码,依次规律循环,即可以使各位数码管显示将要显示的字符,虽然这些字符是在不同时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人同时显示的感觉,其系统框图如下所示;AT89C52段驱动位驱动六位数码管5、系统总体

10、电路的设计系统总体电路如下图所示AT89C52单片机为主电路的核心部分,各个电路均与单片机相连,由单片机统筹协调各个电路的运行工作。开始键和暂停键使用了外部中断,所以需要连到单片机的P3.2和P3.3引脚上,这两个I/O口的第二功能是单片机的外部中断0端口和外部中断1端口。显示电路由六位数码管组成,采用动态显示方式,因此有8位段控制和六位位控制,8位段接控制接P0口,P0.0P0.7分别控制数码管的a b c d e f g dp显示,位控制接在P2.0P2.5六个口实现位控制。系统的硬件原理图如下所示; 二、软件设计1、主程序设计本系统程序主要模块由主程序、定时中断服务程序、外部中断0服务程

11、序和外部中断1服务程序组成。其中主程序是整个程序的主体。可以对各个中断程序进行调用。协调各个子程序之间的关系。主程序主要是设置定时器大的工作模式,对定时器赋初值,开总中断、两个外部中断以及定时器溢出中断。并设置外部中断为脉冲边沿触发方式。2、中断程序设计本方案中用到了三个中断:外部中断0、外部中断1和定时器T0溢出中断。CPU在响应中断时,先处理高级中断,后处理低级中断,若有多个同级中断时,则应按自然优先顺序处理。例如当CPU正在处理一个中断申请时,又出现了另一个优先级比它高的中断请求,这时,CPU就暂停对当前优先级较低的中断源的服务,转去响应优先级比它高的中断请求,并为其服务。待服务结束,再

12、继续执行原来较低级的中断服务程序。而当CPU为级别高的中断服务程序服务时,如果级别低的中断发出中断请求,此时CPU是不会响应的,所以为了避免开始和暂停两个按键中的一个出现没有响应的情况,在进行编程是要注意中断的使用,避免出现中断的嵌套。合理分配中断对本设计是很重要的。(1)外部中断0服务程序外部中断0服务程序结合外部P3.2键实现数字秒表的启动功能。流程如下图所示。外部中断0入口启动定时器T0 TR0=1中断返回(2)外部中断1服务程序 外部中断1服务程序结合外部P3.3键实现数字秒表的停止功能。 流程图如下所示。外部中断1入口停止计时TR1=0 中断返回(3)清零的实现 系统清零运用AT89

13、C52单片机复位功能清零的,在振荡器正在运行的情况下,复位是靠在REST/Vpd或RST引脚处至少保持2个机器周期(24个振荡器周期)的高电平而实现的。在RST断出现高电平后的第2个周期,执行内部复位,以后每个周期重复一次,直至RST端变低。复位后,除了特殊寄存器外,其他寄存器状态都位00H或者0000H,因此运用AT89C52单片机的复位功能可以实现清零功能,系统的清零部分电路图(复位功能电路图)如下图所示; (4)定时器T0中断服务程序当T0一处后,向CPU发出中断请求信号。CPU跳转到定时中断程序执行,具体流程如下;定时器中断入口重装计数初值中断次数加1中断次数到10吗中断次数清零,0.

14、01秒位加一0.01秒位到10吗0.01秒位清零,0.1秒位加一0.1秒位到10吗0.1秒位清零,1秒位加一1秒位到10吗1秒位清零,10秒位加一10秒位到10吗10秒位清零中断返回3、程序清单#includeunsigned int data table=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90; unsigned int data table1=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;unsigned int i,j,k,l,o,n,m,count;void delay(u

15、nsigned int z) unsigned int x,y;for(x=z;x!=0;x-)for(y=110;y!=0;y-);void main()TMOD=0x01; TH0=(65536-100)/256; TL0=(65536-100)%256; EA=1; EX0=1;EX1=1;ET0=1;IT0=1; IT1=1; while(1) P2=0x01;P0=tableo;delay(1);P2=0x02;P0=table1n;delay(1);P2=0x04;P0=tablem;delay(1);P2=0x08;P0=table1l;delay(1); P2=0x10;P0=

16、tablek;delay(1); P2=0x20;P0=tablej;delay(1);void ex0() interrupt 0 TR0=1; void ex1() interrupt 2 TR0=0; void timer0() interrupt 1 TH0=(65536-100)/256; TL0=(65536-100)%256;count+; if(count=10)count=0;i+; if(i=10)i=0; j+;if(j=10)j=0; k+;if(k=10)k=0; l+; if(l=10) l=0; m+; if(m=6) m=0; n+; if(n=10) n=0;

17、 o+; if(o=10) o=0; count=0; 三、系统调试Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件,它可以仿真、分析各种模拟器件和集成电路。该软件的主要特点为:实现了单片机仿真和SPICE电路仿真相结合的功能,支持目前主流单片机系统的仿真,提供了软件调试的功能,具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。在电子领域中起到了很大的作用,它的出现仿真不需要先焊接电路板,可以先仿真调试通过之后再焊接电路,节省了不少在硬件调试上花费的时间。打开已经画好的Proteus DSN文件,双击图中的AT8

18、9S52芯片,就弹出一个窗口,在program file项中通过路径选择在keil中生成hex文件,双击选中后确定,这样仿真图中的AT89S52芯片就已经读取了本设计中的hex文件。然后进行仿真,仿真图如下所示。系统运行时的情况: 1、秒表运行图2、秒表清零图四 总结报告本设计的数字秒表是由AT89S52单片机、共阴极数码管和控制按键等器件组成的,设有六位计时显示。计时精度能达到0.01s。系统设计合理,线路简单,性能稳定、程序简单。给出了较为详尽的电路设计方法。本系统以单片机为核心,但仅单片机方面的知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软硬件结合,以作完善。 本次课程设计,按照设计

温馨提示

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

评论

0/150

提交评论