版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、XXXXXXXXX 大学课程设计说明书 摘要摘要 本设计的是一个基于单片机 AT89S52 的出租车自动计费设计,附有复位电路,时钟电路,键盘电路等。复位电路是单片机的初始化操作,除了正常的初始化外,为摆脱困境,通过复位电路可以重新开始。时钟电路采用 12MHz 的晶振,作为系统的时钟源,具有较高的准确性。在上电时字符型液晶 1602 显示最初的起步价,里程收费,等待时间收费三种收费,通过按键可以调整起步价,里程收费,等待时间收费。通过按键模拟出租车的运行,暂停,停止。在 1602 液晶上可以显示运行的时间,运行时暂停的时间,通过计算可以得出总共的费用和总的路程。在这里主要是以 AT89S52
2、单片机为核心控制器,P0 口接 1602 液晶显示模块,P1 口接按键的,通过按键输入。关键词关键词:单片机 AT89C51; AT89S52;1602液晶;出租车计费器;XXXXXXXXX 大学课程设计说明书目目 录录前前 言言.1第一章第一章 出租车计价系统的设计要求与设计方案出租车计价系统的设计要求与设计方案 .21.1出租车计价器设计要求.21.2系统主要功能 .21.3方案论证与比较 .2第二章第二章 出租车计价系统的硬件设计出租车计价系统的硬件设计.42.1振荡电路 .42.2复位电路设计 .42.3键盘接口电路 .52.4显示电路 .52.5路程测量部分 .62.6单片机各引脚功
3、能说明.62.71602 液晶的简介 .8第三章第三章 出租车计价系统出租车计价系统的软件设计的软件设计.103.1单片机资源使用 .103.2中断子函数 .103.3判键子函数 .113.4显示子程序 .113.5总程序流程框图 .13第四章第四章 PROTEUS 的简介的简介.144.1PROTEUS介绍.14第五章第五章 设计体会与小结设计体会与小结.15参考文献参考文献.15附附 录录.16一源程序.16二设计总图.21前前 言言出租车计价器是出租车营运收费的专用智能化仪表,随着电子技术的发展,出租车计价器技术也在不断进步和提高。国内出租车计价器已经经历了4 个阶段的发展。从传统的全部
4、由机械元器件组成的机械式,到半电子式即用电子线路代替部分机械元器件的出租车计价器;再从集成电路式到目前的单片机系统设计的出租车计价器。出租车计价器计费是否准确、出租车司机是否作弊才是乘客最关心的问题,而计价器营运数据的管理是否方便才是出租车司机最关注的。因此怎样设计出一种既能有效防止司机作弊又能方便司机的计价器尤为重要。因此, 本文以单片机A T89S52 为核心设计一款多功能出租车计价器,该计价器能实现按时间和里程综合计算车价,能显示时间、里程、单价、总车价等相关信息显示。它比市场上的一些计价器使用更方便,功能更全,还具有有效防止司机作弊和系统稳定性好的优点。XXXXXXXXX 大学课程设计
5、说明书2第一章第一章 出租车计价系统的设计要求与设计方案出租车计价系统的设计要求与设计方案1.1 出租车计价器出租车计价器设计要求设计要求设计一个出租车自动计费器,计费包括起步价、行车里程计费、等待时间计费三部分,用 1602 液晶 显示总金额,运行时间,暂停时间,最大值为 99.9元,起步价为 5.0 元,3Km 之内起步价计费,超过 3Km,设速度为 100m/s,10s增加 1.3 元(即 1KM 增加 1.3 元),等待时间单价为每分钟 1.5 元,用液晶显示总里程,同时用液晶显示等待时间和运行花费时间。、计费功能费用的计算是按行驶里程收费。设起步价为 5.00 元。1、当里程3km
6、时,每公里按 1.3 元计费3、等待累计时间2min 时,按 1.5 元/min 计费、显示功能1、显示行驶里程:用四位数字显示,显示方式为“XXXX”,单位为 km。计程范围 0-99km,精确到 1km。2、显示等候时间:用两位数字显示,显示方式为“XX”,单位为 min。计时范围 0-59min,精确到 1min。3、显示总费用:用四位数字显示,显示方式为“XXX.X”,单位为元。计价范围 0-999.9 元,精确到 0.1 元。1.2 系统主要功能系统主要功能本出租车自动计费,上电后显示最初的起步价,里程计费单价,等待时间计费单价,通过按键可以调节起步价,里程计费单价,等待时间计费单价
7、。同时具有运行,暂停,停止等状态,可以显示运行的时间,同时可以显示暂停的时间,具有累加功能,暂停和运行时间在暂停和运行前一次的状态上计时。出租车停止后能够显示行驶的总费用。1.3 方案论证与比较方案论证与比较方案一:采用数字电子技术,利用 555 定时芯片构成多谐振荡器,或采用外围的晶振电路作为时钟脉冲信号,采用计数芯片对脉冲尽心脉冲的计数和分频,最后通过译码电路对数据进行译码,将译码所得的数据送给数码管显示,一下是该方案的流程框图,方案一如图 1-1 所示:XXXXXXXXX 大学课程设计说明书3图 1-1 方案一案二:采用 EDA 技术,根据层次化设计理论,该设计问题自顶向下可分为分频模块
8、,控制模块 计量模块、译码和动态扫描显示模块,其系统框图如图1-2 所示:图 1-2 方案二方案三:采用 MCU 技术,通过单片机作为主控器,利用 1602 字符液晶作为显示电路,采用外部晶振作为时钟脉冲,通过按键可以方便调节,以下是方案三的系统流程图,本方案主要是必须对于数字电路比较熟悉,成本又不高。方案图如图 1-3 所示:图 1-3 方案三方案总结:通过各个方案的比较,本次采用方案三,不但控制简单,而且成本低廉,设计电路简单。XXXXXXXXX 大学课程设计说明书4第二章第二章 出租车计价系统的硬件设计出租车计价系统的硬件设计4.14.1 振荡电路振荡电路单片机内部有一个高增益、反相放大
9、器,其输入端为芯片引脚 XTAL1,其输出端为引脚 XTAL2。通过这两个引脚在芯片外并接石英晶体振荡器和两只电容(电容和一般取 33pF)。这样就构成一个稳定的自激振荡器。 振荡电路脉冲经过二分频后作为系统的时钟信号,再在二分频的基础上三分频产生 ALE 信号,此时得到的信号时机器周期信号。振荡电路如图 2-1 所示:图 2-1 振荡电路4.24.2 复位电路设计复位电路设计复位操作有两种基本形式:一种是上电复位,另一种是按键复位。按键复位具有上电复位功能外,若要复位,只要按图中的 RESET 键,电源 VCC 经电阻R1、R2 分压,在 RESET 端产生一个复位高电平。上电复位电路要求接
10、通电源后,通过外部电容充电来实现单片机自动复位操作。上电瞬间 RESET 引脚获得高电平,随着电容的充电,RERST 引脚的高电平将逐渐下降。RERST 引脚的高电平只要能保持足够的时间(2 个机器周期) ,单片机就可以进行复位操作。按键复位电路图如图 2-2 所示。图2-2 AT89C51引脚配置4.34.3 键盘接口电路键盘接口电路独立式键盘:独立式键盘中,每个按键占用一根 I/O 口线,每个按键电路XXXXXXXXX 大学课程设计说明书5相对独立。I/O 口通过按键与地相连,I/O 口有上拉电阻,无键按下时,引脚端为高电平,有键按下时,引脚电平被拉低。I/O 口内部有上拉电阻时,外部可不
11、接上拉电阻。键盘接口电路如图 2-3 所示:图2-3键盘接口电路4.44.4 显示显示电路电路对于现实电路我们可以采用数码管,也可以采用液晶显示,液晶又分字符型和点阵型,我们使用的液晶是字符型液晶,并且带字符库的,不需要查找代码。英文字符就可。液晶电路使用时,如果发现液晶不亮可以调节连接液晶的点位器,改变液晶的亮度。显示电路如图 2-4 所示:图 2-4 数码管封装图及数据线与数码管管脚关系4.54.5 路程测量部分路程测量部分出租车中需要一个能准确获得车轮转动即路量信号的装置,以得到标准的脉冲信号送入单片机的定时/ 计数器 T1 即 P3. 5 引脚,利用单片机的 T1 的计数功能完成 10
12、0 次的计数后产生一中断来完成路程的测量。(设车轮周长为 1 m ,XXXXXXXXX 大学课程设计说明书6则霍尔传感器每产生 100 个脉冲便表示车已行程 0. 1 km ,根据际情况在程序中进行设置) 。汽车联轴器按圆周间隔嵌入磁钢,用霍传感器集成芯片 A44E 测并输出脉冲,其工作原理如图 4 所示,霍尔传感器集成芯片 A44E 有信号转换、电压放大、等功能,为增加其抗干扰的能力,经过 74L S14 对信号整形后再通过光偶送入 P3. 5 引脚。图 2-5 路程测量电路4.64.6 单片机各引脚功能说明单片机各引脚功能说明AT89S52电路图如图 2-6 所示: VCC:供电电压。GN
13、D:接地。P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL门流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 FIASH编程时,P0 口作为原码输入口,当 FIASH 进行 图 2-6校验时,P0 输出原码,此时 P0 外部必须被拉高。 图 2-6 AT89S52 P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。 P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上
14、拉的缘故。在 FLASH 编程和校验时,P1口作为第八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉XXXXXXXXX 大学课程设计说明书7优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH
15、 编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。P3 口也可作为 AT89S52 的一些特殊功能口,P3 口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉
16、冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。/EA/VPP:当/EA 保持低
17、电平时,则在此期间外部程序存储器(0000H-FFFFH) ,不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为RESET;当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP) 。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。4.74.7 1602 液晶的简介液晶的简介字符型液晶 1602 主要技术参数如表 2-1 所示:显示容量:16*2 个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95*4.35(W*H
18、)mm表 2-1 字符型液晶 1602 主要技术参数接口信号说明如表 2-2 所示:XXXXXXXXX 大学课程设计说明书8编号符号引脚说明编号符号引脚说明1Vss电源地9D2DataI/O2VDD电源正极10D3DataI/O3VL液晶显示偏压信号11D4DataI/O4Rs数据/命令选择端(H/L)12D5DataI/O5R/W读/写选择端(H/L)13D6DataI/O6E使能信号14D7DataI/O7D0DataI/O15BLA背光源正极8D1DataI/O16BLK背光源负极表 2-2 1602 接口信号说明控制器接口说明(HD44780 及兼容芯片)1、 基本操作时序a 读状态:
19、输入:Rs=L, Rw=H, E=H 输出:D0D7=状态字b 写指令:输入:Rs=L, Rw=L, D0D7=指令码 输出:无 E=高脉冲C 读数据:输入:Rs=H, Rw=L, E=H 输出:D0D7=数据d 写数据:输入:Rs=H, Rw=L, D0D7=数据 输出:无 E=高脉冲状态字说明如表 2-3 所示:STA7D7STA6D6STA5 D5STA4 D4STA3 D3STA2 D2STA1 D1STA0 D0表 2-3 状态字说明(a)STA0-6当前数据地址指针的数值STA7读写操作使能1:禁止 0:允许表 2-4 状态字说明(b)注:对控制器进行读写操作之前,都必须进行读写检
20、测,确保 STA7 为 0RAM 地址映射图控制器内部带有 80*8 位的 RAM 缓冲区,对应关系如下图 2-5 所示:表 2-5 RAM 地址映射图 LCD16 字*2 行000102030405060708090A0B0C0D0E0F10 27404142434445464748494A4B4C4D4E4F50 67显示模式设置如表 2-6 所示:指令码功能00111000设置 16*2 显示,5*7 点阵,8 位数据接XXXXXXXXX 大学课程设计说明书9口表 2-6 显示模式设置显示开关及光标设置如表 2-7 所示:指令码功能00001DCBD=1 开显示; D=0 关显示C=1
21、显示光标; C=0 不显示光标B=1 光标闪烁; B=0 光标不显示000001NSN=1 当读或写一个字符后地址指针加一,且光标加一N=0 当读或写一个字后地址指针减一,且光标减一S=1 当写一个字符后,整屏显示左移(N=1)或右移(N=0),以得到光标不移动而屏幕移动的效果S=0 当写一个字符,整屏显示不移动表 2-7 显示开关及光标设置数据控制控制器内部没有一个数据地址指针,用户可通过它们来访问内部的全部 80 字节RAM。第三章第三章 出租车计价系统出租车计价系统的软件设计的软件设计4.14.1 单片机资源使用单片机资源使用在本次设计中像电路键盘用到了 P1 口,其中 P1.0 到 P
22、1.4 口作为键盘的输入,直流电机电路的控制线用了 P2 口线,P3.0、P3.1、P3.2 分别为 led 信号控制脚。显示电路用到了 P0 和 P2 口,P0 口为液晶的数据口。XXXXXXXXX 大学课程设计说明书104.2 中断子函数中断子函数对于中断程序,只要定时器计数满就会产生中断 50ms 中断一次,共计 20次,秒钟加 1,秒钟计满再分钟加,当分钟加到 99 时全部清零。以下是中断子函数的流程图如图 3-1 所示:图 3-1 中断子程序流程图4.3 判键子函数判键子函数对于独立式键盘判键,首先看有键按下不,如果有键按下则延时一会儿,在判断是否真的有键按下,如果确实有键按下,在判
23、键释放,最后执行键功能程序。判键子函数的流程框图如图 3-2 所示: Count+开始Second+count=0是否产生中断?Count=20?Second=60?Minite+second=0Minite=99?Minite=0结束否否否否是是是是XXXXXXXXX 大学课程设计说明书11图 3-2 判键子程序流程图4.4 显示子程序显示子程序1602 液晶是字符型液晶,它的内部自带字符库,它可以写两行的字符,同时每行可以写 40 个字符,在写显示程序的时候,我们先写命令,再设定字符显示,最后写数据,在每写一次命令或数据都需要判断液晶是否忙。液晶显示程序流程图如图 3-3 所示:LCD初始
24、化开始LCD写命令LCD判忙P0.7=0?写数据判忙P0.7=0?写完成了?写完成了?设置字符位置结束否否是是否否是是XXXXXXXXX 大学课程设计说明书12图 3-3 显示子程序流程图图 3-3 液晶显示程序流程图4.5 总程序流程框图总程序流程框图定时器初始化开始液晶初始化判断按键函数1V=?Value1+10Value2+5Value3+5数据处理显示函数Jump_in=1?液晶清屏判断按键函数V1=?运行暂停停止数据处理显示函数Jump_out=1?液晶清屏清零函数结束否是V=1V=2V=3否是V1=1V1=2V1=3是否否是XXXXXXXXX 大学课程设计说明书13图 3-4 整体
25、程序流程图XXXXXXXXX 大学课程设计说明书14第四章第四章 proteus 的简介的简介4.1 Proteus 介绍介绍Proteus 软件是来自英国 Labcenter electronics 公司的 EDA 工具软件,它组合了高级原理布图、混合模式 SPICE 仿真,PCB 设计以及自动布线来实现一个完整的电子设计系统。此系统受益于 15 年来的持续开发,被电子世界在其对 PCB 设计系统的比较文章中评为最好产品“The Route to PCB CAD”。Proteus 产品系列也包含了我们革命性的 VSM 技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。用户甚至
26、可以实时采用诸如LED/LCD、键盘、RS232 终端等动态外设模型来对设计进行交互仿真。 其功能模块:个易用而又功能强大的 ISIS 原理布图工具;PROSPICE 混合模型 SPICE 仿真;ARES PCB 设计。PROSPICE 仿真器的一个扩展 PROTEUS VSM:便于包括所有相关的器件的基于微处理器设计的协同仿真。此外,还可以结合微控制器软件使用动态的键盘,开关,按钮,LEDs 甚至 LCD 显示 CPU 模型。支持许多通用的微控制器,如 PIC,AVR,HC11 以及 8051。最新支持 ARM。交互的装置模型包括:LED 和 LCD 显示,RS232 终端,通用键盘,I2C
27、,SPI 器件。强大的调试工具,包括寄存器和存储器,断点和单步模式。IAR C-SPY 和 Keil uVision2 等开发工具的源层调试。应用特殊模型的 DLL 界面-提供有关元件库的全部文件。XXXXXXXXX 大学课程设计说明书15第五章第五章 设计体会与小结设计体会与小结 出租车计费器系统的设计已经全部完成,能按预期的效果进行模拟汽车启动,停止,暂停等功能并能够通过 LCD 显示车费数目。本款出租车计价器包括单价输出、单价调整、显示当前的系统时间等功能。另外,多功能出租车计价器还具有性能可靠、电路简单、成本低、实用性强等特点,加上经过优化的程序,使其有很高的智能化水平。一个月来,经过
28、自己努力,基本上完成了设计要求的内容,在系统可行性分析、原理图设计等方面都作了许多实际工作,取得了一些成绩,同时也遇到了一些问题,存在一些不足。经过这一个月的学习,我觉得自己不论是在理论知识方面还是在动手能力方面都有了不小的进步,自己从中受益匪浅。这次设计很好的把以前学到的理论知识应用于实践,使我认识到理论知识与实践之间有一定的差距,只有通过不断的努力学习和实践才能很好的把理论知识应用到实践当中,也只有通过不断的实践才能对理论知识的理解。通过这次设计不仅学会了如何去查找相关资料,更重要的是通过查找资料和翻阅书籍学到了不少知识,扩大了知识面,提高了知识水平。经过单元设计和系统设计巩固了以前所学的
29、专业知识,自己真正认识到理论联系实际的重要性,为以后的学习和工作提供了很多有价值的经验。通过这次设计不仅增强了自己的动脑能力和动手能力,也提高了我思考问题、分析问题、解决问题的能力,更重要的是学会用工程化的思想来解决问题。这在以前的学习过程中是不曾学到的。这次设计是我认真认识到完整、严谨、科学分析问题、解决问题的思想是多么的重要,只有拥有了科学的态度才能设计出有用的产品。另外通过本次设计,是我认识到自己理论知识的应用能力有很大的欠缺,需要在以后的学习中进一步提高。参考文献参考文献1. 李广弟,朱月秀,冷祖祁.单片机基础M.第 3 版.北京航空航天大学出版社,20072. 李华.MCS-51 系
30、列单片机实用接口技术M.北京航空航天大学出版社,19963. 李群芳,肖看.单片机原理接口与应用.北京:清华大学出版社,20054. 朱承高.电工及电子技术手册M.北京:高等教育出版社,19905. 高峰.单片微型应用系统设计及实用技术.北京:机械工业出版社,20046. 胡辉,单片机原理及应用设计21 世纪高等院校规划教材M,水利水电出版社,2005.77.刘守义,单片机应用技术M,西安:西安电子科技大学出版社,1996XXXXXXXXX 大学课程设计说明书16附附 录录 一一源程序源程序#include#define uchar unsigned char#define uint unsi
31、gned int sbit rw=P21;/读或写sbit rs=P20;/sbit en=P22;/读写时能控制端sbit b=P07;/液晶判断忙标志位void lcd_init();/void wr_com(uchar command);/液晶写命令void wr_data(uchar data0);/写数据void lcd_clear();/液晶清屏void lcd_set();/设置液晶的起始位置void busy();/液晶判忙函数void display();/显示void printstring(uchar *s);/直接写字符void display1();void key1
32、();sbit K=P10;sbit K1=P11;sbit K2=P12;sbit K3=P13;sbit K4=P14;sbit g=P27;sbit aa=P23;sbit bb=P24;sbit cc=P25;sbit led_run=P30;sbit led_await=P31;sbit led_stop=P32;bit f_start;/开始标志位bit jump_in;/跳入开始标志位bit jump_out;/跳出标志位void key();uchar code table=0 x30,0 x31,0 x32,0 x33,0 x34,0 x35,0 x36,0 x37,0 x3
33、8,0 x39,0 x70;/字符 1,2,3,0uchar dispbuf=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;uchar dispbuf1=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;uchar v,v1;/按键次数累加变量uchar i;void init();/void chuli();/void chuli1();/void delay(uchar t);/void clear();/void set(uchar x);/void set1(uchar y);/uchar command;/uchar count,count1;/uchar s
34、econd,minite,second1,minite1;/unsigned int tt,tt1;/unsigned char value1=50,value2=25,value3=15;/起始价,运行价,等待价unsigned int money;/金额变量/*void main() init(); lcd_init(); while(1) key1();chuli(); display(); if(jump_in=1) jump_in=0; lcd_init(); while(1) key(); chuli1(); display1();XXXXXXXXX 大学课程设计说明书2 if(j
35、ump_out=1) lcd_init(); jump_out=0; clear(); break; /*void clear()/跳出下一次 TR0=0; TR1=0; money=0; second=0; second1=0; minite=0; minite1=0; value1=50; value2=25; value3=15; led_run=1; led_await=1; led_stop=1; v=0; v1=0; for(i=0;i15;i+) dispbufi=0; dispbuf1i=0; /*void init()/定时器初始化 TMOD=0 x11; TH0=(6553
36、6-50000)/256; TL0=(65536-50000)%256; TH1=(65536-50000)/256; TL1=(65536-50000)%256; ET0=1; ET1=1; EA=1; TR0=0; TR1=0;/*void t0_(void) interrupt 1 using 0/定时器 0 中断 count+; if(count=20) count=0; second+; if(second=60) second=0;minite+;if(minite=99) minite=0; TH0=(65536-50000)/256; TL0=(65536-50000)%256
37、; dispbuf10=minite/10; dispbuf11=minite%10; dispbuf12=second/10; dispbuf13=second%10;/*void t1_(void) interrupt 3 using 3/定时器 1 中断 count1+; if(count1=20) count1=0; second1+; if(second1=60) second1=0;minite1+;if(minite1=99) XXXXXXXXX 大学课程设计说明书3 minite1=0; TH1=(65536-50000)/256; TL1=(65536-50000)%256;
38、 dispbuf14=minite1/10; dispbuf15=minite1%10; dispbuf16=second1/10; dispbuf17=second1%10;/*void lcd_init()/液晶初始化 wr_com(0 x3c); wr_com(0 x06); wr_com(0 x0c); wr_com(0 x01);/*void wr_com(uchar command)/液晶写命令 busy(); rs=0; rw=0; P0=command; en=1; en=0;/*void wr_data(uchar data0)/液晶写数据 busy(); rs=1; rw=
39、0; P0=data0; en=1; en=0;/*void busy()/液晶判忙 while(1) en=0; rs=0; rw=1; P0=0 xff; en=1; if(b!=1)break; en=0;/*void chuli()/数值处理 dispbuf0=value1/100%10; dispbuf1=value1/10%10; dispbuf2=value1%10; dispbuf3=value2/100%10; dispbuf4=value2/10%10; dispbuf5=value2%10; dispbuf6=value3/100%10; dispbuf7=value3/
40、10%10; dispbuf8=value3%10;/*void display() set(0); printstring(step :); wr_data(tabledispbuf0); wr_data(tabledispbuf1); printstring(.); wr_data(tabledispbuf2); set(16); printstring(mileage :); wr_data(tabledispbuf3); wr_data(tabledispbuf4); printstring(.); wr_data(tabledispbuf5); set1(0); printstrin
41、g(await :); wr_data(tabledispbuf6); wr_data(tabledispbuf7); printstring(.);XXXXXXXXX 大学课程设计说明书4 wr_data(tabledispbuf8);/* set1(16); printstring(run : ); wr_data(tabledispbuf10); wr_data(tabledispbuf11); printstring(:); wr_data(tabledispbuf12); wr_data(tabledispbuf13);*/*void chuli1() if(f_start=1) t
42、t=minite*60+second;/总时间 tt1=minite1;/等待时间 money=value1+value2*0.1*tt+value3*tt1;/起始价+每公里价*时间*速度+等待价*等待时间 else if(f_start=0) money=0; dispbuf18=money/100%10;/ dispbuf19=money/10%10;/ dispbuf110=money%10;/*void display1() set(0); printstring(run: ); wr_data(tabledispbuf10); wr_data(tabledispbuf11); pr
43、intstring(:); wr_data(tabledispbuf12); wr_data(tabledispbuf13); set(14); printstring(await:); wr_data(tabledispbuf14); wr_data(tabledispbuf15); printstring(:); wr_data(tabledispbuf16); wr_data(tabledispbuf17); set1(0); printstring(sum is: ); wr_data(tabledispbuf18); wr_data(tabledispbuf19); printstr
44、ing(.); wr_data(tabledispbuf110);/*void printstring(uchar *s)/行字符函数 while(*s) wr_data(*s+); /*void key() if(K3=0) delay(50);if(K3=0) while(K3=0); v1+; if(v1=4) v1=0; switch(v1) case 1:f_start=1;TR0=1;TR1=0;led_run=0;led_await=1;led_stop=1;aa=1;bb=0;cc=1;break;case 2:TR0=0;TR1=1;led_run=1;led_await=0
45、;led_stop=1;aa=0;cc=0;break;case 3:TR0=0;TR1=0;led_run=1;led_await=1;led_stop=0;break;XXXXXXXXX 大学课程设计说明书5 if(K4=0) delay(50); if(K4=0) while(K4=0); jump_out=1; /*void delay(uchar t) while(-t);/*void set(uchar x) command=0 x80+x; wr_com(command);/*void set1(uchar y) command=0 xc0+y; wr_com(command);
46、/*void key1() if(K=0) delay(100); if(K=0) while(K=0); v+; if(v=4) v=0; switch(v) case0:break; case 1:if(K1=0)while(K1=0);value1=value1+10;break;/起步价加 10 case2:if(K1=0)while(K1=0);value2=value2+5;break;/单价加 5 case 3:if(K1=0)while(K1=0);value3=value3+5;break;/停止加 5 if(K2=0) delay(50); if(K2=0) while(K
47、2=0); jump_in=1;/ #include /头文件#include typedef unsigned char uchar; /定义一个无符号的字符型的简写code uchar tab =0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90; bit flag=0; /定义标量初值为零float y; /定义 一个浮点型的全局常量 float y1;float count_price=0; /定义 一个浮点型的全局变量 int a; /定义两个无符号的全局变量float s; /定义 一个浮点型的全局变量#define time_num 100 /宏定义时间为100ussbit CLK=P35; /DS1302 的时钟控制线 sbit DAT=P36; /DS1302 的数据线XXXXXXXXX 大学课程设计说明书6sbit RST=P37; /DS1302 的复位信号#define delay_time 60 /宏定义时间为60ussbit SCL=P36; /24c02
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 八年级道德与法治上册价值判断选择题考点精练卷专项精练版
- 溺水患者出院指导-1
- 咳嗽患者康复指导-1
- 廊坊人工智能奖金申报指南
- 脑瘫儿童健康宣教
- 病历书写与医保违规警示2026
- 2026年10月自考00874特殊儿童早期干预押题及答案(江苏)
- 法律职业资格客观题核心考点题库(解析版)
- 法律职业资格客观题模拟试卷(含答案详解)
- 远离网络沉迷点亮快乐童年小学主题班会课件
- 军考2026年考试题及答案
- 2025云南昆明巫家坝建设发展有限责任公司及下属公司第四季度社会招聘31人考试参考题库及答案解析
- 中外航海文化知到课后答案智慧树章节测试答案2025年春中国人民解放军海军大连舰艇学院
- 2025年宁夏宁东融资担保有限公司招聘笔试参考题库含答案解析
- 煤业公司经营管理实施方案
- 中国医院质量安全管理 第 2-6 部分 患者服务 门诊服务
- DL∕T 2553-2022 电力接地系统土壤电阻率、接地阻抗和地表电位测量技术导则
- DZ∕T 0218-2006 滑坡防治工程勘查规范(正式版)
- (正式版)YBT 6328-2024 冶金工业建构筑物安全运维技术规范
- 造粒车间应急预案及流程
- YY/T 0996-2015尿液有形成分分析仪(数字成像自动识别)
评论
0/150
提交评论