毕业设计(论文)基于at89c51单片机的出租车计价器系统设计内容摘要:

两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 在 FLASH 编程期间,此引 脚用于输入编程脉冲。 在平时, ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。 因此它可用作对外部输出的脉冲或用于定时目的。 然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。 如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。 此时, ALE 只有在执行 MOVX, MOVC 指令是 ALE 才起作用。 另外,该引脚被略微拉高。 如果微处理器在外部执行状态 ALE 禁止,置位无效。 PSEN:外部程序存储器的选通信号。 在由外部程序存储器取指期间,每个机器周期两次 /PSEN 有效。 但在访问外部数据存储器时, 这两次有效的 /PSEN 信号将不出现。 EA/VPP:当 /EA 保持低电平时,则在此期间外部程序存储器( 0000HFFFFH),不管是否有内部程序存储器。 注意加密方式 1时, /EA 将内部锁定为 RESET;当 /EA 端保持高电平时,此间内部程序存储器。 在 FLASH 编程期间,此引脚也用于施加 12V 编程电源( VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 出租车计价器系统 6 使用 I/O口的注 意事项 ( 1) P1,P2,P3 口的输出缓冲器可驱动 4 个 LSTTL 电路。 对于 HCMOS 芯片单片机的 I/O口,在正常情况下,可任意由 TTL或 NMOS 电路驱动。 HMOS 及 CMOS 性的单片机 I/O 口有集电极开路或漏极开路的输出来驱动时,不必外加上拉电阻 ( 2)对于 74LS 系列, CD4000 系列以及一些大规模集成电路芯片(如 8155, 8253,8279 等),都可以和 MCS51系列单片机直接接口。 具体使用时,可以查阅有关器件手册或参考典型电路 ( 3)对一些线性组件,特别是应用键盘、码盘、 LED显示器等输入 /输出设备时,应当尽量增加驱动部分的容量,否则,单片机将提供不出足够的驱动电流供给负载使用 89C51 中断系统 所谓中断,是指当计算机执行正常程序时,系统中出现某些急需处理的异常情况和特殊情求, CPU 暂停执行现行程序,转去对随机发生地更紧迫事件进行处理;处理完毕后,CPU 自动返回原来的程序继续执行。 中断允许软件设计不需要关心系统其他部分定时要求,算术程序不需要考虑隔几个指令检查 I/O 设备是否需要服务。 相反,算术程序编写时好像有无限的时间作算术运算而无其他工作在进行。 若其它事件需要服务时,则通过中断告诉系统。 89C51 单片机有 5个中断源,有两个中断优先级,每个中断源的优先级可以编程控制。 中断允许受到 CPU 开中断和中断源开中断的两级控制。 中断源 中断 源是指任何引起计算机中断的事件,一般一台机器允许有许多个中断源。 89C51系列单 片机至少有 5 个中断源。 增加很少的硬件就可把各种硬件中断源“线或”成为一个外部中断输入,然后再顺序检索一起中断的特定源。 89C51 单片机的 5个中断源是: ① 外部中断请求 0,由( )输入; ② 外部中断请求 1,由( )输入; ③ 片内定时器 /计数器 0益处中断请求; ④ 片内定时器 /计数器 1溢出中断请求; ⑤ 片内串行口发送 /接收中断请求; 为了 了解每个中断源是否产生了中断请求,中断系统应设置许多个中断请 求触发器(标志位)实现记忆。 这些中断源请求标志位分别有特殊功能寄存器 TCON和 SCON 的相应位锁存 定时器 /计数器控制寄存器 TCON,它是一个八位的寄存器,各位如表 所示: 表 定时器 /计数器控制寄存器 TCON TF1 TF0 IE1 IT1 IE0 IT0 出租车计价器系统 7 IT0,IT1:外部中断 0、 1触发方式选择位,由软件设置。 1 是下降沿触发, 0 是电平触发。 IE0,IE1:外部终端 0、 1请求标志位。 TF0,TF1:定时器 /计数器 0、 1 溢出 中断请求标志。 中断的控制 中断的控制主要实现中断的开关管理和中断优先级的管理。 这个管理主要通过对特殊功能寄存器 IE和 IP 的编程实现。 ( 1)中断允许寄存器 IE 表 中断允许寄存器 IE EA ET2 ES ET1 EX1 ET0 EX0 EX0,EX1:外部终端 0, 1的中断允许位。 1是中断开, 0是中断关 ET0,ET1:定时器 /计数器 0、 1 溢出中断允许位。 1是开中断, 0是关中断 ES:串行口中断允许位。 1 是中断开, 0 是中断关 ET2:定时器 /计数器 2溢出中断位 EA: CPU 开 /关中断控制位。 1是开中断, 0是关中断 ( 2)中断优先级寄存器 IP 表 中断优先级寄存器 IP PS PT1 PX1 PT0 PX0 若系统中多个中断源同时请求中断,则 CPU 按中断源的优先级别,由高到低分别响应。 89C51 单片机有两个中断优先级:高优先级和低优先级。 每个中断源都可以编程为高优先级。 这可以实现两级中断嵌套。 嵌套的原则:一个正在执行的中断服务程序可以被高级的中断请求中断,而不能被同级或较低级的中断请求中断。 两级中断通过使用 IP寄存器设置,相应的位置 1,则优先级高, 0 则优先级低。 PX0、 PX1:终端 0、 1 中断优先级控制; PT0、 PT1:定时器 /计数器 0、 1中断优先级控制。 PS:串行口中断优先级控制。 89C51 复位时, IP 被清零, 5个中断源都在同一个优先级。 这时若其中几个中断源同时产生中断请求,则 CPU按照片内硬件优先级链路的顺序相应中断,硬件优先级由高到低的顺序是:外部终端 0,定时器 /计数器 0,外部中断 1,定时器 /计数器 1串行口中断。 中断响应 89C51的 CPU在每个机器周期采样中断源的中断请求标志位,如果没有上述阻止条件,则将在下一个机器周期响应被激活的最高级中断 请求。 阻止条件如下: ① CPU 正在处理同级或更高级的中断; ② 现行机器周期不是所执行指令的最后一个机器周期; 出租车计价器系统 8 ③ 正在执行的是 RETI 或者是访问 IE或 IP 的指令; CPU 在中断响应之后完成如下操作: ① 硬件清除相应的中断标志位; ② 执行一条硬件子程序,保护断点,并转向中断服务程序入口。 ③ 结束中断时执行 RETI 指令,恢复断点,返回主程序。 89C51 的 CPU 在相应中断请求时,由硬件电路自动形成转向与该中断源对应的中断的服务程序入口地址。 这种方法为硬件向量中断法。 各中断源的中断服务程序入口地址如下: 表 中断源的中 断服务程序入口地址 编号 中断源 入口地址 0 外部终端 0 0003H 1 定时器 /计数器 0 000BH 2 外部终端 1 0013H 3 定时器 /计数器 1 001BH 4 串行口中断 0023H 各中断服务程序入口地址仅隔 8个字节,编译器在这些地址放入无条件转移指令,跳到服务程序的实际地址。 向量中断包括把先前的程序计数指针推入堆栈,中断服务程序很像其他子程序。 当向量中断发生时,硬件禁止所有中断。 此时表明外部中断或定时器溢出的标志位由硬件清除。 中断服务程序的不同分支取决于中断源。 在重新允许全局 CPU中断 EA之前,必须仔细清除各种标志。 标志会引起立即地重复中断。 89C51 对终端实际上有特殊的返回指令RETI。 不是 RET。 RETI 重新允许系统识别其他中断。 因而,没必要在正常使用中断时复位 EA,只要在程序初始化时开中断一次就可以了。 单片机定时器 /计数器的使用 89C51 系列单片机至少有两个 16 位内部定时器 /计数器。 8952 有三个定时器 /计数器,其中连个基本定时器 /计数器是定时器 /计数器 0和定时器 /计数器 1。 他们既可以编程为定时器使用,也可以编程为计数器使用。 若是计数内部晶振驱动时钟,则 它是定时器;若是计数 89C51 的输入引脚的脉冲信号,则它是计数器。 89C51 的 T/C 时加一计数的。 定时器实际上也是工作在技术方式下的,只不过对固定频率的脉冲计数;由于脉冲周期固定,由计数值可以计算出时间,有定时功能。 当 T/C 工作在定时器时,对振荡源 12 分频的脉冲计数,即每个机器周期计数值加一,频率加 =fosc/12。 晶振为 6MHz,计数频率 =500KHz,每 2uS 计数加一。 当 T/C 工作在计数器时,计数脉冲来自外部脉冲输入引脚 T0或 T1。 当 T0 或 T1脚上负跳变需 2 个机器周期,即 24 个振荡周期。 所以 T0或 T1 脚输入的计数外部脉冲的最高频率为 fosc/12。 当晶振为 12MHz 时,最高技术频率为 500KHz,高于此频率将计数出错。 出租车计价器系统 9 与 T/C 有关的特殊功能寄存器 ( 1)计数寄存器 TH 和 TL T/C 是 16位的,计数寄存器有 TH高 8位 TL 低 8 位构成。 在特殊功能寄存器中,对应 T/C0 为 TH0 和 TL0;对应 T/C1 为 TH1 和 TL1。 定时器 /计数器的初始值通过 TH1/TL1和 TH0/TL0 设置 ( 2)定时器 /计数器控制寄存器 TCON 表 定时器 /计数器控制寄存器 TCON TR1 TR0 TR0、 TR1:定时器 /计数器 0、 1启动控制位。 1是启动, 0 是停止 TCON 复位后清零, T/C 需要受到软件控制才能启动计数;当计数计满时,产生向高位的进位 TF,即溢出中断请求标志 T/C 的方式控制寄存器 TMOD 表 T/C的方式控制寄存器 TMOD GATE C/T M1 M0 GATE C/T M1 M0 C/T:计数器或定时器选择位。 1位计数器, 0位定时器 GATE:门控信号。 1时 T/C 的启动控制受到双重控制,即要求 TR0/TR1 和 INT0/INT1同时为高; 0时 T/C的启动仅受 TR0/TR1 控制。 表 M1和 M0工作方式选择位 M1 M0 方式 功能 0 0 0 为 13位定时器 /计数器, TL存低 5 位, TH存高 8位 0 1 1 为 16 定时器 /计数器, TL存低 8, TH 存高 8位 1 0 2 常数自动装入的 8位定时器 /计数器 1 1 3 仅适用于 T/C0,两个 8 为定时器 /计数器 定时器 /计数器的初始化 ( 1)初始化步骤 在使用 89C51 的定时器 /计数器前,应对它进行编程初始化,主要是对 TCON 和 TMOD编程,还需要计算和装载 T/C的计数 初值。 一般完成以下几个步骤:  确定 T/C 的工作方式 编程 TMOD 寄存器。  计算 T/C 中的计数初值,并装载到 TH 和 TL。  T/C 在中断方式工作时,须开 CPU 中断和源中断 编程 IE 寄存器。  启动定时器 /计数器 编程 TCON 中 TR1 和 TR0 位 ( 2)计数初值的计算 在定时器方式下, T/C 是对机器周期脉冲计数的,如果 fosc=6MHz,一个机器周期为2us,则 出租车计价器系统 10 方式 0 13 位定时器最大时间间隔 =( 21) 2us=; 方式 1 16 位定时器最大时间间隔 =( 21) 2us=; 方式 2 8 位定时器最大时间间隔 =( 21) 2us=512us 若使 T/C 工作在定时器方式 1,要求定时 1ms,求计数初值。 如设计数初值为 x,则有( 21) 2us=1000us x=2500 因此, TH,TL 可置 65536500。 出租车计价器系统 11 4 计价器系统设计 硬件设计 整体硬件电路图。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。