当前位置:首页 > 基于AT89C51单片机交通灯控制论文 - 图文
毕业设计用纸
图4-1系统总的流程图
4.2子程序模块设计
按键模块的控制是调用中断来实现控制的,独立式键盘的实现方法是利用单片机I/O口读取口的电平高低来判断是否有键按下。将常开按键的一端接地,另一端接一个I/O 口,程序开始时将此I/O口置于高电平,平时无键按下时I/O口保护高电平。当有键按下时,此I/O 口与地短路迫使I/O 口为低电平。按键释放后,单片机内部的上拉电阻使I/O口仍然保持高电平。我们所要做的就是在程序中查寻此I/O口的电平状态就可以了解我们是否有按键动作了。
保持中断 保持中断 东西绿灯亮 南北红灯亮 东西绿灯亮 南北红灯亮 南北通行 INT0 INT1 东西通行
中断返回 中断返回 图4-2中断子程序
定时中断子程序是本设计的重点,定时器一但启动,它便在原来的数值上开始加1
计数,若在程序开始时,我们没有设置TH0和TL0,它们的默认值都是0,假设时钟频率为12MHz,12个时钟周期为一个机器周期,那么此时机器周期为1us,记满TH0和TL0就需要216 -1个数,再来一个脉冲计数器溢出,随即向CPU申请中断。因此溢出一次共需65536us,约等于65.6ms,如果我们要定时50ms的话,那么就需要先给TH0和TL0装一个初值,在这个初值的基础上记50000个数后,定时器溢出,此时刚好就是50ms中断一次,当需要定时1s时,我们写程序时当产生20次50ms的定时器中断后便认为是1s,这样便可精确控制定时时间啦负责完成数码管输出数据刷新和各个状态的处理切换。中断子程序包括
共 25 页 第 17 页
毕业设计用纸
数码管输出数据刷新程序和各状态处理程序。中断程序的流程图如图所示。 启动定时器中断 设置字型码和字位码,完成数码管倒计时显示 定时中断入口 定义1s 初始化定时器0 计数变量自加1 图4-3 定时中断流程图
关闭定时器0 4.3 KEIL51的应用
硬件与软件的设计一般都要分别借助一些软件,如我们通常用作电路设计与制版的Protel,MCS-51程序开发工具KEIL等。
Keil C51 uVision2集成开发环境是基于80C51内核的软件开发平台,支持工程建立、程序的编译与链接、软件仿真、硬件仿真、目标代码的生成等功能。Keil C51编译器在产生代码的准确性和效率方面达到了较高的水平。
与大多数集成开发环境类似,Keil C51集成开发环境也是用工程的方法来管理文件,在一个工程文件中源程序(C51程序、汇编程序)、头文件等都可以进行统一管理。
安装运行KEIL51,使用KEIL的开发工具进行项目开发过程,与其他软件开发项目的过程基本上相同:
创建C 语言或汇编语言的源程序。 编译或汇编源文件。 纠正源文件中的错误。
从编译器和汇编器连接目标文件。 测试连接的应用程序。
4.4 protel99se的应用
Protel软件是由澳大利亚的Protel Technolgy公司推出的,一直是从事
印刷电路板设计的首选软件。在1990年,Protel软件由DOS平台发展到Windos
共 25 页 第 18 页
毕业设计用纸
平台,是世界上第一家运行在Windos平台的EDA(电子设计自动化)软件。Protel 99 SE是由Protel 99版本发展而来的,是基于Windos环境下的EDA软件。
Protel 99 SE主要的功能模块
电路原理图(Schematic)设计模块。该模块主要包括设计原理图的原理图编辑器,用于修改、生成原件符号的元件库编辑器以及各种报表的生成器。
印刷电路板(PCB)设计模块。该模块主要包括用于设计电路板的PCB编辑器,用于PCB自动布线的Route模块。用于修改、生成元件封装的元件封装库编辑器以及各种报表的生成器。
可编程逻辑器件(PLD)设计模块。该模块主要包括具有语法意识的文本编辑器、用于编译和仿真设计结果的PLD模块。
电路仿真(Simulate)模块。该模块主要包括一个功能强大的数/模混合信号电路仿真器,能提供连续的模拟信号和离散的数字信号仿真。
共 25 页 第 19 页
毕业设计用纸
第五章 问题与解决方法
本次设计的硬件电路主要由单片机STC89C51组成,在调试电路的过程中也碰到了一些问题。
问题一:单片机无法正常下载程序。
调试步骤:
(1)检查单片机和串口电路是否连接错。 (2)检查焊接电路是否有虚焊和漏焊。 问题二:数码管显示不正常。 调试步骤:
检查数码管的型和位是否接的正确。
故障原因:焊接时过于马虎,由于数码管较多,数码管的管脚焊接错误。 解决方案:重新焊接。
共 25 页 第 20 页
共分享92篇相关文档