课程设计(论文)说明书
题 目: 计数器 院 (系): 信息与通信学院 专 业: 电子信息工程 学生姓名: ******* 学 号: ************ 指导教师: 唐 * *
职 称: 讲师
2013 年 12 月注:论文附有原理图和PCB图。点击下载
日
24
桂林电子科技大学课程设计(论文)报告用纸
摘 要
随着计数器技术的不断发展与进步,计数器的种类越来越多,应用的范围越来越广, 现计数器的种类以增加到:电磁计数器、电子计数器、机械计数器(拉动机械计数器、转动机械计数器、按动机械计数器、测长机械计数器)、液晶计数器等。
本课设设计的是由AT89S52单片机控制的计数器.通过驱动电路驱动两个共阴数码管进行显示数字。另外,在计数的方式上通过两个轻触开关进行控制是手动计数还是自动计数。在计数过程中可以通过复位按键进行复位,然后在进行下一次的计数。计数范围00~59,进行软件编程是本课设设计的是手动计数时从59开始,没按一次P3^7所接的轻触开关就减一,直到减到00又跳回59依次进行。而当P3^6外接的轻触开关按下一次就进行自动从00~59的加一计数。再按一次数值停止自动,保持显示原数,再按下接着进行自动计数。
关键词:单片机;计数器; 数码管;
_________________________________________________________________________________________________ 2
桂林电子科技大学课程设计(论文)报告用纸
Abstract
As technology continues to counter the development and progress, the type of the counter more and more increasingly wide range of applications, in order to counter the kind now: electromagnetic counters, electronic counters, mechanical counters (pulling mechanical counter, counter rotating machinery , pressing the mechanical counter, length measuring mechanical counter), LCD counters.
This course is designed to set up controlled by the microcontroller AT89S52 counter through the drive circuit to drive two common cathode LED display numbers. Further, the count mode switch via two touch controls are counted manually or automatically counting. In the counting process can be reset by a reset button, and then during the next count. Count range 00 to 59, is a software program designed for this course is set up from the 59 to start the manual count, not the connected by a P3 ^ 7 touch switch on minus one, until reduced to 00 and 59 to jump back in turn. When P3 ^ 6 external touch switch is pressed once automatically from 00 to 59 plus one count. Press again to stop the automatic value, maintaining the original number is displayed, press followed by automatic counting.
Keywords: microcontroller; counters; digital;
_________________________________________________________________________________________________ 3
桂林电子科技大学课程设计(论文)报告用纸
目 录
1 硬件电路的设计………………………………………………………………1 1.1设计原理图……………………………………………………………………1 1.2 主控部分的选择……………………………………………………………1 2系统的功能要求及方案选择…………………………………………………1 2.1系统功能要求…………………………………………………………………1 2.2方案选择……………………………………………………………………2 3 硬件系统设计介绍……………………………………………………………2 3.1 系统芯片介绍………………………………………………………………2 3.1.1 单片机AT89S52功能介绍………………………………………………2 3.1.2数码管的介绍………………………………………………………………5 3.2 硬件设计……………………………………………………………………6 3.2.1 复位电路…………………………………………………………………6 3.2.2 晶振电路…………………………………………………………………8 3.2.3 最小系统电路……………………………………………………………9 3.2.4 数码管显示电路…………………………………………………………10 3.2.5 数码管驱动电路…………………………………………………………10 3.2.6 单片机P0I/O上拉………………………………………………………10 4 系统软件设计……………………………………………………………… 11 4.1主程序流程图………………………………………………………………11 4.2计数器程序…………………………………………………………………12 4.3 Proteus仿真………………………………………………………………14 5 总结……………………………………………………………………………15 谢 辞…………………………………………………………………………16 参考文献…………………………………………………………………………17 附 录……………………………………………………………………………18
_________________________________________________________________________________________________ 4
桂林电子科技大学课程设计(论文)报告用纸
1 硬件电路的设计
1.1 设计原理图
图(1)电路原理图
1.2 主控部分的选择
本设计采用的主控部分是常见的单片机AT89S52,实现控制与处理的功能。单片机具有资源丰富、速度快、编程容易等优点。利用单片机内部的随机存储器(RAM)和只读存储器(ROM)及其引脚资源,外接数码管,通过轻触开关接地输入到P3^7实现计数脉冲的传输;另外,利用P3^6的高低电平和软件编程启动或停止定时器零进行00~59的计数。每隔一秒记一次;
2系统的功能要求及方案选择
2.1系统功能要求 要求:
1.计数范围:00~59 2.精确显示数字 应解决问题:
_________________________________________________________________________________________________ 1
桂林电子科技大学课程设计(论文)报告用纸
基于单片机构成的产品自动计数器研究的主要内容包括:如果构成检测电路、51单片机用何种方式对外部计数脉冲进行计数显示控制、LED显示驱动模块的选择、51单片机的扩展。在这个设计中主要需要解决的问题便是如何提高51单片机的抗干扰能力以及稳定性。
2.2方案选择
方案一:
采用多种数字逻辑电路来实现逻辑控制、主门、门控、计数单元的设计要求,这样设计的电路整体比较复杂,而且不宜完成发挥部分的功能要求。所以方案一不采用。 方案二:
可以采用FPGA来实现逻辑控制、主门、门控、计数单元的设计要求,并且设计方便,但由于对FPGA的技术原理掌握不够熟练,所以放弃方案二。 方案三:
系统采用8051为核心的单片机控制系统,实现原理图中的逻辑控制、主门、门控、计数的设计要求单片机计数器的方式控制寄存器TMOD中的GATE位=1时,可以很方便的进行INT0引脚的外部输入信号的时间间隔测量。且单片机的控制电路很容易实现扩展。故采用方案三。
3 硬件系统设计介绍
3.1 系统芯片介绍
3.1.1 单片机AT89S52功能介绍
AT89S52 是Atmel公司生产的一种低功耗、高性能CMOS 8位微控制器,具有8 位在系统可编程Flash存储器。AT89S52使用Atme公 司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash 允许程序存储器在系统可编程,也适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
其主要功能列举如下:
1、拥有灵巧的8位CPU和在系统可编程Flash
2、晶片内部具时钟振荡器(传统最高工作频率可至 12MHz) 3、内部程序存储器(ROM)为 8KB
_________________________________________________________________________________________________ 2
桂林电子科技大学课程设计(论文)报告用纸
4、内部数据存储器(RAM)为 256字节 5、32 个可编程I/O 口线 6、8 个中断向量源
7、三个 16 位定时器/计数器 8、三级加密程序存储器 9、全双工UART串行通道
下面简单介绍AT89S52 所用到引脚的功能:
图(2)AT89S52芯片
AT89S52管脚图
VCC:AT89S52电源正端输入,接+5V。 GND:接地。 XTAL1:
单芯片系统时钟的反相放大器输入端。 XTAL2:
系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以工作了,此外可以在两引脚与地之间加入一 30PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。
RESET:
AT89S52的复位引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S52便能完成系统重置的各项动作,使得
_________________________________________________________________________________________________ 3
桂林电子科技大学课程设计(论文)报告用纸
内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。
EA/Vpp:
寻址外部ROM控制端。低有效 片内有ROM时应当接高电平。 故此课设中接高电平(VCC) P0.0~P0.7:
端口0是一个8位宽的开路汲极(Open Drain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0~A7)及数据总线(D0~D7)。设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0~A7,再配合端口2所送出的A8~A15合成一完整的16位地址总线,而定址到64K的外部存储器空间。此处外接上拉电阻,供代表十位的数码管使用;
P2.0~P2.7:
端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当做一般I/O端口使用外,若是在AT89S52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当做I/O来使用了。此处外接代表个位的数码管。
P3.0~P3.7:
端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。用排针引出,用于扩展。同时,P3^6,P3^7与轻触开关连接,用于控制计数器脉冲输入。
其引脚分配如下:
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,外部数据存储器的读取信号。
_________________________________________________________________________________________________ 4
桂林电子科技大学课程设计(论文)报告用纸
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
3.1.2 数码管的介绍
在本任务中用两位数码管显示当前数值的十,个,采用动态显示方式。两位数码管的相同段并联在一起,由一个6位I/O(P1口)输出字形码控制显示某一字形,每个数码管的公共端由另外一个I/O口(P0口)输出的字位码控制,即数码管显示的字形是由单片机I/O口输出的字形码确定,而哪个数码管点亮是由单片机I/O口输出的字位码确定的。数码管有共阴极和共阳极两种,
图(3)
对于共阳数码管,字形驱动输出0有效,字位驱动输出1有效;而对于共阴数码管则相反,即:字形驱动输出1有效,字位驱动输出0有效
数码管使用条件:
a、使用电压段:根据发光颜色决定; b、小数点:根据发光颜色决定
c、使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA 峰值电流100mA
数码管使用注意事项说明:
(1)数码管表面不要用手触摸,不要用手去弄引角; (2)焊接温度:260度;焊接时间:1s (3)表面有保护膜的产品,可以在使用前撕下来。
_________________________________________________________________________________________________ 5
桂林电子科技大学课程设计(论文)报告用纸
3.2 硬件设计
本设计主要由单片机、数码管、轻触开关等组成。其中轻触开关用于控制输入脉冲进行计数。数码管由P0和P2口控制,由NPN管9013驱动。由于数码管静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA 峰值电流100mA;一般三极管放大倍数都能达到200以上(如9013,8050),则Ib只有1mA就能使三极管饱和导通,所以R = (5-0.7)/1 = 4.3K ,经过仿真上为了使三极管可靠饱和导通,可取R = 1~2K 。这里B极选用1K,C极选用220奥姆(限流保护作用)
3.2.1 复位电路
单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。
1、手动按钮复位
手动按钮复位需要人为在复位输入端RST上加入高电平(下图)。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。
图(4)手动复位
_________________________________________________________________________________________________ 6
桂林电子科技大学课程设计(论文)报告用纸
2、上电复位
AT89S52的上电复位电路如下图所示,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电子到地即可。对于cmos型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1uF。上电复位的工作过程是在加电时,复位电路通过电 容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。在下图的复位电路中,当Vcc掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。
图(5) 上电复位
_________________________________________________________________________________________________ 7
桂林电子科技大学课程设计(论文)报告用纸
3、混合复位电路
将上电复位电路和手动复位电路结合到一起构成,通常使用的都是这种混合复位电路。此设计正采用此复位方式;(下图)
图(6)复位电路
3.2.2 晶振电路
晶振是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振。由于晶体自身的特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,由于晶振等效为电感的频率范围很窄,所以即使其他元件的参数变化很大,这个振荡器的频率也不会有很大的变化。
晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。
一般的晶振振荡电路都是在一个反相放大器(注意是放大器不是反相器)的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量值就应该等于负载电容,请注意一般IC的引脚都有等效输入电容,这个不能忽略。
_________________________________________________________________________________________________ 8
桂林电子科技大学课程设计(论文)报告用纸
一般的晶振的负载电容为15p或12.5p ,如果再考虑元件引脚的等效输入电容,则两个15p到33p的电容构成晶振的振荡电路就是比较好的选择。这里选用11.0592MHZ的晶振和两个30p的电容;
图(7)晶振电路
3.2.3 最小系统电路
最小系统是51单片机工作的基本保障。由复位电路,晶振电路等主要部分组成。最小系统复位电路的极性电容C的大小直接影响单片机的复位时间,一般采用10~30uF,51单片机最小系统容值越大需要的复位时间越短。 晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。 最小系统起振电容C4、C3一般采用15~33pF,并且电容离晶振越近越好,晶振离单片机越近越好.此处。根据实际选用了11.0952MHZ的晶振。C3 c4选用30p;复位电容选用10p。
图(8)单片机最小系统电路
_________________________________________________________________________________________________ 9
桂林电子科技大学课程设计(论文)报告用纸
3.2.4 数码管显示电路
此显示电路由两个单体七段共阴数码管组成。分别代表十位和个位;当P3^7有低电平输入是数码管加1或者当P3^6有脉冲输入是启动定时器0进行自动计数;显示范围从00到59;
图(9)数码管
3.2.5 数码管驱动电路
由于此共阴数码管,静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA 峰值电流100mA;一般三极管放大倍数都能达到200以上(如9013,8050),则Ib只有1mA就能使三极管饱和导通,所以R = (5-2)/0.001 = 3K ,经过仿真上为了使三极管可靠饱和导通,可取R = 1~2K 。这里B极选用1K,C极选用220奥姆(限流保护作用);当B极给高电平是即可驱动数码管显示工作。
图(10)数码管驱动电路(9013) 3.2.6 单片机P0口上拉
由于P0口内部没有上拉电阻,是开漏的,不管它的驱动能力多大,相当于它是没有电源的,需要外部的电路提供,绝大多数情况下P0口是必需加上拉电阻的。 1.一般51单片机的P0口在作为地址/数据复用时不接上拉电阻。
2.作为一般的I/O口时用时,由于内部没有上拉电阻,故要接上上拉电阻!!
_________________________________________________________________________________________________ 10
桂林电子科技大学课程设计(论文)报告用纸
3.当p0口用来驱动PNP管子的时候,就不需要上拉电阻,因为此时的低电平有效; 4.当P0口用来驱动NPN管子的时候,就需要上拉电阻的,因为此时只有当P0为1时候,才能够使后级端导通。
这里用P0作I/O口用,故接此上拉电阻;
图(11)上拉电子
4 系统软件设计
本次设计的主要有最小系统和三极管驱动电路及数码管显示电路构成,编程流程简单明了;使用的是Keil4软件进行编程,因为常用的单片机程序设计编译软件都是使用它。运行生成hex文件后,运用AVR_fighter软件烧写到AT89S52芯片;
4.1 主程序流程图
主程序先是开始,然后赋初值,本设计采用的是动态显示,所以在赋玩初值后显示程序不断被调用。
开始 初始化
计数----(按键)
显示
主程序流程图
_________________________________________________________________________________________________ 11
桂林电子科技大学课程设计(论文)报告用纸
4.2 计数器程序
#include uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar num,num0; void delayms(uint xms)//延时函数 { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } void display(uchar numdis)//显示函数 { P0=table[numdis/10]; P2=table[numdis%10]; } void init()//初始化函数 { TMOD=0x01; //设置定时器0为工作方式1 TH0=(65536-45872)/256;//装初值50ms一次中断 TL0=(65536-45872)%256;// EA=1; //开总中断 ET0=1;//开定时器0中断 } void keyscan()//P3^7与P3^6管脚按键检测函数 { if(key==0)//如果P3^6按键按下延迟20毫秒,消抖处理 delayms(20); _________________________________________________________________________________________________ 12 桂林电子科技大学课程设计(论文)报告用纸 if(key==0)//再次检测 { while(!key); } if(key1==0) delayms(20); if(key1==0) { if(num==0) } } } void main(void) { init(); while(1) { keyscan(); } } void t0() interrupt 1//定时器0,中断序号1 { TH0=(65536-45872)/256;//重装初值 TL0=(65536-45872)%256; num0++; if(num0==20)//如果到了20次,一秒到 { _________________________________________________________________________________________________ 13 TR0=~TR0;//启动或停止定时器0 num=60; num--; while(!key1); display(num); 桂林电子科技大学课程设计(论文)报告用纸 num0=0;//num清0再计20次 } } num++; if(num==60) num=0; 4.3 Proteus仿真 Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。一下仿真图正是运用proteus7.8进行的仿真;附图如下: Proteus7.8硬件仿真图 _________________________________________________________________________________________________ 14 桂林电子科技大学课程设计(论文)报告用纸 5.总结. 在本次课程设计过程中,我为能理解和应用专业课学习成果而感悟颇深,同时我也深深的感受到了基础知识的重要性。在以后的学习生活中切不可急于求成而忽略了基础的夯实,对一门系统学科,应该扎实的学习他的每一部分知识,充分利用各种实践环节,切实做到理论联系实践,学以致用。同样,通过这次课程设计我也体会到我们学习上的不足。课程设计的这段时间过得相当充实,在日后的学习与工作中,我仍将认真巩固对专业基础知识的学习,继续扎实的学习岩土工程专业知识。 _________________________________________________________________________________________________ 15 桂林电子科技大学课程设计(论文)报告用纸 谢 辞 在此,感谢老师给我们的悉心指导,让我在此次课设中更懂得了专业基础知识的重要性,在日后的学习与工作中,我仍将认真巩固对专业基础知识的学习,继续扎实的学习专业知识。愿老师工作顺利,身体健康! _________________________________________________________________________________________________ 16 桂林电子科技大学课程设计(论文)报告用纸 参考文献 [1] 《51单片机C语言教程》 郭天祥著 电子工业出版社 [2] 《电路分析基础》 赵家宾 电子工业出版社 [3] 《c语言程序设计》 谭浩强著 清华大学出版社 [4] 《MCS—51/96系列单片机原理及应用》 孙涵芳 北京航空航天大学出版社 [5]《数字电子技术基础》 阎石 高等教育出版社 [6]《模拟电子技术基础》 王卫东 电子工业出版社 _________________________________________________________________________________________________ 17 桂林电子科技大学课程设计(论文)报告用纸 附录: _________________________________________________________________________________________________ 18 因篇幅问题不能全部显示,请点此查看更多更全内容