求一份基于at89c52的出租车计价器设计~~~跪求~~~发给582854875@qq.com

 我来答
luan_peipei
2012-05-22
知道答主
回答量:6
采纳率:100%
帮助的人:3.1万
展开全部
出租车计价器
一、硬件部分
1、MCS-51单片机简述
MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。INTEL公司将MCS51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机,它是由美国ATMEL公司开发生产的。以后我们将用89C51、89S51来完成一系列的实验。

2、51单片机的结构及其组成
1、中央处理单元(8位)
数据处理、测试位,置位,复位 位操作
2、只读存储器(4KB或8KB)
永久性存储应用程序,掩模ROM、EPROM、EEPROM
3、随机存取内存(128B、128B SFR)
在程序运行时存储工作变量和资料
4、并行输入/输出口(I / O)(32条)
作系统总线、扩展外存、I / O接口芯片
5、串行输入/输出口(2条)
串行通信、扩展I / O接口芯片
6、定时/计数器(16位、加1计数)
计满溢出、中断标志置位、向CPU提出中断请求,与CPU之间独立工作
7、时钟电路
内振、外振。
8、中断系统
五源中断、2级优先。

3、51单片机的引脚

(1)引脚功能:
l P0.0~P0.7 P0口8位双向口线(在引脚的39~32号端子)。
l P1.0~P1.7 P1口8位双向口线(在引脚的1~8号端子)。
l P2.0~P2.7 P2口8位双向口线(在引脚的21~28号端子)。
l P3.0~P3.7 P2口8位双向口线(在引脚的10~17号端子)。

4、51单片机CPU的内部结构

MCS-51中断系统的结构:
8031单片机的中断系统简单实用,其基本特点是:有5个固定的可屏蔽中断源,3个在片内,2个在片外,它们在程序存储器中各有固定的中断入口地址,由此进入中断服务程序;5个中断源有两级中断优先级,可形成中断嵌套;2个特殊功能寄存器用于中断控制和条件设置的 编程。

5、中断系统的结构:
5个中断源的符号、名称及产生的条件如下。
INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。
INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。
T0:定时器/计数器0中断,由T0计满回零引起。
T1:定时器/计数器l中断,由T1计满回零引起。
TI/RI:串行I/O中断,串行端口完成一帧字符发送/接收后引起。
整个中断系统的结构框图见下图一所示。

由图一可见,外部中断有下跳沿引起和低电平引起的选择;串行中断有发送(TI)相接收(R1)的区别;各个中断源打开与否,受中断自身的允许位和全局允许位的控制,并具有高优先级和低优先级的选择。
6、什么是单片机系统
单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.
对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路.
给出一个51单片机的最小系统电路如图所示.

图2.2 单片机的最小系统电路图
复位电路:由电容串联电阻构成,由图并结合"电容电压不能突变"的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.一般教科书推荐C 取10u,R取8.2K.当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平.至于如何具体定量计算,可以参考电路分析相关书籍.
晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作)
7、部分电路功能
(1)晶振电路如图所示。

图2.3 晶振电路图
(2)复位电路如图所示。

图2.4 复位电路图
8、元件及硬件电路
(1)元件清单
名称 数量(个)
两位共阴数码管 3
按键 4
锁存器74hc573 2
排阻10k 1
晶振12MHZ 1
无极电容30pf 2
电解电容22uf 1
电阻200Ω、1k 各1
电源接口 1
AT89S51单片机 1
(2)PROTEUS 仿真图

二、软件部分
1、设计基本要求
(1)不同情况有不同收费
白天 1元/公里
晚上 2元/公里
途中等待(>30秒) 1元/30秒
(2)数据输出(6个LED数码管显示)
单价(元)输出2位
路程(公里)输出2位
总金额(元)输出2位
2、输入输出口分配
如下图:

3、程序流程图
4、程序
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar lg,ls,jgg,jgs,jbg,jbs,jwg,jws;
uint lz,jz,dai;
sbit mm1=P1^0;
sbit mm0=P1^1;
sbit weed=P1^2;
sbit dued=P1^3;
bit mm7;//白晚标志位
void display();
void dely(uint a);
void chu()
{
P1=0XFF;
P0=0XFF;
jbg=1;
jbs=0;
jwg=2;
jws=0;
jgg=3;
jgs=0;
lg=0;
ls=0;
jz=3;dai=0;
TMOD=0x16;
IT0=1;
TH1=0X3c;
TL1=0XB0;
TH0=245;
TL0=245;
PT1=1;
EX0=1;
ET0=1;
ET1=1;
EA=1;
if(mm1==0)
mm7=1;
display();

}

void display()
{
weed=1;
P0=0XFE;
weed=0;
dued=1;
if(mm7==1)
P0=tab[jwg];
else P0=tab[jbg];
dued=0;
dely(5);
dued=1;
P0=0X00;
dued=0;//单价个位

weed=1;
P0=0Xfd;
weed=0;
dued=1;
if(mm7==1)
P0=tab[jws];
else P0=tab[jbs];
dued=0;
dely(5);
dued=1;
P0=0X00;
dued=0;//单价十位

weed=1;
P0=0Xfb;
weed=0;
dued=1;
P0=tab[lg];
dued=0;
dely(5);
dued=1;
P0=0X00;
dued=0;//路程个位

weed=1;
P0=0Xf7;
weed=0;
dued=1;
P0=tab[ls];
dued=0;
dely(5);
dued=1;
P0=0X00;
dued=0;//路程十位

weed=1;
P0=0Xef;
weed=0;
dued=1;
P0=tab[jgg];
dued=0;
dely(5);
dued=1;
P0=0X00;
dued=0;//付钱个位

weed=1;
P0=0Xdf;
weed=0;
dued=1;
P0=tab[jgs];
dued=0;
dely(5);
dued=1;
P0=0X00;
dued=0;//付钱十位
dely(5);

}

void waibu0 (void) interrupt 0
{
dai=0;

}

void timer0 (void) interrupt 1
{
lz=lz+1;
ls=lz/10;
lg=lz%10;
if(mm7==1)
jz=jz+2;
else jz=jz+1;
jgs=jz/10;
jgg=jz%10;

}

void timer1 (void) interrupt 3
{
TH1=0X3c;
TL1=0XB0;
dai=dai+1;
if(dai==600)
{
if(mm7==1)
jz=jz+2;
else jz=jz+1;
jgs=jz/10;
jgg=jz%10;
dai=0;
}
}

void main()
{
chu();
if(mm1==0)
mm7=1;
else mm7=0;
while(mm0==0)
{
TR0=1;
TR1=1;
display();
}
}

void dely(uint a)
{
uint x,y;
for(x=a;x>0;x--)
for(y=122;y>0;y--);
}
5、调试过程中遇到的问题及解决
(1)问题
1、数码管显示数字时一闪一闪看的眼睛不舒服
2、只能显示1、5、6、7、8、9其他数字显示不全
(2)解决
1、数码管显示数字时一闪一闪主要是因为数码动态扫描时频率慢把短延时时间参数从5改为3就解决了
2、只能显示数1、5、7、8、9其他数字显示不全刚开始以为是码写错了,把程序看一遍后发现没什么问题;再看是否是数码管管脚接错,用数字测一遍后也没出现问题;当时就不知道怎么办了,后来拿个表把数码管管脚乱测一通,发现一个数码有两个管脚给短接起了,把那两个管脚的先拆下从新焊接上后再试一遍竟然能够全部显示出来了。

三、参考文献
[1]徐煜明 编著《C51单片机及应用系统设计》 北京:电子工业出版社,2009.2
[2]陈宁 王文宁 编著 《单片机项目教程》南京:东南大学出版社,2008.9
[3]何立民 编著《单片机高级教程》北京:北京航空航天大学出版社,2001
[4]郭天祥 录制 《十天学会单片机和C语言》
深圳市至诚吊车租赁有限公司_
2024-07-15 广告
租赁吊车类别主要有以下几种:1. 汽车吊:这是一种常见的吊车类型,具有灵活、方便、适应性强等优点,被广泛应用于建筑、安装、维修等各个领域。2. 履带吊:履带吊车具有承载能力强、操作稳定、适用于各种地形等优点,通常用于大型设备搬运和工程项目中... 点击进入详情页
本回答由深圳市至诚吊车租赁有限公司_提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式