求一份基于at89c52的出租车计价器设计~~~跪求~~~发给[email protected]

\u6c42\u57fa\u4e8eat89c52\u7684\u51fa\u79df\u8f66\u8ba1\u4ef7\u5668\u8bbe\u8ba1\uff0c\u77e9\u9635\u952e\u76d8\uff0cLED\u663e\u793a\uff0c\u4e0d\u80dc\u611f\u6fc0~~~

\u8fd9\u7a0b\u5e8f\uff0c\u5e26\u8ba1\u65f6\u4e2d\u6bb5\uff0c\u8bb0\u6570\uff0c\u7d2f\u52a0\u3002led\u9635\u5217\u663e\u793a\u3002
\u5927\u54e5\uff0c\u5199\u4e00\u4e2a\u8fd9\u8981\u4e00\u4e0a\u5348\u5462\uff01\uff01\uff01

\u5b9e\u9a8c\u4efb\u52a1\u53ca\u8981\u6c42
1.\u80fd\u5b9e\u73b0\u8ba1\u8d39\u529f\u80fd\uff0c\u8ba1\u8d39\u6807\u51c6\u4e3a\uff1a\u6309\u884c\u9a76\u91cc\u7a0b\u6536\u8d39\uff0c\u8d77\u6b65\u8d39\u4e3a10.00\u5143\uff0c\u5e76\u5728\u8f66\u884c3\u516c\u91cc\u540e\u518d\u63091.6\u5143/\u516c\u91cc\uff0c\u8f66\u6682\u505c\u65f6\uff0c\u505c\u8f66\u4e00\u5206\u949f\u4e4b\u540e\u5f00\u59cb\u52a0\u4ef7\uff0c\u6bcf\u5206\u949f\u589e\u52a02.5\u5143\u3002
2. \u5b9e\u73b0\u9884\u7f6e\u529f\u80fd\uff1a\u80fd\u9884\u7f6e\u8d77\u6b65\u8d39\u3001\u6bcf\u516c\u91cc\u6536\u8d39\u3001\u8f66\u884c\u52a0\u8d39\u91cc\u7a0b\u3002
3. \u5b9e\u73b0\u6a21\u62df\u529f\u80fd\uff1a\u80fd\u6a21\u62df\u6c7d\u8f66\u542f\u52a8\u3001\u505c\u6b62\u3001\u6682\u505c\u7b49\u72b6\u6001\u3002
4. \u8bbe\u8ba1\u52a8\u6001\u626b\u63cf\u7535\u8def\uff1a\u5c06\u8f66\u8d39\u53ca\u6682\u505c\u65f6\u95f4\u663e\u793a\u51fa\u6765\u3002
5. \u7528VHDL\u8bed\u8a00\u8bbe\u8ba1\u7b26\u5408\u4e0a\u8ff0\u529f\u80fd\u8981\u6c42\u7684\u51fa\u79df\u8f66\u8ba1\u8d39\u5668\uff0c\u5e76\u7528\u5c42\u6b21\u5316\u8bbe\u8ba1\u65b9\u6cd5\u8bbe\u8ba1\u8be5\u7535\u8def\u3002
6. \u7efc\u5408\u4eff\u771f\u9a8c\u8bc1\uff0c\u5e76\u901a\u8fc7\u6709\u5173\u6ce2\u5f62\u786e\u8ba4\u7535\u8def\u8bbe\u8ba1\u662f\u5426\u6b63\u786e\u3002
7. \u5b8c\u6210\u7535\u8def\u5168\u90e8\u8bbe\u8ba1\u540e\uff0c\u901a\u8fc7GW48\u7cfb\u7edf\u5b9e\u9a8c\u7bb1\u4e0b\u8f7d\u9a8c\u8bc1\u8bbe\u8ba1\u7684\u6b63\u786e\u6027\u3002
\u4e8c\u3001\u5b9e\u9a8c\u539f\u7406


\u56fe1\u51fa\u79df\u8f66\u8ba1\u4ef7\u5668\u6d41\u7a0b\u56fe

\u56fe2\u7cfb\u7edf\u7ed3\u6784\u56fe
\u63a5\u53e3\u90e8\u5206\u5b9a\u4e49\u5982\u4e0b\uff1a
\u8f93\u5165\uff1aclk_240\uff0c\u7cfb\u7edf\u65f6\u949f\uff0c\u9891\u7387\u4e3a240Hz;
Start\uff0c\u542f\u52a8\u4fe1\u53f7\uff0c\u5f53start=1\u65f6\uff0c\u6c7d\u8f66\u542f\u52a8\uff0c\u5f00\u59cb\u8ba1\u4ef7; \u5f53start=0\u65f6\uff0c\u6e05\u96f6;
Stop\uff0c\u6682\u65f6\u8ba1\u65f6\u4fe1\u53f7\uff0c\u5f53stop-1\u65f6\uff0c\u4e2d\u9014\u6682\u505c\uff0c\u5f00\u59cb\u8ba1\u65f6;\u5f53stop=0\u65f6\uff0c\u518d\u6b21\u51fa\u53d1;
Fin\uff0c\u6c7d\u8f66\u8f66\u901f\u8109\u51b2\u4fe1\u53f7\uff0c\u662f\u4e00\u4e2a\u4e0e\u968f\u7740\u8f66\u901f\u53d8\u5316\u800c\u53d8\u5316\u7684\u8109\u51b2\u4fe1\u53f7\u3002
\u8f93\u51fa\uff1acha2\uff0ccha1\uff0ccha0\uff0c\u5206\u522b\u4e3a\u4ef7\u94b1\u7684\u5341\u4f4d\uff0c\u4e2a\u4f4d\u548c\u89d2\u4f4d;
Km1\uff0ckm0\uff0c\u5206\u522b\u4e3a\u884c\u9a76\u516c\u91cc\u6570\u7684\u5341\u4f4d\uff0c\u4e2a\u4f4d;
Min0\uff0c\u6682\u65f6\u5206\u949f\u6570\u8f93\u51fa\u3002
\u63a5\u53e3\u90e8\u5206\u6e90\u7a0b\u5e8f\u5982\u4e0b\uff1a
port ( clk_240 :in std_logic; --\u9891\u7387\u4e3a240Hz\u7684\u65f6\u949f
start :in std_logic; --\u8ba1\u4ef7\u4f7f\u80fd\u4fe1\u53f7
stop:in std_logic; --\u7b49\u5f85\u4fe1\u53f7
fin:in std_logic; --\u516c\u91cc\u8109\u51b2\u4fe1\u53f7
cha2,cha1,cha0:out std_logic_vector(3 downto 0); --\u8d39\u7528\u6570\u636e
km1,km0:out std_logic_vector(3 downto 0); --\u516c\u91cc\u6570\u636e
min0: out std_logic_vector(3 downto 0)); --\u7b49\u5f85\u65f6\u95f4
\u8ba1\u4ef7\u90e8\u5206\u539f\u7406\u5982\u4e0b\uff1a
\u8d77\u6b65\u4ef710\u5143\uff0c3\u516c\u91cc\u518510\u5143\uff0c\u8d85\u51fa3\u516c\u91cc\u90e8\u5206\uff0c\u6bcf\u516c\u91cc1.6\u5143\uff0c\u8f66\u6682\u505c\u65f6\uff0c2\u5206\u949f\u5185\u4e0d\u52a0\u4ef7\uff0c\u8d85\u51fa2\u5206\u949f\u90e8\u5206\uff0c\u6bcf\u5206\u949f2.5\u5143;
\u8ba1\u8d39\u90e8\u5206\u6e90\u7a0b\u5e8f\u5982\u4e0b\uff1a
feipin:process(clk_240,start)
begin
if clk_240'event and clk_240='1' then
if start='0' then q_15<=0;q_16<=0;f_15<='0';f_16<='0';f_1<='0';f<='0';
else
if q_15=15 then q_15<=0;f_15<='1'; --\u6b64IF\u8bed\u53e5\u5f97\u5230\u9891\u7387\u4e3a15Hz\u7684\u4fe1\u53f7
else q_15<=q_15+1;f_15<='0';
end if;
if q_16=14 then q_16<=0;f_16<='1'; --\u6b64IF\u8bed\u53e5\u5f97\u5230\u9891\u7387\u4e3a16Hz\u7684\u4fe1\u53f7
else q_16<=q_16+1;f_16<='0';
end if;
if q_1=239 then q_1<=0;f_1<='1'; --\u6b64IF\u8bed\u53e5\u5f97\u5230\u9891\u7387\u4e3a1Hz\u7684\u4fe1\u53f7
else q_1<=q_1+1;f_1<='0';
end if;
if en1='1' then f<=f_15; --\u6b64IF\u8bed\u53e5\u5f97\u5230\u8ba1\u8d39\u8109\u51b2f
elsif en0='1' then f<=f_16;
else f<='0';
end if;
end if;
end if;
end process;

process(f_1)
begin
if f_1'event and f_1='1' then
if start='0' then
w<=0;en1<='0';en0<='0';m1<="000";m0<="0000";k1<="0000";k0<="0000";
elsif stop='1' then
if w=59 then w<=0; --\u6b64IF\u8bed\u53e5\u5b8c\u6210\u7b49\u5f85\u8ba1\u65f6
if m0="1001" then m0<="0000"; --\u6b64IF\u8bed\u53e5\u5b8c\u6210\u5206\u8ba1\u6570
if m1<="101" then m1<="000";
else m1<=m1+1;
end if;
else m0<=m0+1;
end if;
if m1&m0>"0000001"then en1<='1'; --\u6b64IF\u8bed\u53e5\u5f97\u5230en1\u4f7f\u80fd\u4fe1\u53f7
else en1<='0';
end if;
else w<=w+1;en1<='0';
end if;
elsif fin='1' then
if k0="1001" then k0<="0000"; --\u6b64IF\u8bed\u53e5\u5b8c\u6210\u516c\u91cc\u8109\u51b2\u8ba1\u6570
if k1="1001" then k1<="0000";
else k1<=k1+1;
end if;
else k0<=k0+1;
end if;
if k1&k0>"00000010" then en0<='1'; --\u6b64IF\u8bed\u53e5\u5f97\u5230en0\u4f7f\u80fd\u4fe1\u53f7
else en0<='0';
end if;
else en1<='0';en0<='0';
end if;
cha3<=c3;cha2<=c2;cha1<=c1;cha0<=c0; --\u8d39\u7528\u6570\u636e\u8f93\u51fa
km1<=k1;km0<=k0;min1<='0'&m1;min0<=m0; --\u516c\u91cc\u6570\u636e\u3001\u5206\u949f\u6570\u636e\u8f93\u51fa
end if;
end process;

process(f,start)
begin
if start='0' then c3<="0000";c2<="0001";c1<="0000";c0<="0000";
elsif f'event and f='1' then
if c0="1001" then c0<="0000"; --\u6b64IF\u8bed\u53e5\u5b8c\u6210\u5bf9\u8d39\u7528\u7684\u8ba1\u6570
if c1="1001" then c1<="0000";
if c2="1001" then c2<="0000";
if c3<="1001" then c3<="0000";
else c3<=c3+1;
end if;
else c2<=c2+1;
end if;
else c1<=c1+1;
end if;
else c0<=c0+1;
end if;
end if;
end process;
end behav;

出租车计价器
一、硬件部分
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语言》

  • 姹備竴浠藉熀浜巃t89c52鐨勫嚭绉杞﹁浠峰櫒璁捐~~~璺眰~~~鍙戠粰[email protected]...
    绛旓細閿佸瓨鍣74hc5732 鎺掗樆10k1 鏅舵尟12MHZ1 鏃犳瀬鐢靛30pf2 鐢佃В鐢靛22uf1 鐢甸樆200惟銆1k鍚1 鐢垫簮鎺ュ彛1 AT89S51鍗曠墖鏈1 锛2锛塒ROTEUS 浠跨湡鍥 浜屻佽蒋浠堕儴鍒 1銆佽璁″熀鏈姹 锛1锛変笉鍚屾儏鍐垫湁涓嶅悓鏀惰垂 鐧藉ぉ 1鍏/鍏噷 鏅氫笂 2鍏/鍏噷 閫斾腑绛夊緟锛>30绉掞級 1鍏/30绉 锛2锛夋暟鎹緭鍑猴紙6涓狶ED鏁扮爜绠℃樉绀猴級...
  • 姹鍩轰簬at89c52鐨勫嚭绉杞﹁浠峰櫒璁捐,鐭╅樀閿洏,LED鏄剧ず,涓嶈儨鎰熸縺~~~_鐧惧害...
    绛旓細杩欑▼搴忥紝甯﹁鏃朵腑娈碉紝璁版暟锛岀疮鍔犮俵ed闃靛垪鏄剧ず銆傚ぇ鍝ワ紝鍐欎竴涓繖瑕佷竴涓婂崍鍛紒锛侊紒
  • 鏅鸿兘鐓ф槑鎺у埗绯荤粺涓庢ゼ瀹囪嚜鎺(BA)鐨勫尯鍒...鎴戞槸鍋氱収鏄庣殑瀵逛簬2鑰呮帶鍒舵柟寮...
    绛旓細鏅鸿兘鐓ф槑鎺у埗绯荤粺鏄寚鐨勫鍐呭鐨勮皟鍏夋帶鍒剁郴缁燂紝绯荤粺鏈澶х殑鐗圭偣鏄満鏅帶鍒讹紝鍦ㄥ悓涓瀹ゅ唴鍙湁澶氳矾鐓ф槑鍥炶矾锛屽姣忎竴鍥炶矾浜害璋冩暣鍚庤揪鍒版煇绉嶇伅鍏夋皵姘涚О涓哄満鏅紱鍙鍏堣缃笉鍚岀殑鍦烘櫙锛屽垏鎹㈠満鏅椂鐨勬贰鍏ユ贰鍑烘椂闂达紝浣跨伅鍏夋煍鍜屽彉鍖栥傛椂閽熸帶鍒讹紝鍒╃敤鏃堕挓鎺у埗鍣紝浣跨伅鍏夊憟鐜版寜姣忓ぉ鐨勬棩鍑烘棩钀芥垨鏈夋椂闂磋寰嬬殑鍙樺寲銆傚埄鐢ㄥ悇...
  • 扩展阅读:国产液相色谱 ... www.95306.cn ... www.sony.com.cn ... 色谱柱入口 ... 国产最好的a级suv ... 日产xc60 ... www.968777.cn ... gc色谱 ... 精密618磨床 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网