单片机原理及应用

摘要:本文利用AT89C51单片机对 计数器程序进行设计,并利用数码管、开 关、电容、电阻、导线等硬件进行组装, 最终与单片机联系起来,使得计数器的计 数范围是0-99。设计第一个按键使数码 管显示的数字依次累加,再设计一个按键 使数字逐个倒退,最后一个按键可以实现 复位。这期间我们还需要将程序设计出来 并进行编写,连接电路并进行测试,若出 现问题,则需要对其进行反复的修改和测 试,最终实现本次设计的基本要求。

该时钟以AT89C51为主控芯片,采用C语言进行编程设计。由于计数器的计数范围为0-99,可以用2位LED数码管来显示计数值,采用动态显示方式,P2口做段选口,输出段码,P3口做位选口,输出位选信号,P1口接按键。在软件设计上,设置一个软件计数器,用来统计按键的次数,然后将计数值的个位、十位所对应的段码送到LED数码管中显示。总体电路如图所示:

计数誥的硬件部分主要包括电容、电阻、电源、按键、数码管、导线、开关等,反映在ISIS7professional仿真软件中则是:RES、AT89C5KBUTTON.CAP、CAP-ELEGCRYSTAL7SEG-MPX2-CA等。我们需对电路进行模拟仿真,如果模

拟成功,然后在PCB电路板上搭线、焊接、连接电路。如果模拟失败则需重新设计电路,再依次进行上述流程,

首先对两位数码管的数字分别命名并设置起始数值与终止值,其次对个位与十位数字设置显示函数,然后再设置按键流程,按键释放时,刷新数码管,初次判断按键是否按住时,设计加函数并加一个延时函数,再次判断按键按住时,依次取岀十位、取出个位,最后与之前设计思路一样对另外两个按钮设置减函数和清零函数,将所有程序语言输入KeiluVision4软件进行模拟运行,检测成功以后导入单片机。

本实验利用单片机的定时器/计数器定时和记数的原理,通过釆用proteus仿 真软件来模拟实现。模拟利用AT89C51单片机、LED数码管以及控件来控制表 的计数以及计数的开启/暂停/继续与复位!

其中有三个数码管用来显示数据,二个数码管显示秒个位和十位,另一个数 码管显示十分之一秒,十分之一秒的数码管计数从09,满十进一后显示秒的数 码管的数字加一,并且十分之一秒显示清零重新从零计数。当计数超过范围是所 有数码管全部清零重新计数。

AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP (In-system programmable)的可反复擦写1000次的Flash只读程序内存,器 件釆用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系 统及80C51引脚结构,芯片内集成了通用8位屮央处理器和ISP Flash存储单元, 功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比 的解决方案。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高旦价廉的 方案。其工作电压在4. 5-5V, 一般我们选用+5V电压。外形及引脚排列如图 2所示

本文讨论了基于AT89C51单片机的计数器设计,该设计体现了AT89C51的可控性与简易性等诸多特点。AT89C51单片机操作简单,便于维护且稳定性很高,它是作为连接电路与程序的理想中端。但它亦有不少缺点,其中之一就是应对复杂功能设计时设计较为繁琐,这些问题我们值得考虑。本次设计是在老师的指导下完成的,我明白自身还存在很多不足,以后的学习中,我们将学到不同的单片机原理,希望可以不断进步。作为一个初学者,笔者对AT89C51单片机的掌握程度比较有限,本文可能存在一些疏漏的地方,虚心诚受广大同仁和各位老师的批评指正。

Be the first to reply

发表回复

您的电子邮箱地址不会被公开。