收藏 分销(赏)

52单片机的秒表.doc

上传人:二*** 文档编号:4512167 上传时间:2024-09-26 格式:DOC 页数:12 大小:516KB
下载 相关 举报
52单片机的秒表.doc_第1页
第1页 / 共12页
本文档共12页,全文阅读请下载到手机保存,查看更方便
资源描述
. . . 1 单片机的应用领域 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种职能IC卡,名用豪华车辆的安全保障系统,摄像机、全自动洗衣机的控制,以与程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。 单片机广发应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理与过程控制等领域,大致可分为如下几个畴: 1.1 在智能仪器仪表上的应用 单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用与仪器仪表中,结合不同类型的传感器,可实现诸如电压、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(示波器,各种分析仪)。 1.2在工业控制中的应用 用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二极管控制系统等。 1.3在家用电器中的应用 可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子称量设备,五花八门,无所不在。 1.4在计算机网络和通信领域中的应用 现代的单片机普遍具备通信接口,可以很方便的与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上实现了单片机智能控制,从手机、机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可以兼得移动,集群移动通信,无线电对讲机等。 1.5单片机在医用设备领域中的应用 单片机在医用设备中的用途亦相当广泛,例如易用呼吸机,各种分析仪,监护仪,超生趁断设备与病床呼叫系统等等。 1.6在各大型电器中的模块化的应用 某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其部结构。如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复习的类似与计算机的原理。如:音乐信号一数字的形式存于存储器中(类似于ROM),由微控制器读出,转化为模拟音乐电信号(类似于声卡) 1.7单片机在汽车设备领域中应用 AT89C52单片机在汽车电子中的应用非常广泛,例如汽车中的发动机控制器,基于CAN总线的汽车发动机智能电子控制器,GPS导航系统,abs防抱死系统,制动系统等等。 此外,单片机在工商、金融、科研、教育,国防航空航天等领域都有着十分广泛的用途。 以89c52为例讲解单片机的引脚与相关AT89C52单片机的引脚图如图1所示. 图1 单片机引脚图 40个引脚按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚。   1.电源: (1)VCC·芯片电源,接+5V;  (2)VSS·接地端; 注:用万用表测试单片机引脚电压一般为0V或者5V,这是标准的TTL电平。但有时候在单片机程序正在工作时候测试结果并不是这个值而是介于0V~+5V之间,其实这是万用表的响应速度没这么快而已,在某一个瞬间单片机引脚电压仍保持在0V或5V。 2.时钟:XTAL1、XTAL2·晶体振荡电路反相输入端和输出端。 3.控制线:控制线共有4根: (1)ALE/PROG:地址锁存允许/片EPROM编程脉冲 ALE功能:用来锁存P0口送出的低8位地址 PROG功能:片有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。 (2)PSEN: (3)RST/VPD:复位、备用电源。 RST(Reset)功能:复位输入端。 VPD功能:在Vcc钓点的情况下,接备用电源。 (4)EA/Vpp:外ROM选择/片EPROM编程电源。 EA功能:外ROM选择端。 Vpp功能:片有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。 4.I/O线。 89C52共有4个8位并行I/O端:P0、P1、P2、P3、口,共32个引脚。 P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线) 5.P3口第一功能: P3.0 RXD 串行输入口 P3.1 TXD 串行输出口 P3.2 INT0 外部中断0(低电平有效)、 P3.3 INT1 外部中断1(低电平有效) P3.4 T0 定时计数器0 P3.5 T1 定时计数器1 P3.6 WR 外部数据存储器写选通(低电平有效) P3.7 RD外部数据存储器写选通(低电平有效) 2 系统设计任务和要求以与方案硬件设计 2.1 设计任务 设计一个单片机控制的秒表系统。利用单片机的定时器、计数器定时和记数的原理,结合显示电路、LED数码管以与按键来设计计时器。将软、硬件有机的结合起来,使得系统能够正确的进行加计时,数码管能够正确的显示时间。 2.2设计要求 1.开机时数码显示00。 2两位LED显示,相识时间为00~99秒。 3.每一秒钟,计数器自动加1。 4.按键控制计数,分别控制开始计数、停止计数和归零,功能分配如下所示: 按键K1:控制秒表的启动、停止 按键K2:控制数码管显示清零 2.3 系统总体方案 本系统采用89C52系列单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,以与一些按键电路等来设计计数器,将软、硬件有机的结合起来。其中软件系统采用C语言编写程序,包括显示程序,加1技术程序,演示程序,按键消抖程序等,并在WAVE中调试运行,硬件系统利用PROTEUS强大功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。系统框图如图2所示。 显示电路 外围电路 单片机 电源电路 键盘电路 图2系统框图 2.4 硬件电路设计 本系统中,硬件电路主要有电源电路,晶振电路,复位电路,显示电路,以与一些按键电路等。 (1)单片机简介 本系统设计采用89C52系列单片机。 AT89C52是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。该器件采用ATMEL高密度非意识存储器制造技术制造,与工业标准的MCS-52指令集和输出管脚相兼容(由于在微机原理中学过C-52的具体知识,这里不再详细说明)。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C52是一种高效的微控制器。 (2)电源电路 电源电路是系统最基本的部分电路,任何电路都离不开电源部分,由于三端集成稳压器件所组成的稳压电源线路简单,性能稳定,工作可靠,调整方便,已逐渐取代分立元件,在生产中被广泛采用,由于是小系统,我们采用7809电源提供+5V稳压电压。 (1) 晶体振荡电路 MCS-52单片机部的振荡电路是一个高增益反相器,引线XTAL1和XTAL2分别为反向振荡放大器的输入与部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片振荡器。 这里,我们选用52单片机12MHz的部振荡方式,电路如下:电容器C1、C2起稳定振荡频率,快速起振的作用,C1和C2可在20-100PF之间取,这里取30P,接线时要晶体振荡器X1极可能接近单片机。 电路图如图3 所示。 图3晶体振荡电路图 (2) 复位电路 采用上电+按键复位电路,上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使用RST持续一段时间的高电平,从而实现上电加开关复位的操作。这不仅能使单片机复位,而且还能使单片机的外围芯片也同时复位。 电路图如图4所示。 图4 复位电路 (3) 显示电路 显示电路既可以选用液晶显示器,也可以选用数码管显示。我们采用的是数码管显示电路。用2个共阳极LED显示,LED是七段式显示器,部有7个条形发光二极管和1个小圆点发光二极管组成,根据各管的亮暗组合成字符。 再用数码管显示时,我们静态和动态两种选择,静态显示程序简单,显示稳定,但是占用端口比较多;动态显示所使用的端口比较少,可以节省单片机的I/O口。 在设计中,我们采用LED动态显示,用P0口驱动显示。由于P0口输出级是开漏电路,用它驱动是需要上拉电阻才能输出高电平。 电路图如图5 所示。 图5 显示电路图 (4)键盘电路 在按键电路中,我们可以在I/O口直接接按键,或者通过I/O设计一个键盘,然后通过键盘扫描程序判断是否有键按下等。键盘扫描电路节省I/O口,但程序有些复杂,在这里,由于我们所用的按键较少,且系统是一个小系统,有足够的I/O口可以使用,为了使程序简化,我们采用按键电路,用部分P1口做开关,P1.1为开始停止,P1.0为清零,外用中断INT1开始,另外用软件发消除振动。 电路图如图6所示。 图6键盘电路图 2.5硬件主电路图设计 用pretues画出其硬件主电路图如图7 所示。 图7 硬件主电路图 3 软件设计 3.1软件设计概述 在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可能性,使程序的结构层次一目了然。 应用系统的程序由包含多个模块的主程序和各种子程序组成。各程序模块都要完成一个明确的任务,实现某个具体的功能,如:加计数延时,计数和显示等,在具体需要时调用相应的模块即可。 功能描述:用2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加:1;一个:“开始”“暂停”键,一个“清零”键。 3.2主程序流程图 这里采用顺序结构,通过对按键的扫描,判断要实现什么功能。如图8 所示。 图8 主流程框图 3.3程序中个函数设计 (1) 初始化函数设计 void init() { TMOD=0x10; //定时器1工作方式1 TH1=0xd8; TL=0xf0; //延时初始化设置 //TR1=1; EA=1; //开总开关 ET1=1; //开定时 } (2) 显示函数设计 void writed(uchar num'uchar addr) { P2=0xff; //关显示 P0=dulatab[num]; //送数据 P2=welatab[addr]; delay(4); } void display(uchar sec) { uchar sech,secl; sech=sec/10; secl=sec%10; writeled(sech,0); writeled(secl,1); } (3) 按键函数设计 void keyscan() { if(start==0) { delay(2); if(start==0) { TR=~TR1; while(start==0) { dislay(sec); } } } if(stop==0&&TR1==0) { delay(2); if(stop==0) { s ec=0; while(stop==0) { display(sec); } } } } (4) 延时函数设计 void delay(uchar time) { uchar i,j; for(i=0;i<time;i++) { for(j=0;j<110;j++) } } 3.4 C语言主程序设计 主程序如下: #include<reg51.h> #define uchar unsigned char sbit start=P1^1; sbit stop=P1^0; uchar code dulatab[ ]={0x3f,0x06,0x5b;0x4f,0x66, ox6d,0x7d,0x07,0x7f,0x6f,0x40};//数字编码0-9 uchar code welatab[ ]={0xfe,0xfd};//位控制字 uchar msec,sec; void delay(uchar tiame)//延时 { uchar i,j; for(i=0;i<time;i++); { for(i=0;j<110;j++); } } void writeled(uchar mun ,addr) { P2=0xff;//关显示 P0=dulatab[num]; //送数据 P2=welatab[addr]; delay(4); } void display(uchar sec) { uchar sech,secl; sech=sec/10; secl=sec%10; writeled(sech,0); writeled(secl,1); } void init() { TMOD=0x10; //定时器1工作方式1 TH1=0xd8; TL=0xf0; //延时初始化设置 //TR1=1; EA=1; //开总开关 ET1=1; //开定时 } void keyscan() { if(start==0) { delay(2); if(start==0) { TR=~TR1; while(start==0) { dislay(sec); 延时防抖 } } } if(stop==0&&TR1==0) { delay(2); //延时防抖 if(stop==0) { sec=0; while(stop==0) { display(sec); } } } } void main() { init(); while(1) { display(sec); keyscan(); } } void timer1() interrupt 3 { TH1=0xd8; TL1=0xf0; msec++; if(msec==100) { msec=0; sec++; if(sec==100) { sec=0; } } } 12 / 12
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服