基于51单片机的出租车计价器(毕业论文内容摘要:

I/O 口, P2 口缓冲器可接收,输出 4个 TTL 门电流,当 P2 口被写“ 1”时,其管脚被内部上拉电阻拉高,且作为输入。 并因此作为输入时, P2 口的管脚被外部拉低,将输出电流。 这是由于内部上拉的缘故。 P2口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时, P2口输出地址的高八位。 在给出地址“ 1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时, P2 口输出其特殊功能寄存器的内容。 P2口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3口: P3 口管脚是 8个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL门电流。 当 P3 口 写入“ 1”后,它们被内部上拉为高电平,并用作输入。 作为输入,由于外部下拉为低电平, P3 口将输出电流( ILL)这是由于上拉的缘故。 P3口也可作为 AT89S52 的一些特殊功能口, P3 口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。 当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。 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:来自反向振荡器的输出。 5461AS 液晶简介 5461AS 共阴四位数码管主要技术参数如表 21所示: 显示容量: 16*2 个字符 芯片工作电压: — 工作电流: () 模块最佳工作电压: 字符尺寸: *( W*H) mm 表 21 5461AS 共阴四位数码管主要技术参数 接口信号说明如图 26 所示: 图 25 5461AS 共阴四位数码管接口信号说明 控制器接口说明( HD44780 及兼容芯片) 基本操作时序 a 读状态:输入: Rs=L, Rw=H, E=H 输出: D0— D7=状态字 b 写指令:输入: Rs=L, Rw=L, D0— D7=指令码 输出:无 E=高脉冲 C 读数据:输入: Rs=H, Rw=L, E=H 输出: D0— D7=数据 d 写数据:输入: Rs=H, Rw=L, D0— D7=数据 输出:无 E=高脉冲 状态字说明如表 22所示: STA7 D7 STA6 D6 STA5 D5 STA4 D4 STA3 D3 STA2 D2 STA1 D1 STA0 D0 表 22状态字说明( a) STA06 当前数据地址指针的数值 STA7 读写操作使能 1:禁止 0:允许 表 23 状态字说明( b) 注:对控制器进行读写操作之前,都必须进行读写检测,确保 STA7 为 0 RAM 地址映射图 控制器内部带有 80*8 位的 RAM缓冲区,对应关系如下图 25 所示: 表 24 RAM 地址映射图 LCD16 字 *2 行 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 … 27 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 … 67 显示模式设置如表 25 所示: 指 令码 功能 0 0 1 1 1 0 0 0 设置 16*2 显示, 5*7 点阵, 8位数据接口 表 25 显示模式设置 显示开关及光标设置如表 26所示: 指令码 功能 0 0 0 0 1 D C B D=1 开显示; D=0 关显示 C=1 显示光标; C=0 不显示光标 B=1 光标闪烁; B=0 光标不显示 0 0 0 0 0 1 N S N=1 当读或写一个字符后地址指针加一,且光标加一 N=0 当读或写一个字后地址指针减一,且光标减一 S=1 当写一个字符后,整屏显示左移(N=1)或右移( N=0) ,以得到光标不移动而屏幕移动的效果 S=0 当写一个字符,整屏显示不移动 表 24 显示开关及光标设置 数据控制 控制器内部没有一个数据地址指针,用户可通过它们来访问内部的全部 80 字节RAM。 第三章 出租车计价系统 的软件设计 系统主程序 在主程序模块中,需要完成对各参量和接口的初始化、出租车起价和单价的初始化等工作。 然后将总金额、里程和单价送数码管显示出来。 程序流程如图所示。 系统初始化模块 里程计数 模块 当汽车运行起来时,就启动计价,根据里程寄存器中 的内容计算和判断行驶里程是否已超过起步价公里数。 若已超过,则根据里程值、每公里的单价数和起步价数来计算出当前的总金额,并将结果输出在显示屏上。 并且,按白天、晚上、单程 /往返区分不同的单价。 显示模块 负责全系统的显示工作,格式化输出。 按键处理模块 负责接收键盘按键并进行相应的处理 暂停控制模块 当遇上堵车或者人为按下暂停键要进行的处理 辅助处理模块 在其他多个模块中要使用到的辅助性函数 第四章 设计体会与小结 经过这些天有关于出租车计价器的课程设计,使我对单片机的应用有了更深的了解。 在课程设计的过程中,还是碰到了许多的问题。 比如,对于数码管动态扫描显示和键盘的延时防抖的综合编程不能较好地解决;对于。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。