分享
2023年基于Proteus的单片机出租车计价器的设计.doc
下载文档

ID:1356825

大小:227KB

页数:12页

格式:DOC

时间:2023-04-20

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
2023 基于 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.单片机源程序 #include "at89x51.h" #include "intrins.h" #define uchar unsigned char uchar a,b=0,temp=0x01; unsigned char table[]={ 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F, 0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF }; unsigned char table1[]={ 0xBF,0x3F,0x3F,0x3F,0x3F,0xBF,0x3F,0x3F}; int m=0,n=10,ge=0,shi=0,h=0; uchar n1=0,n2=0,n3=0,n4=0,n5=0,n6=0,n7=0,n8=0; void delay (uchar t) for(t1=0;t1<10;t1++) for(t2=0;t2<t;t2++); } void init () { P1_3=0; P2=0xff; P0=table[10]; delay(10); } void display () { P2_0=0; P0=table[n1+10]; delay(1); P2_0=1; P2_1=0; if(h<3000) { 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; } void display1() { { n7=n7+8; } if(n7<10) { n7=n7; } else { n7=n7-10; n6++; } if(n6==20) // { n6=10; n5++; } if(n5==10) { n5=0; n4++; } } void main() { 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 (); } } void int0() interrupt 1 { TH0=0X00; TL0=0X00; b++; h++; if(b==3) { b=0; if(n3<10) { n3++; } if(n3==10) { n3=0; n2++; } if(n2==10) { n2=0; n1++; } if(n1<1) { n4=n5=n7=n8=0; n6=18; } // 运行到9.99 if(n1==9 && n2==9 && n3==9) { n1=m-9; n2=0; n3=0; } if(h>3000 && h<5700) // { if( n3==0 || n3==5) display1(); } if((n1==3 && n2==5 && n3==0) || (n1>3 && n2==0 && n3==0) || (n1>3 && n2==5 && n3==0)) display1(); } } 3.仿真电路图 四、硬件设计 系统主要由一个STC89C52 单片机、74LS373、两个4 位数码管等组成。通用STC89C52 单片机芯片作为整个电路的核心局部、74LS373 作为LED 段选控制、开关输入控制信号。 包含主控,通信,按键及显示, 电源四个模块。 如右图所示。 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字节在系统可编程 Flash   P0 口: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.5 T1(定时/计数器1)   P3.6 WR(外部数据存储器写选通)   P3.7 RD(外部数据存储器读选通)   RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。 ALE/PROG——当访问外部程序存储器或数据存储器时,ALE〔地址锁存允许〕输出脉冲用于锁存地址的低8位字节。

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开