出租车计费器设计课程设计论文内容摘要:
平状态。 由真值表可以看出,当 OE 为高电平时,无论 LE 与 D 端为何电平状态,其输出均为高阻态,此时芯片处于不可控状态。 做设计时必须使其处于可控状态,即 OE 应 13 该接低电平。 当 OE 为低电平时,若 LE 为 H,则 D 与 Q 同时为 H 或者 L,数据实现直通传送;而当 LE 为 L 时,无论 D 为何状态 Q 都保持上一次的数据状态,数据被锁存住, 利用此特性即可实现对数码管的控制。 本次设计中:段选信号 LE 接 ,对应图中标号 ;位选信号 LE 接 ,对应图中标号。 控制显示时先给 高电平,使通道打开,接着送字码,然后把 电平拉低,使字码保持住;之后打开 (送高电平),紧接着送位码,控制要显示的位,然后把 拉低,数据被保持。 最后延时 5ms;依次循环扫描;利用数码管点亮后的余晖和人眼视觉暂留 效应即可实现动态显示。 数码 管动态显示电路如图 27 所示。 OE11D22D33D44D55D66D77D88D9GND10LE118Q127Q136Q145Q154Q163Q172Q181Q19V C C20U274H C 57 3OE11D22D33D44D55D66D77D88D9GND10LE118Q127Q136Q145Q154Q163Q172Q181Q19VCC20U374H C 57 3V C C40P 39P 38P 37P 36P 35P 34P 33P 32EA31A L E30P S E N29P 21P 22P 23P 24P 25P 26P 27P 28P 1P 2P 3P 4P 5P 6P 7P 8R S T9P 10P 11P 12P 13P 14P 15P 16P 17X T A L 218X T A L 119GND20U1S T C 89C 5211 7 4 2 1 10 5 3129 8 6a b c d e f g d pc om 1 c om 2 c om 3 c om 4L E D ?7S E G ( 0 .36) X 411 7 4 2 1 10 5 3129 8 6a b c d e f g d pc om 1 c om 2 c om 3 c om 4L E D ?7S E G ( 0 .36) X 412345678161514131211109排阻R E S P A C K 4排阻R E S 8AGNDGND40 V C CV C CP P GNDGNDV C CV C C 图 27 数码管动态显示电路 14 第 3 章 软件设计 系统主程序 在主程序模块中,需要完成对各参量和接口的初始化、出租车起步价和单价的初始化以及中断、计算、循环等工作。 另外,在主程序模块中还需要设置启动 /清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。 然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和 计费 等不同的操作。 当出租车运行后,就启动 计费 器,根据里程寄存器中的内容计算和判断行驶里程是否已超过起步价公里数。 若已超过,则根据里程值、每公里的单价值和起步价来计算出当前的总金额,并将结果存于总金额寄存器中;中途等待时,无脉冲输入,不 产生中断,当时间超过等待设定值时,开始进行计时,并把等待金额加到总金额里,然后将总金额、里程、等待时间和单价送数码管显示出来。 程序流程如图 31 所示。 金 额 计 算显 示NYNY清 零夜 晚 单 价切 换开 始初 始 化按 键 扫 描 图 31 主程序流程图 里程计数中断程序 每当霍尔传感器输出一个低电平信号,单片机定时器 0(工作在计数模式)就对其计数一次,相应的变量设为 inter 就自加 1,当里程计数器 inter 对里程脉冲计满 500次时,对其自身进行清零操作,为下一次计数做准备,同时进入里程计数中断服务程 15 序中,里程变量 加 1,总金额根据此时所设单价做出相应的变化。 里程中断子程序如图 32 所示。 I N T 0计 数 达 到 5 0 0。 增 加 1 公 里调 用 价 格 子 程 序达 到 最 大 里 程。 返 回NNY开 始Y 图 32 里程中断服务子程序 中途等待中断程序 在中途等待中断程序中,定时器 1 每 50ms 计一次数,每计够 100 次 (5sec),便将当前里程值送入某个缓存变量,与前一个 5 秒的值进行比较,如果两者相同,则表明霍尔传感器没有输出信号,认为出租车停了下来,进入等待计时,计时中间变量 dd自加 1,计够 12 次为一分钟, dd 自清零,同时根据所设的等待单价刷新总金额。 计数初值可 有以下公式获得: X=(65536t)**10^6/12。 TH=X/256。 TL=X%256。 其中: X 表示计数初值, TH、 TL 分别为 16 位计数器高 8 位和低 8 位应装入的初值。 16 用定时器作为基准,可使测试的等待时间更为精确(可以精确到 uS 级);且每隔 5 秒比较一次,能有效减小误判率,避免把汽车低速行驶误认为静止等待处理。 中途等待子程序流程图如图 33 所示。 C C = 1 0 0。 二 者 相等 吗。 5 0 m s了 吗。 变 量 c c + +YYN与 前 一个 5 s 比 较变 量 d d + +YND D = 1 2。 等 待 时 间 + +YN返 回T 1 计 时 开 始N开 始 图 33 中途等待中断子程序流程图 计算程序 计算程序根 据里程数分别进入不同的计算公式。 如果里程大于 3 公里,则执行公式:总金额 =起步价 +(里程 3) *单价 +等待时间 *等待单价;否则,执行公式:总金额 =起步价 +等待时间 *等待单价。 程序流程图如图 34 所示。 17 开 始里 程 3总 金 额 = 起 步 价总 金 额 + = ( 里 程 3 )* 起 步 价总 金 额 + = 等 待 时 间 *等 待 单 价总 金 额 = 起 步 价总 金 额 + = 等 待 时 间 *等 待 单 价返 回NY 图 34 计算程序流程图 显示程序 由于 8 位数码管所有段选皆有 8 位的 P0 口进行控制,因此,在每一瞬间, 8 位LED 会显示同一个数字。 要想每位显示不同的字符,就必须采用动态扫描的方法轮流点亮各位 LED,即在每一时刻只使某一位显示字符。 在此瞬间, 段选控制 I/O 口输出相应字符段选码(字符码),而位选则控制 I/O 口在该显示的位送入选通电平,以保证该位显示显示相应字符。 如此循环操作,使每位分时显示该位应该显示的字符 [7]。 在本次设计中显示程序利用延时程序,每隔 5ms 刷新一次,相应的数码管点亮,显示一位数据,利用主函数内的循环,实现动态扫描显示,同时根据数码管余辉和人眼暂留现象,给人看上去每个数码管总是在亮,以实现动态显示。 18 键盘程序 键盘采用查询的方式,放在主程序中,当有按键按下的时候,在相应 I/O 口产生一次低电平,当单片机查询出该低电平后 便转入进行处理,处理结束返回。 键盘程序流程图如图 35。 19 K e y 3 = 0 ?白 天 单 价 + 1返 回K e y 3 n u m 为 真K e y 3 n u m = 1 ?K e y n u m = 2。 K e y 1 = 0 ?NYYNk e y 3 n u m = 0 ?K e y 2 = 0。 YYN白 天 单 价 1Y显 示k e y 3 n u m + +开 始N储 存 白 天 单 价K e y 1 = 0 ?夜 晚 单 价 + 1YK e y 2 = 0。 YNNK e y 3 n u m = 3。 N储 存 夜 晚 单 价K e y 1 = 0 ?等 待 单 价 + 1YK e y 2 = 0。 夜 晚 单 价 1等 待 单 价 1K e y 3 n u m = 4。 储 存 等 待 单 价K e y 1 = 0 ?起 步 单 价 + 1K e y 2 = 0。 起 步 单 价 1K e y 3 n u m = 5。 储 存 起 步 单 价K e y 3 n u m = 0YYYNNNNYNYNNYNNK e y 4 = 0 ?白 天 、 夜 晚 单价 切 换YK e y 0 = 0 ?仅 显 示 总 金 额与 起 步 价 YNNY图 35 键盘程序 按键检测流程图 36 所示 20 开 始YYYNNN寄 存 器 , I \ O端 口 初 始 化检 测 是 否 有 键 按 下延 时 5 m s执 行 相 应 代 码检 测 是 否 有 键 按 下检 测 是 否 有 键 释 放 图 36 按键检测子程序流程图 21 第 4 章 调试改进过程及运行结果分析 动态扫描的调试和分析 动态扫描是单片机编程中最基本的知识,虽对其原理有比较清晰的掌握,也曾用汇编语言写过程序,但此次用 C 语言编写还是出现了错误。 第一就是把段码和位码顺序送反,结果是只有在 延时时间较长时才能显示正常,当然这样的代价是没有静态的效果;第二就是用动态扫描时给八个数码管送了 10 个数,显然这样做结果必定混乱;最后就是开始时用 switch、 case 语句实现动态扫描,当程序较小时可以正常工作,但当后期程序较大时,出现了时序混乱的问题。 最后解决的方法是用了锁存器,显示结果正常为固定的预设的八个数字。 AT24C02 的编程与调试 对 AT24C02 编程对我来说是一个比较新知识点,遇到了不少问题, 这里仅把经验教训简要介绍一下。 首先是一定要对 I2C 总线时序有较深刻了解后再尝试编程,第二就 是要注意向 AT24C02 写一个字和读一个字的区别,当从 AT24C02 读数据时一定要注意,当读完时从机 AT24C02 一定要发送一个非应答信号表示数据读完。 调试的方法是在指定地址写一个数字再看能是否读出,当显示程序编写好后,可以在 Ptoteus 中用数码管显示看是否与分析一致,也可以把读出的数据赋给某个变量,再通过在 keil中执行 view/watchamp。 call stack window 调出相应变量观察。 按键查询功能的实现 按键查询比较容易实现,只要注意 1. 按键结束后注意退出按键处理; 陷入死循环,即避免显示一个数据后退不出来; 放去抖。 按键去抖可通过以下语句实现 : if(key==0) { delay(5)。 if(key==0) { while(!key)。 delay(5)。 while(!key)。 {按键处理程序 22 } } } 计算程序的分析与设计 由于里程和单价都精确的小数点后一 位,而显示时仍按整数显示,只不过人为的加入 amp。 0x7f(共阳极时加入 amp。 0x7f,共阴极时加入 ||0x)控制是否显示小数点儿,故实际计算时要做适当改动。 改动如下: 1. 当里程值大于 30(实际对应大于 3 公里)且无进位时,溢出指示灯不亮,总金额 =起步价 +(里程十位数字 2) *运行单价 +等待单价 *等待时间; 2. 当里程值小于 30(实际对应小于 3 公里),肯定无进位,溢出指示灯不亮,总金额 =起步价 +等待单价 *等待时间; 3. 有进位,溢出指示灯点亮,表示里程一定大于三公里,只需执行总金额 =起步价 +7*运行单价 +(里程十位数字 +1) *运行单价 +等待单价 *等待时间 即:总金额 =起步价 +(里程十位数字 +8) *运行单价 +等待单价 *等待时。出租车计费器设计课程设计论文
相关推荐
.................................................................................................... 42 (四)消费者分析 ......................................................................................
以上的空间,这样的话最少需要 9 台空调,总价按 45000 元计算(空间和空调都按“ 最小化 ” 计算)。 装修和桌椅 座椅按每套 220 元计算( 300220 = 66000 元)、灯箱广告( 1000元)、门窗、消防等配备设施、装修材料、装修施工费等,这些按 40000 元计算。 这一项的总价则是: 66000+ 40000= 106000元。 上面 5 项加起来的结果是
卫生间的通道。 5. 两人模式 两人模式意在创造一种温馨、浪漫的环境。 灯光调到较暗的状态,可以起到释放压力、舒适惬意的效果。 6. 烛光模式 在餐厅和客厅中使用该模式,方法为只点亮一路灯,如电灯或筒灯,并且把该路灯的亮度调至 30%以下。 7. PARTY 模式 PARTY 模式用在聚会的场合,此时的灯光可以设为全亮,创造令人兴奋的环境。 8. 电视模式 在电视模式下,要求室内灯光亮度较暗。
5.中央监控系统简介 系统网络架构 通用功能 中央监控 是一套基于 Windows 平台的,用于快速构造和生成上位机监控系统的组态软件系统,可运行于 Microsoft Windows 98/ Me/ NT/ 2020/XP 等操作系统。 MCGS 为用户提供了解决实际工程问题的完整方案和开发平台,能够完成现场数据采集、实时和历史数据处理、报警和安全机制、流程控制、动画显示
钢筋加工成型严格按《混凝土结构工程施工及验收》( GB502042020)混凝土结构施工图平面整体表示方法制图规则 11G1011和设计要求执行。 钢筋品种、规格型号应符合施工图纸要求,机械性能、化学成分及工艺性能符合国标。 由专业人员进行配筋,配筋单要经技术负责人审批后才能允许加工。 ( 1)加工时严格按加工料表进行加工,分清连接形式,例如正反扣、弯曲方向等,加工好的成品钢筋要严格按照分部位
应小于30mA,爆破电桥等电器仪表,每月进行一次检查。 起爆网路的连接,在工作面的全部炮孔装填完毕,无关人员全部撤至安全地点之后,由工作面向起爆站依次进行。 如遇雷雨天气停止作业。 起爆网路的检查:起爆网路的检查,由爆破员负责,不得少于两人。 本工程中使用的电力起爆网路,因此必须进行检查,方可与主线连接,检查项目包括:电源开关是否接触良好,开关及导线的电流通过能力能否满足设计要求;网路电阻