




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机课程设计论文基于AT89C51单片机的简易频率计设计河南大学物理与电子学院开放实验室摘 要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此越来越广泛地应用各个领域. 本文的频率计系统是以单片机(AT89C51)为核心,利用AT89C51单片机的T0和T1的定时计数功能来完成对输入的信号进行频率计数,由时基集成电路NE555P、四位共阴极数码管等元器件以及C语言程序组成。具体介绍应用Proteus的ISIS软件进行单片机系统的频率设计与仿真的实现方法,以及Keil软件的编译与应用。该方法既能准确验证所设计的系统是否满足技术要求,又能提高系统设计的效率和质量,降低开发成本,具有推广价值。关键词:AT89C51 NE555 频率计 1.11.2 引言本文利用AT89C51单片机的T0、T1的定时计数器功能,来完成对输入的信号进行频率计数,计数的频率结果通过4位动态数码管显示出来。能够对09999HZ的信号频率进行准确计数,计数误差不超过1HZ。1.3 单片机简介1.3.1 单片机概述单片机因将其主要组成部分集成在一个芯片上而得名,具体说就是把中央处理器CPU(Central processing unit)。随机存储器RAM(Random access memory)。只读存储器ROM(Read only memory)。 中断系统、定时器计数器以及IO(Input/output)接口电路等主要微型机部件集成在一个芯片上。虽然单片机只是一个芯片,但从组成和功能上看,它已具有了计算机系统的属性。为此,称它为单片微型计算机SCMC(Single chip micro computer),简称单片机。 单片机主要应用与控制领域,用以实现各种测试和控制功能,为了强调起控制属性,也可以把单片机称为微控制器MCU(Micro controller unit)。在国际上,“微控制器”的叫法似乎更通用一些,而在我国则比较习惯与“单片机”这一名称。 单片机在应用时,通常是处于控制系统的核心地位并融入其中,即以嵌入的方式进行使用,为了强调其嵌入的特点,也常常将单片机称为嵌入式微控制器EMCU(Embedded micro controller unit)。在单片机的电路和结构中,有许多嵌入式应用的特点。1.3.2 单片机与单片机系统单片机通常是指芯片本身,它是有芯片制造商生产的,在它上面集成的是一些做为基本组成部分的运算器电路,控制器电路,存储器,中断系统,定时器/计数器以及输入/输出口电路等。但一个单片机芯片并不能把计算机的全部电路都集成到其中,例如组成谐振电路和复位电路的石英晶体,电阻,电容等,这些元件在单片机系统中只能以散件的形式出现。此外,在实际的控制应用中,常常需要扩展外围电路和外围芯片。从中可以看到单片机和单片机系统的差别,即:单片机只是一块芯片,而单片机系统则是在单片机芯片的基础上扩展其它电路或芯片构成的具有一定应用功能的计算机系统。 通常所说的单片机系统都是为实现某一控制应用需要由用户设计的,是一个围绕单片机芯片而组建的计算机应用系统。在单片机系统中,单片机处于核心地位,是构成单片机系统的硬件和软件基础。1.4 频率计数器概述(1)简介 频率计数器是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。 本数字频率计将采用定时、计数的方法测量频率,采用一个四位共阴极数码管显示器动态显示4位数。测量范围从1Hz9999Hz的 方波、 用单片机实现自动测量功能。基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。(2)频率测量仪的设计思路与频率的计算图1.1 频率测量原理图频率测量仪的设计思路主要是:对信号分频,测量一个或几个被测量信号周期中已知标准频率信号的周期个数,进而测量出该信号频率的大小,其原理如右图1所示。若被测量信号的周期为,分频数m1,分频后信号的周期为T,则:T=m1Tx 。由图可知: T=NTo (注:To为标准信号的周期,所以T为分频后信号的周期,则可以算出被测量信号的频率f。)由于单片机系统的标准频率比较稳定,而是系统标准信号频率的误差,通常情况下很小;而系统的量化误差小于1,所以由式T=NTo可知,频率测量的误差主要取决于N值的大小,N值越大,误差越小,测量的精度越高。(3) 基本设计原理基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。所谓“频率”,就是周期性信号在单位时间(1s)内变化的次数。若在一定时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可表示为f=N/T。其中脉冲形成电路的作用是将被测信号变成脉冲信号,其重复频率等于被测频率fx。时间基准信号发生器提供标准的时间脉冲信号,若其周期为1s,则门控电路的输出信号持续时间亦准确地等于1s。闸门电路由标准秒信号进行控制,当秒信号来到时,闸门开通,被测脉冲信号通过闸门送到计数译码显示电路。秒信号结束时闸门关闭,计数器停止计数。由于计数器计得的脉冲数N是在1秒时间内的累计数,所以被测频率fx=NHz。1.5 Proteus软件简介 PROTEUS软件由Labcenter公司开发,是目前世界上最先进、最完整的嵌入式系统设计与仿真平台,可以实现数字电路、模拟电路及微控制器系统与外设的混合电路系统的电路仿真、软件仿真、系统协同仿真和PCB设计等功能,是目前唯一能够对各种处理器进行实时仿真、调试与测试的EDA工具。微控制器系统相关的仿真需建立编译和调试环境,可选择Keil C51uVision2 软件。该软件支持众多不同公司的芯片,集编辑、编译和程序仿真等于一体,同时还支持PLM、汇编和C语言的程序设计。它的界面友好易学,在调试程序、软件仿真方面有很强大的功能。 其革命性的功能是:将电路仿真和微处理器仿真进行协同,直接在基于原理图的虚拟原型上进行处理器编程调试,并进行功能验证,通过动态器件如电机、LED、LCD、开关等,实时看到运行后的输入、输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等, Proteus为我们建立了完备的电子设计开发环境。1.6 C语言简介C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统开发。是一种面向过程的计算机程序设计语言,它是目前众多计算机语言中举世公认的优秀的结构程序设计语言之一。它由美国贝尔研究所的D.M.Ritchie于1972年推出。1978后,C语言已先后被移植到大、中、小及微型机上。C语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件,如DBASE 都是由C 语言编写的。用C 语言加上一些汇编语言子程序,就更能显示C 语言的优势了,像PC- DOS 、WORDSTAR等就是用这种方法编写的。C语言是一种成功的系统描述语言,用C语言开发的UNIX操作系统就是一个成功的范例;同时C语言又是一种通用的程序设计语言,在国际上广泛流行。世界上很多著名的计算公司都成功的开发了不同版本的C语言,很多优秀的应用程序也都使用C语言开发的,它是一种很有发展前途的高级程序设计语言。 (1) C是中级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。 (2)C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化 。 (3)C 语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。(4)C语言适用范围大。适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。 C语言对编写需要硬件进行操作的场合,明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。 C语言具有较好的可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。系统设计1.7 频率计数器系统硬件组成频率计数器系统硬件主要由AT89C51单片机、定时电路NE555、LED数码管等元器件组成。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。NE555是/view/2398.htm 美国Signetics公司1972年研制的用于取代机械式定时器的中规模集成电路,因输入端设计有三个5k的电阻而得名。 数码管是一种半导体发光器件,其基本单元是发光二极管。AT89C51单片机单片机晶振电路单片机复位电路方波信号产生电路四位共阴极数码管显示电路 图2.1 系统框图1.8 AT89C51单片机简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图2.2 AT89C51单片机(1)主要特性与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 (2)管脚说明VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 1.8.1 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:P3.0 RXD串行输入口P3.1 TXD串行输出口P3.2 /INT0外部中断0P3.3 /INT1外部中断1P3.4 T0记时器0外部输入P3.6 /WR外部数据存储器写选通P3.7 /RD外部数据存储器读选通RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。1.9 定时电路NE555NE555是属于555系列的计时IC的其中的一种型号,555系列IC的接脚功能及运用都是相容的,只是型号不同的因其价格不同其稳定度、省电、可产生的振荡频率也不大相同;而555是一个用途很广且相当普遍的计时IC,只需少数的电阻和电容,便可产生数位电路所需的各种不同频率之脉波讯号。 NE555的特点有: (1)只需简单的电阻器、电容器,即可完成特定的振荡延时作用。其延时范围极广,可由几微秒至几小时之久。 (2)它的操作电源范围极大,可与TTL,CMOS等逻辑闸配合,也就是它的输出准位及输入触发准位,均能与这些逻辑系列的高、低态组合。 (3)其输出端的供给电流大,可直接推动多种自动控制的负载。 (4)它的计时精确度高、温度稳定度佳,且价格便宜。 b. NE555引脚位配置说明下:图2.3 NE555接脚图 图2.4 NE555的内部结构框图1.10 数码管数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管. 共阴极接法共阳极接法如图所示,LED数码管由7个发光二极管组成,此外,还有一个圆点型发光二极管(在图中以dp表示),用于显示小数点。通过七段发光二极管亮暗的不同组合,可以显示多种数字、字母以及其它符号。LED数码管中的发光二极管共有两种连接方法:1) 共阴极接法:把发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地,这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电平的则不点亮。实验中使用的LED显示器为共阴极接法2) 共阳极接法:把发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接5V。这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。为了显示数字或符号,要为LED显示器提供代码,因为这些代码是为显示字形的,因此称之为字形代码。七段发光二极管,再加上一个小数点位,共计八段。因此提供给LED显示器的字形代码正好一个字节。若a、b、c、d、e、f、g、dp 8个显示段依次对应一个字节的低位到高位,即D0、D1、D2、D3、D4、D5、D6、D7,则用共阴极LED数码管显示十六进制数时所需的字形代码如表4.9-1所示。表4.9-1 共阴极LED数码管字形代码字型共阴极字形代码字型共阴极字形代码字型共阴极字形代码03FH67DHC39H106H707Hd5EH25BH87FHE79H34FH96FHF71H466HA77H灭00H56DHb7CH1.11 频率计数器系统设计流程 图2.5基于Proteus的单片机系统设计流程硬件电路设计1.12 频率计数器电路图设计运行Proteus的ISIS 后出现程序主窗口界面,鼠标左键单击窗口左侧的元器件工具栏的component.按钮, 接着再点击窗口左侧的元器件选择区的Pick Divices.按钮,弹出如图1所示的Pick Devices窗口,再在Categ栏里点击MicroprocessorICs项后,在Results栏里会出现各种类型的CPU器件,找到 AT89C51后双击,AT89C51就被添加到当前窗口左侧的元器件列表区了。用同样的方法依次把 NE555、数码管、晶振以及多个电阻、电容也添加到器件列表区里。然后再依次点击列表区里的器件,单击左键把他们放到绘图区,右键选中元件,并编辑其属性,合理布局后,进行连线。连线时当鼠标的指针靠近一个对象的引脚时,跟着鼠标的指针r ICs就会出现一个“”提示符号,点击鼠标左键即可画线了,需要拐弯时点击一下即可,在终点再点击确认一下就画出了一段导线,所有导线画完后,点击工具栏的 Inter-sheeTerminal.按钮,添加上电源和接地符号,原理图的绘制就完成了。1.13 频率计数器电路图 (1) NE555方波产生信号电路图:所产生方波公式:T1=0.693(RA+RB)*C T2=0.693RB*CF=1.433/(RA+2RB)*C图3.1 NE555方波信号产生电路原理图老师评:555不属于频率计,放在这里当信号源,方便验收时演示频率计测频率,制作频率计时频率要专用信号发生器,以便校准自制的频率计(2)频率计数器系统原理图方波信号产生电路NE555的Q脚接TO计数器,以使T0完成对方波的计数功能。AT89C51单片机PO.0-P0.7口接数码管的显示段,P2.0-P2.3接四段的数码管选择口。XTAL1和XTAL2接上12MHZ的晶振。即振荡周期=1/12us;时钟周期=1/6us;机器周期=1us。图3.2设计频率计数器系统原理图软件设计1.14 程序流程图设计定时器初始化启动定时器计数器计时1s计算计数器T0的计数计算后将T0清零,继续计数结束开始将T0的计数值显示到数码管 图4.1 系统程序流程图1.15 程序设计内容程序设计内容 (1) 定时/计数器T0和T1的工作方式设置,由图可知,T0是工作在计数状态下,对输入的频率信号进行计数,但对工作在计数状态下的T0,最大计数值为fOSC/24,由于fOSC12MHz,因此:T0的最大计数频率为250KHz。对于频率的概念就是在一秒只数脉冲的个数,即为频率值。所以T1工作在定时状态下,每定时1秒中到,就停止T0的计数,而从T0的计数单元中读取计数的数值,然后进行数据处理。送到数码管显示出来。(2) T1工作在定时状态下,最大定时时间为65ms,达不到1秒的定时,所以采用定时5ms,共定时200次,即可完成1秒的定时功能。1.16 源程序设计(1)设置定时器工作方式,开中断和定时器:TMOD=0x15; /设置定时器启动模式TH0=0; TL0=0; TH1=(65536-5000)/256; TL1=(65536-5000)%256; TR1=1; TR0=1; / 启动定时器ET0=1; ET1=1; /启动两个中断EA=1; /开中断 由前面可知工作方式寄存器TMOD的值和TH0、TL0的值,ET0是T0溢出中断允许位,所以ET0=1表示允许T0中断;要引入中断,所以必须开总中断,所以EA=1;TR0是T0定时器运行控制位,置1表示启动T0。(2)TO计数子程序:void t0(void) interrupt 1 using 0 T0count+; 中断号1(3)T1定时子程序: void t1(void) interrupt 3 using 0 TH1=(65536-5000)/256; TL1=(65536-5000)%256; timecount+; if(timecount=200) TR0=0; timecount=0; flag=1; P2=0xff; P0=displaycodedispbufdispcount; P2=displaybitdispcount; dispcount+; if(dispcount=4) dispcount=0; 1.17 KeilC51进行源程序调试(1)启动Keil c51 (2)新建一个工程。Project菜单New project ,选择好我们要保存的文件夹后,键入Frist 保存。接着弹出CPU类型选择框,我们选择最常用的AT89C51,按确定。 (3)在工程中加入文件。新建一个文件,文件菜单FileNew,我们再选择:文件菜单FileSave As (另存为)弹出对话框后,我们文件名框中键入f.c(注意文件后缀名是 .c)保存。C文件建好啦。现在我们把文件加入到工程中去。 点击Target 1前面的+号,右键单击Source Group 1选择Add Files to Group ,Source Group 1,选择添加 Add。 图4.2 KeilC51下编辑成员创建工程与编辑源代码图4.3编译工程成功并生成Hex文件系统调试与仿真1.18 NE555方波信号产生电路所产生频率:F=1/0.693(R21+2RV)*C 图5.1 NE555方波信号产生电路图图5.2虚拟示波器仿真结果实物图自己设计的PCB图 附录A 仿真图附录B 程序代码程序代码:#include unsigned char code displaybit=0xfe,0xfd,0xfb,0xf7;/四
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工业互联网平台数据加密算法安全性评估与风险控制报告
- 2025年环保型建筑防水材料在工程项目中的应用策略报告
- 湖北省黄冈市2025年高三年级9月调研考试地理试题(含答案)
- 2025-2026学年第一学期9月(总第三次)模块诊断数学试题
- 中级主管护师基础知识(A型题)模拟试卷3(共250题)
- 幸福就是这么简单课件
- 新质生产力赋能体育非遗传承的实现路径
- 输电电缆故障课件
- 输液药物配合禁忌课件
- 个人住宅抵押权抵押登记撤销与担保责任合同
- 总包合同补充协议范本
- 儿童编发课件
- 商密网管理制度
- 《卒中患者吞咽障碍护理规范》团体标准解读
- 山东教育出版社小学五年级上册美术教案
- 机关健康知识讲座
- 半导体semi F81 中文版
- 2025年有限空间作业安全知识问答试题集
- 国家教育考试保密安全培训
- 电器特种作业培训课件
- 2025新高考数学核心母题400道(教师版)
评论
0/150
提交评论