课程设计--基于at89c52单片机的出租车计费器设计报告内容摘要:

作。 外接 12M 的晶振和两个 30pF 电容组成系统的内部时钟电路,其中电容主要起到滤波、微调以及利用其充放电过程帮助单片机晶振启振的作用 [1]。 对于单片机的 P0 口,可以作为地址 /数据总线使用,也可以作为一般的 I/O口使用。 但当其作为 I/O 使用时,由于输出属于开漏电路,无上拉电阻故也无法进行高低电平的操作,此时必须接上拉电阻,一般阻值选为 10K。 但 P0 口不能同时作为地址 /数据总线和 I/O 使用。 本设计利用P0口的 I/O 功能 [2]。 脉冲发生及检测元件 我们编辑的程序中的脉冲是低电平有效的脉冲,每按一次键,产生一个脉冲,程序中的脉冲计数器加 1。 为简化里程计数,每一个脉冲相当与 公里。 里程数 =脉冲 数 公里 掉电存储单元 AT24C02 的作用是在电源断开的时候,存储当前设定的总金额,等待时间,运行里程以及单价等信息。 该芯片内的资料可在掉电情况下长期保存。 AT24C02采用 8 脚 DIP 封装,使用方便,其引脚配置如图 23 所示。 A01A12A23GND4V C C 8WP 7SC L 6SD A 5U1A T 24 C 02GNDV C CGNDP 3. 6P 3. 7 图 22AT24C02 引脚配置 每当设定一次单价,系统就调用存储程序,将单价信息保存在 芯片内;当系统重新上电时,自动调用读存储器程序,将存储器内的里程及费用等信息读入缓存单元中,供主程序使用哪个。 事实上, AT24C02 为典型的支持 I2C 总线的器件,对其进行编程时需遵守 I2C 总线的时序要求,以及 I2C 委员会对各种 I2C 芯片的地址分配规则。 现把 I2C 总线与 AT24C02 的通讯时序、通讯规则简要介绍如下: 1. I2C 总线节点的寻址字节 主机产生起始条件后,发送的第一个字节为寻址字节。 该字节的头七位为从机地址,对于 AT24C02 来说高四位为 1010,它是 I2C 总线器件的固有地址,紧接着是 A A A3通过接地或者高电平决定外围器件的地址数据,第八位是读写控制为,当为 0 是表示主节点向从节点发送数据,当为 1 时表示要接收数据。 2. I2C 总线数据传输的格式 (1) 主控器的写数据格式 : 首先由主机发送起始信号 — 当 SCL 为高电平时, SDA 由高到低有跳变;然后发一个寻址字节,当收到应答信号后发送数据,其中应答信号为当 SCL 为高时 SDA 传送 0,并持续 以上;当主机产生停止信号时,数据传送结束,停止信号是当 SCL 为高电平时 SDA 有一个由低到高的跳变。 (2)主控器的读数据格式 : 与写数据的不同之处在 于数据发送结束和停止位之间加一个非应答位,表示数据发送结束,格式为当 SCL 为高时 SDA 传送 1,并持续 以上。 3. 要特别注意的是 SDA 和 SCL 都是双向传输线,平时均处于高电平备用状态,只有当需要关闭时才使其钳制在低电平,且仅在 SCL 为高电平时数据才能传送,而当 SCL 为低电平时才允许数据发生变化。 按键系统 当单价等信息需要进行修改时,需要用到按键系统。 我们根据计费器功能,设置了 5 个按键,分别用来实现:清零、切换、增大、减小和功能等作用。 原理如图 23 所示。 V C C40P 0. 039P 0. 138P 0. 237P 0. 336P 0. 435P 0. 534P 0. 633P 0. 732EA31A L E30P S E N29P 2. 021P 2. 122P 2. 223P 2. 324P 2. 425P 2. 526P 2. 627P 2. 728P 1. 01P 1. 12P 1. 23P 1. 34P 1. 45P 1. 56P 1. 67P 1. 78R S T9P 3. 0/ R X D10P 3. 1/ T X D11P 3. 2/ I N T 012P 3. 3/ I N T 113P 3. 4/ T 014P 3. 5/ 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 23 按键系统接线图 图中, 键盘从上至下依次为: S0:接 口,对上一次的计费进行清零,为下次载客做准备; S1:接 口,通过对功能键 S3 按下次数的计数,实现单价数据的增大; S2:接 口,通过对功能键 S3 按下次数的计数,实现单价数据的减小; S3:接 口,按 1 次,进入调整白天单价;按 2 次,进入调整夜晚单价;按 3 次,进入调整等待单价;按 4 次,进入调整起步价;按 5 次,返回。 S4: 实现白天单价和夜晚单价的切换。 需要注意的时,当按键按下和释放的瞬间都有抖动现象,一般来说,抖动的时间长短与键盘的机械特性有关,大约 为 510ms [5]。 所以在实际编程时一定要注意键盘的去抖动。 键盘去抖动有专用的延时电路,也有专门的延时芯片,也可以用软件去抖,考虑到电路的难易程度,从简化硬件的角度,本次设计采用软件去抖动,用一个短延时程序,进行键盘去抖操作。 显示单元 显示单元由两个 4 位 8 段共阳数码管组成,电路连接时,公共端接高电平,因此我们需要点亮哪个发光二极管只需给哪个二极管阴极送低电平,并采用动态扫描进行显示 [6]。 前三个数码管分别接 、 和 ,用于显示总金额;第四个接 ,显示等待时间;第五个 和第六个数码管分别接 和 ,用于显示里程 ,由于需精确到小数位,故最多只能显示 公里,但经过添加。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。