基于Proteus的单片机出租车计价器的设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于Proteus的单片机出租车计价器的设计课程:学院:班级:姓名:学号:小组其他成员:指导老师:一、设计背景随着出租车行业的发展,对出租车计费器的要求也越来越高。二十世纪后半期,随着集成电路和计算机技术的飞速发展,数字系统也得到了飞速发展,其实现方法经历了由分立元件、SSI、MSI到LSI、VLSI以及UVLSI的过程。同时为了提高系统的可靠性与通用性,微处理器和专业集成电路(ASIC)逐渐取代了通用全硬件LSI电路,而单片机开发的系统以其体积小、重量轻、功耗低、速度快、成本低、保密性好而脱颖而出。现在各大中城市出租车行业都已普及自动计费器,所以计费器技术的发展已成定局。而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计费器的普及也是毫无疑问的,所以未来汽车计费器的市场还是十分有潜力的。二、设计方案1.设计功能:计价功能:3.5公里以内(含3.5公里)价格为8元,超过3.5公里以后每0.5公里加0.8元,不足0.5公里按0.5公里计。2.设计过程:分为软件设计及硬件设计两个主要部分。其中,软件设计包括基于C语言的单片机源程序设计。硬件设计包括四个模块的设计即:主控模块,通信模块,电源模块,按键及显示模块。三、软件设计1.设计流程单片机的软件设计流程如右图所示其中初始化模块由硬件初始化和软件初始化两部分组成,硬件初始化主要是对单片机及其它相关芯片进行初始化;而软件初始化主要是对各种软件标志进行初始化,同时将断电前保存的各种状态数据读入单片机的RAM中。2.单片机源程序#includeat89x51.h#includeintrins.h#defineucharunsignedcharuchara,b=0,temp=0x01;unsignedchartable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF};unsignedchartable1[]={0xBF,0x3F,0x3F,0x3F,0x3F,0xBF,0x3F,0x3F};intm=0,n=10,ge=0,shi=0,h=0;ucharn1=0,n2=0,n3=0,n4=0,n5=0,n6=0,n7=0,n8=0;voiddelay(uchart)for(t1=0;t110;t1++)for(t2=0;t2t;t2++);}voidinit(){P1_3=0;P2=0xff;P0=table[10];delay(10);}voiddisplay(){P2_0=0;P0=table[n1+10];delay(1);P2_0=1;P2_1=0;if(h3000){P0=table[n2];delay(1);P2_1=1;}else{P0=table[n2+n];delay(1);P2_1=1;}P2_2=0;P0=table[n3];delay(10);P2_2=1;P2_3=0;P0=table[n4];delay(1);P2_3=1;P2_4=0;P0=table[n5];delay(1);P2_4=1;P2_5=0;P0=table[n6];delay(1);P2_5=1;P2_6=0;P0=table[n7];delay(1);P2_6=1;P2_7=0;P0=table[n8];delay(1);P2_7=1;}voiddisplay1(){{n7=n7+8;}if(n710){n7=n7;}else{n7=n7-10;n6++;}if(n6==20)//{n6=10;n5++;}if(n5==10){n5=0;n4++;}}voidmain(){TMOD=0X01;TH0=0X00;TL0=0X00;ET0=1;TR0=1;init();while(1){if(P1_1==0){EA=0;init();break;}if(P1_0==0){EA=1;}else{EA=0;}display();}}voidint0()interrupt1{TH0=0X00;TL0=0X00;b++;h++;if(b==3){b=0;if(n310){n3++;}if(n3==10){n3=0;n2++;}if(n2==10){n2=0;n1++;}if(n11){n4=n5=n7=n8=0;n6=18;}//运行到9.99if(n1==9&&n2==9&&n3==9){n1=m-9;n2=0;n3=0;}if(h3000&&h5700)//{if(n3==0||n3==5)display1();}if((n1==3&&n2==5&&n3==0)||(n13&&n2==0&&n3==0)||(n13&&n2==5&&n3==0))display1();}}3.仿真电路图四、硬件设计系统主要由一个STC89C52单片机、74LS373、两个4位数码管等组成。通用STC89C52单片机芯片作为整个电路的核心部分、74LS373作为LED段选控制、开关输入控制信号。Q0Q1Q2Q3Q4Q5Q791234567812345678Q0Q1Q1Q2Q3Q4Q5Q6Q79Q6XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51R110KR210KD03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U374LS373SW1SW-SPDTSW2SW-SPDT包含主控,通信,按键及显示,电源四个模块。如右图所示。1.主控模块(1)STC89C52处理芯片①主要性能:与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。②功能特性描述:STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程FlashP0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)。P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。③引脚图:见下图(2)74LS373①功能说明:373为三态输出的八D透明锁存器。373的输出端O0~O7可直接与总线相连。当三态允许控制端OE为低电平时,O0~O7为正常逻辑状态,可用来驱动负载或总线。当OE为高电平时,O0~O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端LE为高电平时,O随数据D而变。当LE为低电平时,O被锁存在已建立的数据电平。②引脚图:见上图③引出端符号:D0~D7数据输入端OE三态允许控制端(低电平有效)LE锁存允许端O0~O7输出端④真值表:见右图2.通信模块右图为通信模块组成图,它主要由单片机的两个I/O口、和一些电阻电容等组成。图中电阻均为10kΩ,电容均为10μF;单片机的P30为串行数据接收脚、P31为串行数据发送脚,3.按键及显示模块该模块由一片74LS373、20个数码管及组成。该模块有三个开关键,分别设为A、B、C开关。空车状态按下C开关,计费器进入载客状态;空车状态按下B开关,计费器进入计费状态;若按下A开关,再次进入空车状态。4.电源模块DnLEOEOnHHLHLHLLXLLQ0XXH高阻态该模块为稳压电源,用于将输入电源变为稳定的5V电源。五、调试为检验设计的电路和程序,将调试的程序固化到制作的实物电路板单片机中,得到的实物运行实验结果与Proteus的仿真结果完全一致。六、总结1.作品设计总结该设计结果完成了

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功