基于stc89c52单片机出租车计价器设计毕业设计(论文)(编辑修改稿)内容摘要:
T 115P 3. 6/ W R16P 3. 7/ R D17X T A L 218X T A L 119GND20US T C 89 C 52S?S W P BS?S W P BS?S W P BS?S W P BS?S W P BGND 洛阳理工学院毕业设计(论文) 10 图 25 键盘调整单元接线图 图中,键盘从上至下依次为: S0:接 口,对上一次的计费进行清零,为下次载客做准备; S1:接 口,通过对功能键 S3 按下次数的计数,实现单价数据的增大; S2:接 口,通过对功能键 S3 按下次数的计数, 实现单价数据的减小; S3:接 口,按 1 次,进入调整白天单价;按 2 次,进入调整夜晚单价;按 3 次,进入调整等待单价;按 4 次,进入调整起步价;按 5 次,返回。 S4: 实现白天单价和夜晚单价的切换。 需要注意的时,当按键按下和释放的瞬间都有抖动现象,一般来说,抖动的时间长短与键盘的机械特性有关,大约为 510ms [5]。 所以在实际编程时一定要注意键盘的去抖动。 键盘去抖动有专用的延时电路,也有专门的延时芯片,也可以用软件去抖,考虑到电路的难易程度,从简化硬件的角度,本次设计采用软件去抖动,用一个短延时程序 ,进行键盘去抖操作。 显示单元 显示单元由两个 4 位 8 段共阳数码管组成,电路连接时,公共端接高电平,因此我们需要点亮哪个发光二极管只需给哪个二极管阴极送低电平,并采用动态扫描进行显示 [6]。 前三个数码管分别接 、 和 ,用于显示总金额;第四个接 ,显示等待时间;第五个和第六个数码管分别接 和 ,用于显示里程 ,由于需精确到小数位,故最多只能显示 公里,但经过添加溢出指示,可计到 20 公里,在现实中已基本够用;后面两个数码管分别接 和 ,用于显示 单价。 由于溢出指示是采用发光二极管是否点亮表示,故必须选好参数以确保发光二极管正常工作。 洛阳理工学院毕业设计(论文) 11 根据元件手册(也可用万用表测量)查得,发光二极管点亮时压降为 ,点亮电流为 320mA,取导通电流为 5mA,所以限流电阻可选择为()/5=660,故可选择限流电阻值 510Ω。 由于数码管内部二极管点亮时需要 5mA 以上的电流,而单片机的输出电流还不到 1mA,所以数码管与单片机连接时需加驱动电路,可以使用上拉电阻的方法,也可以使用专门的驱动芯片,考虑到复用单片机 I/O 接口,节省单片机 I/O 资源,此次设计采用 74HC573 锁存器,其输出电流较大,电路接口简单且可直接驱动数码管显示。 74HC573 的引脚分布图 26如下。 OE11D22D33D44D55D66D77D88D9GND10 LE 118Q 127Q 136Q 145Q 154Q 163Q 172Q 181Q 19V C C 2074 H C 5 73GNDP 1. 6 图 26 74HC573 的引脚分布 OE :为三态允许输入端 (低电平有效 ),也可称作输出允许端; 1D8D 为数据输入端; 1Q8Q 为数据输出端; LE 为锁存允许端。 74HC573 所对应真值表 21 如 表。 表 21 74HC573 真值表 INPUT OUTPUT OE LE D Q L H L L L X H Q0 洛阳理工学院毕业设计(论文) 12 H X X Z 其中 : H— 高电平。 L— 低电平; X— 任意电平; Z— 高阻态,既不是高电平也不是低电平,其电平状态由与它相连接的其它电气状态决定; Q0—上次的电平状态。 由真值表可以看出,当 OE 为高电平时,无论 LE 与 D 端为何电平状态,其输出均为高阻态,此时芯片处于不可控状态。 做设计时必须使其处于可控状态,即 OE 应该接低电平。 当 OE 为低电平时,若 LE 为 H,则 D 与 Q同时为 H 或者 L,数据实现直通传送;而当 LE 为 L 时,无论 D 为何状态Q 都保持上一次的数据状态,数据被锁存住,利用此特性即可实现对数码管的控制。 本次设计中:段选信号 LE 接 ,对应图中标号 ;位选信号 LE接 ,对应图中标号。 控制显示时先给 高电平,使通道打开,接着送字码,然后把 电平拉低,使字码保持住;之后打开 (送高电平),紧接着送位码,控制要显示的位,然后把 拉低,数据被保持。 最后延时 5ms;依次循环扫描;利用数码管点亮后的余晖和人眼视觉暂留效应即可实现动态显示。 数码 管动态显示电路如图 27 所示。 洛阳理工学院毕业设计(论文) 13 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 主程序流程图 洛阳理工学院毕业设计(论文) 15 里程计数中断程序 每当霍尔传感器输出一个低电平信号,单片机定时器 0(工作在计数模式)就对其计数一次,相应的变量设为 inter 就自加 1,当里程计数器 inter对里程脉冲计满 500 次时,对其自身进行清零操作,为下一次计数 做准备,同时进入里程计数中断服务程序中,里程变量加 1,总金额根据此时所设单价做出相应的变化。 里程中断子程序如图 32 所示。 I N T 0计 数 达 到 5 0 0。 增 加 1 公 里调 用 价 格 子 程 序达 到 最 大 里 程。 返 回NNY开 始Y 图 32 里程中断服务子程序 中途等待中断程序 在中途等待中断程序中,定时器 1 每 50ms 计一次数,每计够 100 次(5sec),便将当前里程值送入某个缓存变量,与前一个 5 秒的值进行比较,如果两者相同,则表明霍尔传感器没有输出信号,认为出租车停了下来,洛阳理工学院毕业设计(论文) 16 进入等待计时,计时中间变量 dd 自加 1,计够 12 次为一分钟, dd 自清零,同时根据所设的等待单价刷新总金额。 计数初值可有以下公式获得: X=(65536t)**10^6/12。 TH=X/256。 TL=X%256。 其中: X 表示计数初值, TH、 TL 分别为 16 位计数器高 8 位和低 8 位应装入的初值。 用定时器作为基准,可使测试的等待时间更为精确(可以精确到 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 中途 等待中断子程序流程图 洛阳理工学院毕业设计(论文) 17 计算程序 计算程序根据里程数分别进入不同的计算公式。 如果里程大于 3 公里,则执行公式:总金额 =起步价 +(里程 3) *单价 +等待时间 *等待单价;否则,执行公式:总金额 =起步价 +等待时间 *等待单价。 程序流程图如图 34所示。 开 始里 程 3总 金 额 = 起 步 价总 金 额 + = ( 里 程 3 )* 起 步 价总 金 额 + = 等 待 时 间 *等 待 单 价总 金 额 = 起 步 价总 金 额 + = 等 待 时 间 *等 待 单 价返 回NY 图 34 计算程序流程图 洛阳理工学院毕业设计(论文) 18 显示程序 由于 8 位数码管所有段选皆有 8 位的 P0 口进行控制,因此,在每一瞬间, 8 位 LED 会显示同一个数字。 要想每位显示不同的字符,就必须采用动态扫描的 方法轮流点亮各位 LED,即在每一时刻只使某一位显示字符。 在此瞬间,段选控制 I/O 口输出相应字符段选码(字符码),而位选则控制 I/O 口在该显示的位送入选通电平,以保证该位显示显示相应字符。 如此循环操作,使每位分时显示该位应该显示的字符 [7]。 在本次设计中显示程序利用延时程序,每隔 5ms 刷新一次,相应的数码管点亮,显示一位数据,利用主函数内的循环,实现动态扫描显示,同时根据数码管余辉和人眼暂留现象,给人看上去每个数码管总是在亮,以实现动态显示。 键盘程序 键盘采用查询的方式,放在主程序中,当有 按键按下的时候,在相应 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。基于stc89c52单片机出租车计价器设计毕业设计(论文)(编辑修改稿)
相关推荐
电路来控制水阀的开和关达到浇花的目的,原理图如图 8: 西昌学院毕业论文(设计) 13 12345继电器Q1继电器123P1Header 3D3VCC470R8Q2GND继电器开关控制 图 8 控制电路 A/D 转换模块 该模块采用 PCF8951 芯片来把采集到的温度和湿度等参数转换为单片机需要的数据,便于运算和运用。 原理图如图 9:
存储器编程时,该引脚加上 +12V 的编程允许电源 Vpp,当然这必须是该器件是使用 12V 编程电压 Vpp。 ( 9) XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 ( 10) XTAL2:振荡器反相放大器的输出端。 . 复位电路 复位电路是使平均的 CPU 或系统中的其他部件处于某一确定的初始状态,并从这个状态开始工作,除了进入系统的正常初始化之外
块电路 ,将 行扫描和列扫描的扫描信号线 接到信号源上,用信号源输出波形代替 单片机控制系统模块发出的行扫 和列扫的信号 ,在单独对 点阵屏显示电路模块进行调试,当准确的 显示出要移动显示的汉字、字符、图像 时即可证明此 行扫描电路模块和列扫描 电路模块工作正常,可以进行整个系统的调试工作。 将所有的模块电路综合成一个整体的系统 ,通电进行测试工作,在软件上小心的调试,尽力将参数调整到最优,
“气压” : 检测目前芯片的气压值,同时输出温度值 “加速度” : 用来检测芯片加速度,同时输出温度值 “温度” : 检测芯片周围温度。 “电源电压” : 检测芯片工作电压。 c. 自动编程“自动编程” : 自动连续编程,按照设定好的几个选项一次性执行。 “计数清零” : 清除自动编程时的计数结果。 “清空消息” : 清除下面两个消息框信息 烧录器及烧录操作 图 烧录器 河北工业大学 2020
UO3O6O6O6 O7UUUO3UA6UUUO5O6UI6UUUUUII66O7O6 UUUUO6UUUUO1UUUUUUUUUUUE6UUA6 UUI6IA6A6E3E1E1EEE566OOOOOO66666IIIIIIIIIIIIII33333333333333 确定了作业单位相互关系密切程度的影响因素以后,就可以给出作业单位间的关系密切等级,在 SLP
ory scheme and analytical method, features and innovations etc. which have some reference value on the design and popularity of semiautomatic robot automatically such as intelligent robots,