基于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整体 程序流程图 定时器初始化开始液晶初始化判断。基于51单片机的计程车计价器设计
相关推荐
case 9:P2=0x6f。 break。 case 0:P2=0x3f。 break。 } } void show(unsigned long put) { char each[6],i。 /* unsigned long p。 for(i=0。 i6。 i++) { p=pow(10,5i)。 each[i]=(char)(put/p)。 put=put%p。 } */
K2_2 6 define K2_3 7 define K2_4 8 define K3_1 9 define K3_2 10 苏州工业园区职业技术学院课程(设计) 第 13 页 共 31 页 define K3_3 11 define K3_4 12 define K4_1 13 define K4_2 14 define K4_3 15 define K4_4 16 unsigned
中吸收最大功率。 2) 行波状态时传输线的传输效率最高。 因反射波带回的能量和入射波一样 会在传输线中 产生损耗,固有反射时的损耗功率增大,传输效率低。 3) 行波状态时传输线功率容量最大。 因在驻波状态时,沿线的高频电场分 布出现波腹,波腹处的电场比传输同样功率时的行波电场高得多,因此容易发生击穿,从而限制了功率容量。 匹配方法 阻抗匹配的方法有二:一是在不匹配系统中适当加入无功元件
AH JNZ JJ1 MOV 41H, 0AH ; 最高位不亮,次高位也不亮 JJ1: MOV A, R0 MOV R4, A MOV A, R1 MOV R5, A MOV R3, 00D MOV R2, 10D LCALL DIV4BY2 MOV 42H, R4 MOV A 42H JNZ JJ2 MOV A, 41H。 次高位为 0,先看次高位是否为不亮 SUBB A, 0AH JNZ