1、 1 课程设计任务书 20132014 学年第 一 学期 电气与信息工程 学院(系、部) 自动化 专业 1102 班级 课程名称: 单片机应用系统 设计题目: 出租车计费系统 完成期限:自 2013 年 11 月 11 日至 2013 年 11 月 22 日共 2 周 内 容 及 任 务 11 外部脉冲自动计数,自动显示。 111 设计一个 255 计数器:0255 计数,计满后自动清 0,重 新计数(在数码管中显示) 。 112 设计一个 50000 计数器:050000 计数,计满后自动清 0, 重新计数(在数码管中显示) 。 12 设计一个出租车计费系统: 起步价为 5 元(2km 以内
2、) ,2km 后,0.8 元/0.5km;要求每 500m 刷新计费一次,在 8 位数码管中,前四位显示数码管显示里程数,后 四位数码管显示价钱(角,元,十元,百元) 进 度 安 排 起止日期 工作内容 201311.11-2013.11.12 讲述设计内容及基本原理 2013.11.13-2013.11.18 进行系统的设计 2013.11.19-2013.11.22 进行系统的调试 主 要 参 考 资 料 1 肖申平主审. 单片机原理与应用系统设计. 电子工业出版社,2013. 指 导 教 师 (签字) : 年 月 日 系 ( 教 研 室 ) 主 任 ( 签字) : 年 月 日 2 一、设
3、计思路:一、设计思路: 1、255 计数:255 可用 8 位二进制数表示,故本设计可直接采用可以重装载的计数器 T0 模式 二进行计数。 然后对 TL1 的内容进行相应的二进制-十进制转换: 首先 TL1 的内容除以 64H, 所的商就是十进制的百位,然后用余数除以 0AH,所得的商就是十进制数的十位,余数即相 应的十进制的个位。接着将相应的十进制数进行译码,并在 LED 数码管上显示出来。每来一 个脉冲其显示的结果加一,直加至 255 然后 T1 重新开始计数。 2、50000 计数:可用 16 位二进制数表示,故本设计可采用可以重装载的计数器 T0 模式二进 行计数。然后进行二进制-十进
4、制转换:将 counter 除以 100000 的商是万位数字,然后用 余数除以 1000,所得的商就是千位数字,再将余数除以 100,所得的商是百位数字,然后将 余数除以 10 的商是十位数字,剩下的余数是个位数字。最后将十进制数进行译码,并在 LED 数码管上显示出来。每来一个脉冲其显示的结果加一,从 0 加至 50000 然后重新计数。 3、出租车计费系统:出租车计费系统可以在 50000 计数器的基础上设计,我们采用 6 位数码 管显示,前三位数码管显示里程数,单位分别是十公里、公里、0.1 公里;后三位数码管显 示累计钱数,单位分别为十元、元、角。设计 mile=counter*5
5、并且在公里数码管设置显示小 数点表示 0.5km 刷新一次。当 mile 小于等于 2km(即起步)时,钱数等于 5 元,而当 mile 大于 2km 时,里程数减去 2km 再乘以 0.8,表示每加 500 米,钱数乘以 0.8 元,所得结果加 上 5 元即累计钱数。最后将十进制数进行译码,并在 6 个 LED 数码管上显示出来。每来一个 脉冲,其公里显示的结果加 0.5,钱数显示的结果如果在 2km 以内都是 5 元,以外加 0.8 元。 3 255255 计数程序流程图计数程序流程图 开始 初始化堆栈,定时器初始化 清零相关 RAM 地址单元 TF1=1? 调用显示子程序 脉冲数加 1
6、即 20H 加 1 20H=100? 21H 加 1 20H 清零 计算出脉冲数的个,十,百位 分别存放于 30H,31H,32H (20H=54)7279 的 KEY 连接于 P1.3 CLK BIT P1.6 ;7279 的 CLK 连接于 P1.6 DA T BIT P1.7 ;7279 的 DA TA 连接于 P1.7 CS BIT P2.7 ;7279 的 CS 连接于 P2.7 ORG 000H JMP START ORG 100H START: MOV SP,#2FH ;定义堆栈 MOV P1,#11011011B ;I/O 口初始化 MOV TIMER,#50 CALL START_DELAY ;7279 上