十字路口红绿灯单片机课程设计.docVIP

  • 91
  • 0
  • 约1.03万字
  • 约 15页
  • 2017-02-12 发布于湖北
  • 举报
黄河科技学院课程设计任务书 工 学院 机械 系 机械设计制造及其自动化 专业 10 级 班 学号 姓名 指导教师 题目: 彩灯控制器的设计 课程: 单片机课程设计 课程设计时间 2013年 10月28日 至2013年11 月 10 日 共 2 周 一、设计要求: 利用AT89C51单片机的4位数字加法计算器,能进行加减运算。×4键盘,键盘定义十个数字键,六个功能键,使用串行动态显示显示运算结果。主程序进行初始化,采用行列扫描进行查表得出键值,每次按键后调用显示子程序。 主要单元电路的设计 复位电路 复位电路采用上电复位与手动复位相结合的方案。上电复位时,上电瞬间RST端的电位与VCC相同,即为高电平,随着充电电流的减小,RST端的电位逐渐下降。只要高电平保持时间足够长,就可以使AT89C52有效地复位。手动复位时,按下复位按钮,电容C1通过R2电阻迅速放电,使RST端迅速变为高电平,复位按钮松开后,电容通过R和内部下拉电阻放电,逐渐使RST端恢复为低电平。电路如图所示 晶振电路 晶振电路是单片机的心脏,它用于产生单片机工作所需要的时钟信号,晶振电路给数字钟提供一个频率稳定准确的方波信号,可保证数字钟的走时准确及稳定,晶振电路如图 键盘电路的设计 键盘可分为两类:编码键盘和非编码键盘。编码键盘是较多按键(20个以上)和专用驱动芯片的组合,当按下某个按键时,它能够处理按键抖动、连击等问题,直接输出按键的编码,无需系统软件干预。通用计算机使用的标准键盘就是编码键盘。当系统功能比较复杂,按键数量很多时,采用编码键盘可以简化软件设计。但大多数智能仪器和电子产品的按键数目都不太多(20个以内),为了降低成本和简化电路通常采用非编码键盘。非编码键盘的接口电路有设计者根据需要自行决定,按键信息通过接口软件来获取。本课题需要的是16个按键,故选择用非编码键盘。 计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。矩阵键盘采用四条I/O 线作为行线,四条I/O 线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为4×4个。这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率。 建立键码值,建立键值码表TABLE如下: 0CH 08H 04H 00H 0DH 09H 05H 01H 0EH 0AH 06H 02H 0FH 0BH 07H 03H 对应的键盘按键为: × 8 4 0 ÷ 9 5 1 = + 6 2 功能 - 7 3 硬件电路设计图 用P1.0~P1.3作为行扫描输出,P1.4~P1.7作为列扫描输入,P0.0~P0.3作为键值码输出送出译码器7447,7447是美国仙童公司生产的BCD码到7段数码管的译码器驱动芯片。它负责将4位BCD码十进制数转换成对应的7段数码管信号,送到数码管的7位段选输入端。译出的显示码送入数码管的段驱,P0.4~P0.6控制译码器74LS138,74LS138译码器负责数码管显示扫描时依次通过译码选中数码管中,译码输出控制数码管的位驱。电路图如下图所示: 软件部分设计 程序工作过程如下: (1)首先赋予显示缓冲初始值‘00’,并把数据存储单元清零。 (2)主程序调用键盘扫描子程序,判断键值,是数字第一次直接赋予34H单元,如是第二次输入数字,则把第一次值乘十后与第二次值相加,结果存储到33H单元,如是第三次输入数字,则把前两次值乘十后与第三次值相加,结果存储到32H单元,在等待运算符号的按下,按下等于号就直接计算并显示,如加减乘除就运算后把按键次数清零,表示可以输入下一操作数,与第一次相同,并等待等于键按下。清零键则不管在任何情况下都清零,相当于软复位。 (3)在扫描完键盘后,调用数据显示转换子程序把值转换为七段码。 (4)调用数码管动态显示子程序,显示数值,重新循环。 系统总流程图 首先初始化参数,送LED三位显示“0”,其它位不显示。然后扫描键盘看是否有键输入,若有,读取键码。判断键码是数字键、清零键还是功能键,是数值键则送LED显示并保存数值,是清零键则做清零处

文档评论(0)

1亿VIP精品文档

相关文档