基于51单片机的计程车计价器设计内容摘要:

接收高八位地址信号和控制信号。 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:来自反向振荡器的输出。 1602 液晶的简介 字符型液晶 1602 主要技术参数如表 21所示: 显示容量: 16*2 个字符 芯片工作电压: — 工作电流: () 模块最佳工作电压: 字符尺寸: *( W*H) mm 表 21 字符型液晶 1602 主要技术参数 接口信号说明如表 22所示: 编号 符号 引脚说明 编号 符号 引脚说明 1 Vss 电源地 9 D2 DataI/O 2 VDD 电源正极 10 D3 DataI/O 3 VL 液晶显示偏压信号 11 D4 DataI/O 4 Rs 数据 /命令选择端( H/L) 12 D5 DataI/O 5 R/W 读 /写选择端( H/L) 13 D6 DataI/O 6 E 使能信号 14 D7 DataI/O 7 D0 DataI/O 15 BLA 背光源正极 8 D1 DataI/O 16 BLK 背光源负极 表 22 1602 接口 信号说明 控制器接口说明( 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=高 脉冲 状态字说明如表 23所示: STA7 D7 STA6 D6 STA5 D5 STA4 D4 STA3 D3 STA2 D2 STA1 D1 STA0 D0 表 23状态字说明( a) STA06 当前数据地址指针的数值 STA7 读写操作使能 1:禁止 0:允许 表 24 状态字说明( b) 注:对控制器进行读写操作之前,都必须进行读写检测,确保 STA7 为 0 RAM 地址映射图 控制器内部带有 80*8 位的 RAM 缓冲区,对应关系如下图 25所示: 表 25 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 显示模式设置如表 26所示: 指令码 功能 0 0 1 1 1 0 0 0 设置 16*2 显示, 5*7 点阵, 8 位数据接口 表 26 显示模式设置 显示开关及光标设置如表 27所示: 指令码 功能 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 当写一个字符,整屏显示不移动 表 27 显示开关及光标设置 数据控制 控制器内部没有一个数据地址指针,用户可通过它们来访问内部的全部 80 字节 RAM。 的软件设计 单片机资源使用 在本次设计中像电路键盘用到了 P P3 口,其中 到 口 、 到 (除了 作为外部中断) 作为键盘的输入,直流电机电路的控制线用了 、 口线。 显示电路用到了 P0 和 P2 口, P0口为液晶的数据口。 延时子程序 ifndef _DELAY_H_ define _DELAY_H_ void delay_ms(uint x) { uint y。 while(x) for(y=0。 y110。 y++)。 } endif 判键子函数 对于独立式键盘判键,首先看有键按下不,如果有键按下则延时一会儿,在判断是否真的有键按下,如果确实有键按下,在判键释放,最后执行键功能程序。 判键子函数的流程框图如图 32所示: 图 32判键子程序流程图 显示子程序 1602 液晶是字符型液晶,它的内部自带字符库,它可以写两行的字符,同时每行可以写 40 个字符,在写显示程序的时候,我们先写命令,再设定字符显示,最后写数据,在每写一次命令或数据都需要判断液晶是否忙。 液晶显示程序流程图 如图 33 所示: 图 33 显示子程序流程图 图 33 液晶显示程序流程图 L C D 初始化开始L C D 写命令L C D 判忙=0?写数据判忙=0?写完成了。 写完成了。 设置字符位置结束否否是是否否是是 总程序流程框图 图 34整体 程序流程图 定时器初始化开始液晶初始化判断。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。