基于单片机的099计数器设计.doc
文本预览下载声明
计数器设计
一、实习目的与要求
1、设计的目的
(1)掌握51系列单片机的基本硬件结构及工作原理。
(2)掌握51系列单片机的汇编语言及基本程序设计方法。
(3)学习并掌握使用51系列单片机开发控制系统的基本步骤及方法。
(4)掌握51系列单片机键盘显示电路的编程方法。
2、设计要求
(1)设计十进制0~99的计数器,采用按键计数,数码管显示。
(2)采用按键产生计数值:按下按键,计数值增加1;
(3)采用2位数码管显示,计数初值为0;
(4)当计数达到99时,再次按下按键,计数值从1开始增加;
(5)设计一个按键,用于清空计数值。
总体设计方案
1、计数器的基本原理
利用AT89S51单片机来制作一个手动计数器,在AT89S51单片机的P3.2管脚接一个轻触开关,作为手动计数的按钮。再利用AT89S51单片机的复位键进行清零处理。同时51单片机的P1.0-P1.7接共阴数码管的位选,作为0-99计数选择的位置。用单片机的P0.0-P0.7接共阴数码管的段选,作为00-99计数的显示,总体结构框图如图1-1所示。
AT89S51 单片机
AT89S51 单片机
电源
数码管显示 键盘
数码管显示
键盘
图1-1
模块电路分析
(1) STC89C51单片机:它是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及STC8951引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功
能强大的微型计算机的STC8951可为许多嵌入式控制应用系统提供高性价比的解方
案。STC8951具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,128bytes
的随机存取数据存储器(RAM),32个外部双向输入输出(I/O)口,5个中断优先级,2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信,片内时钟振荡器。其单片机的外围引脚有40个,分别是:第20脚和40脚分别是电源,即
GND和Vcc;第9脚是复位脚RST;第18脚是时钟XTAL2脚,片内振荡电路的输出端;第19脚是时钟XTAL1脚,片内振荡电路的输入端;第29脚:~PSEN脚,当访问外部程序存储器时,此引脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上;第30脚:ALE/~PROG,当访问外部数据存储器时,ALE(地址锁存)的输出用于锁存地址的低字节;第31脚:~EA/Vpp为程序存储器内外部选通信号;P0^0-P0^7.P1^0-P1^7.P2^0-P2^7.P3^0-P3^7这32个引脚为数据的输出及输入引脚,即I/0口。
(2) 键盘模块:它是4个独立式键盘,其特点是一键一线,各键相互独立,每个按键各接一条I/O口线,通过检测I/O输入线的电平状态,可以很容易的判断那个键被按下,如图2-1所示。
图2-1
电源和复位电路:AT89S52需5V电压,所以可以采用USB接口的5V电源对其供电,复位电路可采用上电复位、按键电平复位、按键脉冲复位3种,本次采用按键电平复位,如图2-2所示。
图2-2
(4) 显示模块:该模块由8位8段共阳极数码管组成,由8个PNP型三极管分别驱动其发光,从左至右位控分别接于单片机的P1.7-P1.0中上,段控a-dP接于单片
机的P0.0-P0.7口上,使用动态显示从右向左循环点亮每一位数码管。如电路原理
图中的数码管电路如图2-3所示。
图2-3
总的原理图如图2-4所示
图2-4
三、软件编程
1、程序流程图
主程序开始初始化,然后键盘扫描,复位电路,计数器。当有键盘按键按下去时,调整计数器值,数码管显示新值。当有复位键按下去时,计数器复为初值,重新按键计数。当计数器计到100时初值复位1,又一次开始按键计数,程序流程图如图3-1。
开始
开始
计数加1是否有键按下 调用键盘扫描程序
显示全部