河南理工大学本科课程设计报告
的外部数据存储器时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器时,P2口线上的内容在整个访问期间不改变。Flash编程和程序校验期间,P2亦接收低8位地址。
P3口:一个带内部上拉电阻的8位双向I/O口。P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写“1”时,它们被内部的上拉电阻把拉到高电并可作输入端口。作输入端口使用时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口线外,还作特殊功能口。P3口的第二功能引脚分配如下:
P3.0:RXD,串行通信输入。 P3.1:TXD,串行通信输出。 P3.2:INT0,外部中断0输入。 P3.3:INT1,外部中断1输入。 P3.4:T0,计时计数器0输入。 P3.5:T1,计时计数器1输入。
P3.6:WR:外部数据存储器的写入信号。 P3.7:RD,外部数据存储器的读取信号。
2.3霍尔测速单元
霍尔测速单元如图2-3所示由霍尔传感器感应车轮上磁铁的磁场来发送脉冲,车轮每转动一周,霍尔传感器发射一个脉冲,通过单片机外部中断0入口P3.2送入单片机。
图2-3 霍尔测速单元
P32 STC89C52 M 车轮 小磁铁 霍尔传感器
- 6 -
河南理工大学本科课程设计报告
2.4数码管显示单元
数码管显示单元如图2-4所示。
图2-4数码管显示单元电路
本设计显示单元为四位共阴极八段数码管动态显示,四个位选端W1~W4分别与P00~03连,八个段选A~G及DP分别与P10~P17相连。显示路程和金额时第三位后小数点亮,显示等待时间时第二位后小数点亮。
2.5按键单元
按键单元电路如图2-5所示。
- 7 -
河南理工大学本科课程设计报告
图2-5 按键单元电路
其中,H1、H2分别接P36、P37,L1~L3分别接P05~P07。1号按键用来切换显示路程和金额,2号按键用来进行清零操作,3号按键用来进行启动和暂停操作,4号按键用来设置单双程模式,5键用来切换显示等待时间。
2.6 二极指示灯单元
二极指示灯单元电路如图2-6所示
图2-6 二极指示灯单元电路
其中D1~D5分别接P20~P24。.D1亮表示显示金额,否则显示路程。D2亮表示车速低于5公里/小时。D3亮表示启动,否则暂停。D4亮表示双程模式,否则为单程。D5亮表示显示等待时间,否则显示路程或金额。
- 8 -
河南理工大学本科课程设计报告
3 软件设计
3.1总体流程
软件系统可以大致分为五个大模块:初始化模块,按键扫描模块,中断与定时模块,数据计算模块及数码管显示模块。其中,键盘扫描和数码管显示采用查询方式,转速信号接收和等待计时采用中断方式,而指示灯由按键标志位控制。 总体流程如图3-1所示
暂停? Y 关中断 总价 结束 N Y 单双程? Y 标志位取反 N 数码管显示 数据计算 单双程? N 双程价 切换? N Y 标志位取反 键盘扫描 里程>3? 中断与定时初始化 N 起步价 Y 调用初始化 N 开始 清零? 初始化变量 Y 单程价
图3-1 软件系统总体流程
3.2初始化模块
初始化包括数据的初始化和中断与定时器的初始化。数据的初始化是对各据设定初值,中断与定时器的初始化是设定中断类型及工作方式并开中断。
3.3按键扫描模块
- 9 -
河南理工大学本科课程设计报告
按键扫描采用查询方式,当有按键按下时就对相应的标志进行取反,或调用其他子函数。在消抖过程中将数码管显示程序潜入,以保证显示的稳定。
3.4中断与定时模块
采用外部中断0来记录霍尔传感器发送的脉冲数,由定时器0进行定时采样测速。
3.5数据计算模块
计算程序根据里程数分别进入不同的计算公式。如果里程大于3公里,则执行公式:总金额=起步价+(里程-3)*单价+等待时间*等待单价;否则,执行公式:总金额=起步价+等待时间*等待单价。
对于里程数采用外部中断零来记录,车轮每转一周,霍尔传感器发一个脉冲然后进入中断子程序,对相应的变量进行更新。
对于速度的判断及等待时间的记录采用定时器零中断,设定10ms一个中断,然后判断车速,若小于5公里/小时,则开始记录等待时间。
3.6数码管显示模块
显示程序利用主函数内的循环,实现动态扫描显示。同时根据数码管余辉和人眼暂留现象,即可实现显示。本设计采用一个四位八段数码管来显示,金额及路程与等待时间的显示通过按键来切换。数据端用单片机P1口控制,片选端接在P0的低四位。
- 10 -