1、 单片机课程设计 题 目 0099 计数器的设计 1 课程设计的目的 (1) 利用单片机定时器/计数器中断设计秒表,从而实现秒、十分之 一秒的计时。 (2) 综合运用所学的单片机原理与应用理论知识,通过实践加 强对所学知识的理解,具备设计单片机应用系统的能力。 (3) 通过本次课程设计加深对单片机掌握定时器、外部中断的设置 和编程原理的全面认识复习和掌握,对单片机实际的应用作进一步的了 解。 (4) 通过本次试验,增强自己的动手能力。认识单片机在日常生活 中的应用的广泛性,实用性。 明确学习目的,端正学习态度,提高对课 程设计重要性的认识,以积极认真的态度参加课程设计工作,按要求完 成规定的设
2、计任务。 2 设计思路 本实验利用单片机的定时器/计数器定时和计数的原理,通过采用仿 真软件来模拟实现。模拟利用 AT89C2052 单片机、LED 数码管以及各种 控制器件来控制表的计数以及计数的开启/暂停/继续与复位等。 利用单片 机 AT89S51 单片机来制作一个手动计数器,在 AT89S51 单片机的 P1.7 管脚接一个轻触开关,作为手动计数的按钮,用单片机的 P2.0-P2.7 接一 个共阴数码管,作为 00-99 计数的个位数显示,用单片机的 P0.0-P0.7 接 一个共阴数码管,作为 00-99 计数的十位数显示。 3 设计过程 3.1 方案论证 3.1.1 用单片机技术来
3、实现多功能定时计数器的控制 多功能定时计数器控制系统的原理。它主要由单片机、发光二极管、 晶振和双位数码管等部分组成。 1、总体描述 (1)单片机采用 STC89C52 型。 (2)数据显示电路:七段四位共阴极数码管,P1 口控制八位段码, P3.4 到 P3.7 控制四位码。 (3)数据输入电路:四个按键完成输入,一号键控制个位加 1,可以 实现从 1 加到 9;二号键控制十位加一;三号键控制百位加一; 四号键控制千位加一。 (4)功能指示电路:上电指示发光二极管,P26 口控制蜂鸣器报警 功能。 2、总体设计: 设计总体框架图如图 3-1 所示: 图 3-1 总体框架图 STC 89C52
4、 设 置 数 开始 计数 蜂鸣 器 3.1.2 最小控制系统的设计 STC89C52 单片机最小系统包括晶体振荡电路、复位开关和电 源部分。图 3-2 为 STC89C52 单片机的最小系统: 图 3-2 单片机最小控制系统 复位口为 P3.0 口,当 RST 引脚有一个高电平并维持两个机器周期, 则 CPU 就可以响应并将系统复位。需要 200 欧,1000 欧电阻各一个, 22 微法电容一个,按键一个。时钟电路需要在 XTAL1,2,两个端口跨 接石英晶体及两个电容,电容一般取 30pF 左右。 3.2 电路的设计 3.2.1 指示电路 图 3-3 蜂鸣器电路 3.2.2 数码管显示电路
5、图 3-4 数码管电路 我的数码管为共阴极,八段选端接 P1 口,四个位选端接 P3 口,如 上图所示。 3.2.3 键盘输入 图 3-4 键盘输入 上图为 3*3 矩阵键盘扫描电路的接法,三行分别相连接 P2.5,P2.4, P2.3 口,三列分别相连接 P2.2,P2.1,P2.0 口。先给所有行线一个低电 平,然后将线口的电平状态读入单片机,如果有按键按下,总有一根线 电平被拉至低电平,从而使输入不全为 1. 判断键盘中哪一个键被按下是通过将行线逐行配置低电平后,检查列 输入状态实现的。方法是:依次进给低电平,然后检查所有列状态,称 行扫描。如果全为 1,则所按下的键不在此行,如果不全为
6、 1,则所按下 的键必在此行,而且是在与零电平线相交的交点上的那个键。 3.2.4 复位电路 图 3-5 复位电路 3.2.5 总原理图 3-6 电路图设计 编程: #include Unsignecharcode LEDcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; unsigned char Count; sbit SP1=P17; void delay10ms(void) unsigned char i,j,k; for(i=5;i0;i-) for(j=4;j0;j-) for(k=248;k0;k-); void main (void) Count=0; P0=LEDcodeCount/10; P2=LEDcodeCount%10; while(1) if(SP1=0) delay10ms(); if(SP1=0) Count+; if(Count=100) Count=0;