百位(开关)计数器课程设计报告.doc

上传人:文库蛋蛋多 文档编号:4150313 上传时间:2023-04-07 格式:DOC 页数:18 大小:258KB
返回 下载 相关 举报
百位(开关)计数器课程设计报告.doc_第1页
第1页 / 共18页
百位(开关)计数器课程设计报告.doc_第2页
第2页 / 共18页
百位(开关)计数器课程设计报告.doc_第3页
第3页 / 共18页
百位(开关)计数器课程设计报告.doc_第4页
第4页 / 共18页
百位(开关)计数器课程设计报告.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《百位(开关)计数器课程设计报告.doc》由会员分享,可在线阅读,更多相关《百位(开关)计数器课程设计报告.doc(18页珍藏版)》请在三一办公上搜索。

1、课 程 设 计 任 务 书学 院信息科学与工程专 业测控技术与仪器学生姓名李晗学 号1003020107设计题目百位(开关)计数器内容及要求:keil c程序设计是测控技术与仪器专业的专业基础课。本设计是对该课程综合应用能力的检验,在鼓励学生熟悉基本原理的前提下,注重与实际应用相联系,提出自己的方案,完善设计。1、熟悉单片机及被控对象的工作原理; 2、提出可行设计方案;3、根据方案设计硬件电路、绘制电路原理图;4、软件编程并调试;5、系统调试;5、完成课程设计报告。进度安排:第18周(2012年12月29日-2013年1月7日):布置设计任务,查资料,完成总体方案设计,系统硬件电路设计,系统软

2、件编写并调试,验收答辩。指导教师(签字)2012年11月24日学院院长(签字)2012年11月24日摘 要 随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术, 本课程设计报告主要介绍了一个基于89C51单片机的开关计数的设计,详细描述了利用开关计数系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统实现计数和显示,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点。关键词:单片机89C51;开关;开关计数器。目录1.设计背景41.1课题背景41.2设

3、计内容52系统总体设计53.硬件系统介绍53.1 80C51单片机的介绍53.1.1 80C51单片机主要特性73.1.2 80C51单片机管脚图73.1.3 80C51单片机的中断系统104硬件电路设计114.1开关计数电路硬件设计114.1.1晶振电路114.1.2显示器124.1.3操作电路124.1.4总电路图135.主要元器件136软件编程137调试178设计总结179.参考文献18引言计数是一种最简单的基本的运算,计数器就是实现这种运算的逻辑电路,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量,计数和控制的功能,同时兼有分频功能,计数器是由基本的计数单元和一些控制门所组成

4、,计数单元则由一系列具有存储信息功能的各类触发器构成。计数器在数字系统中应用广泛,如在电子计算机的控制中对指令的地址进行计数,以便顺序取出下一条指令,在运算中做乘法,除法运算时记下加法,减法的次数。计数器可以用来显示产品的工作状态,计数器不仅能用于对时钟脉冲计数,还可以用于分频,定时,产生节拍脉冲和脉冲序列以及进行数字运算等,但是并无法显示计算结果,一般是通过外接LED或LCD才能显示,随着科学技术的不断提高,计数器的计数范围也越来越大。计数器的产生意义重大,在人类文明的进步过程中是不可缺少的。1.设计背景1.1课题背景 随着计数器技术的不断发展与进步,计数器的种类越来越多,应用的范围越来越广

5、,随之而来的竞争也越来越激烈。过硬的技术也成为众多生产厂商竞争的焦点之一。厂商为了在竞争中处于不败之地,从而不断地改进技术,增加产品的种类。现计数器的种类以增加到:电磁计数器、电子计数器、机械计数器(拉动机械计数器、转动机械计数器、按动机械计数器、测长机械计数器)、液晶计数器等。 计数器的应用范围也遍布印刷、纺织、印染、针织、电缆、电讯、军工、轻工、机械、开关、断路器、矿山、实行多班制的纺织行业的织布机、织带机、制线、制带、造纸、制革、薄膜、高压开关电器产品、试验设备,印刷设备、短路器、医疗、纺织、机械、仓库和码头的货运、行人及车辆过往的数量计数、冶金、食品、国防、包装、配料、石油、化工、发电

6、、机床、仪表、自动化控制等行业。1.2设计内容 1.利用开关的闭合和断开进行计数(计数范围:0-99),将计数值准确显示出来 2.用光电管用来检测是否有物体经过,数码管显示光电管检测到物体的数量,数值可设置,本设计设定为09999,上电显示初始值0000,计数上限为9999。用显示屏准确记录数值的变化。2系统总体设计 主电源数值显示89C51主控制器根据设计内容,开关计数器系统可以分为手动对信号输入端的输入,数码管显示和清零模块。具体模块有主电源模块,手动操作模块,计数值显示,晶振模块。系统总体设计框图如图所示晶振电路手动操作开关计数系统框图3.硬件系统介绍3.1 80C51单片机的介绍80C

7、51单片机最初是由Intel 公司开发设计的,但后来Intel 公司把51 核的设计方案卖给了几家大的电子设计生产商,譬如 SST、Philip、Atmel 等大公司。如是市面上出现了各式各样的但均以51 为内核的单片机,倒是Intel 公司自己的单片机却显得逊色了。这些各大电子生产商推出的单片机都兼容51 指令、并在51 的基础上扩展一些功能而内部结构是与51 一致的。80C51有40个引脚,4个8位并行I/O口,1个全双工异步串行口,同时内含5个中断源,2个优先级,2个16位定时/计数器。80C51的存储器系统由4K的程序存储器(掩膜ROM),和128B的数据存储器(RAM)组成。【3】

8、80C51单片机的基本组成框图见图3-1。【3】图3-1 80C51单片机结构由图3-1可见,8051单片机主要由以下几部分组成:cpu系统 8位cpu,含布尔处理器; 时钟电路; 总线控制逻辑。存储器系统 4K字节的程序存储器(ROM/EPROM/Flash,可外扩至64KB); 128字节的数据存储器(RAM,可再外扩64KB); 特殊功能寄存器SFR。I/O口和其他功能单元 4个并行I/O口; 2个16位定时计数器; 1个全双工异步串行口; 中断系统(5个中断源,2个优先级)。3.1.1 80C51单片机主要特性1. 一个8 位的微处理器(CPU)。2. 片内数据存储器RAM(128B)

9、,用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据等,SST89 系列单片机最多提供1K 的RAM。3. 片内程序存储器ROM(4KB),用以存放程序、一些原始数据和表格。但也有一些单片机内部不带ROM/EPROM,如8031,8032,80C31 等。目前单片机的发展趋势是将RAM 和ROM 都集成在单片机里面,这样既方便了用户进行设计又提高了系统的抗干扰性。SST 公司推出的89 系列单片机分别集成了16K、32K、64K Flash 存储器,可供用户根据需要选用。4. 四个8 位并行IO 接口P0P3,每个口既可以用作输入,也可以用作输出。5. 两个定时器计数器,每个定

10、时器计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。为方便设计串行通信,目前的52 系列单片机都会提供3 个16 位定时器/计数器。6. 五个中断源的中断控制系统。现在新推出的单片机都不只5 个中断源,例如SST89E58RD 就有9 个中断源。7. 一个全双工UART(通用异步接收发送器)的串行IO 口,用于实现单片机之间或单机与微机之间的串行通信。8. 片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允许振荡频率为12MHz。SST89V58RD 最高允许振荡频率达40MHz,因而大大的提高了指令的执行速度。3

11、.1.2 80C51单片机管脚图图3-2 80C51单片机管脚图部分引脚说明:时钟电路引脚XTAL1 和XTAL2:XTAL2(18 脚):接外部晶体和微调电容的一端;在8051 片内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体固有频率。若需采用外部时钟电路时,该引脚输入外部时钟脉冲。要检查8051/8031 的振荡电路是否正常工作,可用示波器查看XTAL2 端是否有脉冲信号输出。XTAL1(19 脚):接外部晶体和微调电容的另一端;在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,该引脚必须接地。控制信号引脚RST,ALE,PSEN 和EA:RST/VPD(9 脚):RST

12、是复位信号输入端,高电平有效。当此输入端保持备用电源的输入端。当主电源Vcc 发生故障,降低到低电平规定值时,将5V 电源自动两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。RST 引脚的第二功能是VPD,即接入RST 端,为RAM 提供备用电源,以保证存储在RAM 中的信息不丢失,从而合复位后能继续正常运行。ALE/PROG(30 脚):地址锁存允许信号端。当8051 上电正常工作后,ALE 引脚不断向外输出正脉冲信号,此频率为振荡器频率fOSC 的1/6。CPU 访问片外存储器时,ALE 输出信号作为锁存低8 位地址的控制信号。平时不访问片外存储器时,ALE 端也以振荡频

13、率的1/6 固定输出正脉冲,因而ALE 信号可以用作对外输出时钟或定时信号。如果想确定8051/8031 芯片的好坏,可用示波器查看ALE端是否有脉冲信号输出。如有脉冲信号输出,则8051/8031 基本上是好的。ALE 端的负载驱动能力为8 个LS 型TTL(低功耗甚高速TTL)负载。此引脚的第二功能PROG 在对片内带有4KB EPROM 的8751 编程写入(固化程序)时,作为编程脉冲输入端。PSEN(29 脚):程序存储允许输出信号端。在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。此引肢接EPROM 的OE 端(见后面几章任何一个小系统硬件图)。PSEN 端有效

14、,即允许读出EPROMROM 中的指令码。PSEN 端同样可驱动8 个LS 型TTL 负载。要检查一个8051/8031 小系统上电后CPU 能否正常到EPROMROM 中读取指令码,也可用示波器看PSEN 端有无脉冲输出。如有则说明基本上工作正常。EA/Vpp(31 脚):外部程序存储器地址允许输入端/固化编程电压输入端。当EA 引脚接高电平时,CPU只访问片内EPROM/ROM并执行内部程序存储器中的指令,但当PC(程序计数器)的值超过0FFFH(对8751/8051 为4K)时,将自动转去执行片外程序存储器内的程序。当输入信号EA 引脚接低电平(接地)时,CPU 只访问外部EPROM/R

15、OM 并执行外部程序存储器中的指令,而不管是否有片内程序存储器。对于无片内ROM 的8031 或8032,需外扩EPROM,此时必须将EA 引脚接地。此引脚的第二功能是Vpp 是对8751 片内EPROM固化编程时,作为施加较高编程电压(一般12V21V)的输入端。输入/输出端口P0/P1/P2/P3:P0口(P0.0P0.7,3932 脚):P0口是一个漏极开路的8 位准双向I/O口。作为漏极开路的输出端口,每位能驱动8 个LS 型TTL 负载。当P0 口作为输入口使用时,应先向口锁存器(地址80H)写入全1,此时P0 口的全部引脚浮空,可作为高阻抗输入。作输入口使用时要先写1,这就是准双向

16、口的含义。在CPU 访问片外存储器时,P0口分时提供低8 位地址和8 位数据的复用总线。在此期间,P0口内部上拉电阻有效。P1口(P1.0P1.7,18 脚):P1口是一个带内部上拉电阻的8 位准双向I/O口。P1口每位能驱动4 个LS 型TTL 负载。在P1口作为输入口使用时,应先向P1口锁存地址(90H)写入全1,此时P1口引脚由内部上拉电阻拉成高电平。P2口(P2.0P2.7,2128 脚):P2口是一个带内部上拉电阻的8 位准双向I/O口。P口每位能驱动4个LS 型TTL 负载。在访问片外EPROM/RAM 时,它输出高8 位地址。P3口(P3.0P3.7,1017 脚):P3口是一个

17、带内部上拉电阻的8 位准双向I/O口。P3口每位能驱动4个LS型TTL负载。P3口与其它I/O 端口有很大的区别,它的每个引脚都有第二功能,如下:P3.0:(RXD)串行数据接收。P3.1:(RXD)串行数据发送。P3.2:(INT0#)外部中断0输入。P3.3:(INT1#)外部中断1输入。P3.4:(T0)定时/计数器0的外部计数输入。P3.5:(T1)定时/计数器1的外部计数输入。P3.6:(WR#)外部数据存储器写选通。P3.7:(RD#)外部数据存储器读选通。3.1.3 80C51单片机的中断系统80C51系列单片机的中断系统有5个中断源,2个优先级,可以实现二级中断服务嵌套。由片内

18、特殊功能寄存器中的中断允许寄存器IE控制CPU是否响应中断请求;由中断优先级寄存器IP安排各中断源的优先级;同一优先级内各中断同时提出中断请求时,由内部的查询逻辑确定其响应次序。3.1.4 80C51单片机的定时/计数器在单片机应用系统中,常常会有定时控制需求,如定时输出、定时检测、定时扫描等;也经常要对外部事件进行计数。80C51单片机内集成有两个可编程的定时/计数器:T0和T1,它们既可以工作于定时模式,也可以工作于外部事件计数模式,此外,T1还4硬件电路设计4.1开关计数电路硬件设计4.1.1晶振电路晶振电路由2个电容,1个晶振组成,如下图所示。 晶振电路单片机晶振的作用是为系统提供基本

19、的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。单片机晶振有2个电容的作用:这2个电容叫晶振的负载电容,分别接在晶振的2个脚上和对地的电容,一般在几十皮法。它会影响到晶振的振谐频率和输出幅度。晶振的负载电容=(Cd*Cg)/(Cd+Cg)+Cic+C。4.1.2显示器显示电路图4.1.3操作电路 操作电路图4.1.4总电路图开关计数总电路图5.主要元器件表1元件清单元件序号型号主要参数数量备注芯片U1AT89C5112MHz1晶振CRYSTAL12MHz1电阻阻排R1DIGITAL10KRESPACK-81/1

20、电容CAP1030PF3开关BUTTON无3清零,计数电源,地POWER,GND1/1显示器LCD1.5V,10MA26软件编程#include #define uchar unsigned char #define uint unsigned intsbitSEG_1=P20; sbitSEG_2=P21;sbitSEG_3=P22;sbitSEG_4=P23;sbit t0=P34;ucharCount_TAB=0x3F,0x06,0x5B,0x4F,0x66, 0x6D,0x7D,0x07,0x7F,0x6F, 0x77,0x7b,0x39,0x5e,0x79,0x73;int coun

21、t=0;void delay(int n)uchar j=0;uint k=0;for(j=0;j0;k-);void display(uint temp)/4位数码管循环显示 int ge,shi,bai,qian;qian=temp/1000;bai=temp%1000/100;shi=temp%100/10;ge=temp%10;SEG_1=0;SEG_2=0;SEG_3=0;SEG_4=0;SEG_1=1;P0=Count_TABqian;delay(10);SEG_1=0;SEG_2=1;P0=Count_TABbai;delay(10);SEG_2=0;SEG_3=1;P0=Cou

22、nt_TABshi;delay(10);SEG_3=0;SEG_4=1;P0=Count_TABge;delay(10);SEG_4=0;void main() P0 = 0x00;P2 = 0x00;P3=0xff;t0=1; TMOD = 0x06;TH0 = TL0 = 256 - 1 ;ET0 = 1;EX0 = 1;EX1 = 1;EA = 1;IP = 0x02;IT0 = 1;IT1 = 1;TR0 = 1; while(1)display(count); void Key_Counter() interrupt 1 EA=0;TR0=0; count =(count + 1 )

23、; if(count=9999)count=0; TH0=0XFF;TL0=0XFf;TR0=1;EA=1; 7调试在keilc文件中输入软件程序,编译看程序是否出错,一般可出现语句,逻辑,时序等常见错误,待修改编译成功后,生成hex文件。在proteus界面中双击AT89C51单片机将生成的hex文件导入,编译,仿真。8设计总结开关计数器,是我做出的第一个具有实际功能的系统,刚拿到题目是感觉系统很复杂,很难入手。我们从功能出发,由简到繁,逐渐增加功能,确定实际方案。然后利用软件Proteus进行电路仿真,调试。总结本文的研究工作,主要做了下面几点较突出的工作:一、通过查阅大量的相关资料,大体

24、了解了开关计数原理,明确了研究目标。二、文章给出了系统具体的硬件设计方案,硬件结构电路图。四、在这次课程设计的过程中学会了 Protel 99se 的基本使用,感到Protel 99se 对本专业的同学来说是一门很有用的课程。五、通过这次课程设计,让我进一步学习了MCS-51;熟练掌握了WORD软件的使用。9.参考文献1.51单片机C语言应用开发技术大全龙脉工作室刘坤、宋戈、赵红波、张宪栋编著,人民邮电出版社2.51单片机应用设计与仿真基于Keil与Proteus丁明亮、唐前辉 主编,北京航空航天大学出版社3.单片机原理与应用及C51程序设计唐颖主编,北京大学出版社黄正谨 综合电子设计与实践.东南大学出版社2002

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号