计程车计价器EDA设计Word文档格式.docx
- 文档编号:3225415
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:14
- 大小:200.81KB
计程车计价器EDA设计Word文档格式.docx
《计程车计价器EDA设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《计程车计价器EDA设计Word文档格式.docx(14页珍藏版)》请在冰点文库上搜索。
在整个项目开发过程中,有单片机AT89S52控制,通过记录安装在车轮上的光电传感器发出的脉冲个数,实现正常的里程计数,通过软件在实现里程数和车费的函数关系,并将里程数和车费在led数码管中显示出来。
在整个设计中,需要根据要求设计电路原理图,PCB电路图绘制,电路板制作,元器件焊接,软件编程,调试等实现出租车计价器的制作。
二、设计要求
设计一个出租车计价器,要求显示里程和金额。
(1)出租车启动和停驶由司机控制;
(2)行程小雨基本里程时,显示起步价,基本里程设3公里,起步价5元;
(3)行程大于基本里程时,每多行一公里,起步价上加一元。
三、设计内容及步骤
1.控制模块
moduletaxi(money,distance,clk,start,stop,speedup,pause);
inputclk;
inputstart;
inputstop;
inputpause;
input[1:
0]speedup;
output[12:
0]money;
0]distance;
reg[12:
0]money_reg;
0]distance_reg;
reg[3:
0]num;
0]dis;
regd;
always@(posedgeclk)
begin
if(stop)
beginmoney_reg<
='
d0;
distance_reg<
dis<
num<
end
elseif(start)
beginmoney_reg<
d500;
distance_reg<
dis<
num<
end
else
begin
if(!
start&
&
!
speedup&
pause&
stop)
begin
if(num=='
d9)
beginnum<
=distance_reg+1;
=dis+1;
=num+1;
end
elseif(!
speedup=='
b01&
=distance_reg+2;
=dis+2;
if(dis>
d100)
begind<
d1;
dis<
if(distance_reg>
d300)
begin
if(money_reg<
'
d2000&
d=='
d1)
beginmoney_reg<
=money_reg+'
d100;
money<
=money_reg;
distance<
=distance_reg;
endmodule
封装如下图:
译码显示模块
moduledeceder(scan,seg7,dp,clk20mhz,money_in,distance_in);
output[7:
0]scan;
output[6:
0]seg7;
outputdp;
inputclk20mhz;
input[12:
0]money_in;
0]distance_in;
reg[7:
reg[6:
regdp;
regclk1khz;
0]data;
0]m_one,m_ten,m_hun,m_tho;
0]d_one,d_ten,d_hun,d_tho;
reg[15:
0]count;
0]comb1;
0]comb1_a,comb1_b,comb1_c,comb1_d;
0]comb2;
0]comb2_a,comb2_b,comb2_c,comb2_d;
reg[2:
0]cnt;
always@(posedgeclk20mhz)
if(count=='
d10000)
beginclk1khz<
=~clk1khz;
count<
else
begincount<
=count+1;
if(comb1<
money_in)
if(comb1_a=='
d9&
comb1_b=='
comb1_c=='
comb1_a<
b0000;
comb1_b<
comb1_c<
comb1_d<
=comb1_d+1;
comb1<
=comb1+1;
elseif(comb1_a=='
=comb1_c+1;
=comb1_b+1;
=comb1_a+1;
elseif(comb1==money_in)
m_one<
=comb1_a;
m_ten<
=comb1_b;
m_hun<
=comb1_c;
m_tho<
=comb1_d;
elseif(comb1>
if(comb2<
distance_in)
if(comb2_a=='
comb2_b=='
comb2_c=='
comb2_a<
comb2_b<
comb2_c<
comb2_d<
=comb2_d+1;
comb2<
=comb2+1;
elseif(comb2_a=='
=comb2_c+1;
=comb2_b+1;
=comb2_a+1;
elseif(comb2==distance_in)
d_one<
=comb2_a;
d_ten<
=comb2_b;
d_hun<
=comb2_c;
d_tho<
=comb2_d;
elseif(comb2>
always@(posedgeclk1khz)
cnt<
=cnt+1;
always@(cnt)
case(cnt)
b000:
begindata<
=m_one;
dp<
scan<
b00000001;
b001:
=m_ten;
b00000010;
b010:
=m_hun;
b00000100;
b011:
=m_tho;
b00001000;
b100:
=d_one;
b00010000;
b101:
=d_ten;
b00100000;
b110:
=d_hun;
b01000000;
b111:
=d_tho;
b10000000;
default:
bx;
endcase
always@(data)
case(data[3:
0])
4'
b0000:
seg7[6:
0]=7'
b1111110;
b0001:
b0110000;
b0010:
b1101101;
b0011:
b1111001;
b0100:
b0110011;
b0101:
b1011011;
b0110:
b1011111;
b0111:
b1110000;
b1000:
b1111111;
b1001:
b1111011;
b0000000;
endmodule
封装如下图
四、总体图
五、引脚分配
六、调试运行
六、体会和总结
一周的数电课程设计课,让我学会了很多,使我更加了解了QuartusII_7.2软件的功能及使用方法,同时也加深了自己对数电专业知识方面的认识。
刚开始上课时,,我听了以后觉得很难,感觉无从下手。
后来照着老师的要求,先画一个设计草图,考虑好用那些芯片,再分别用QuartusII_7.2软件以自底向上层次化设计的方式设计电路的每个模块,各模块编译仿真成功后,再把每个模块连接起来,画出电路总原理图。
在老师的带领下,我经过反复的练习,终于把设计好了。
通过这一周的学习,我认识到要设计一种东西,不仅需要掌握一定的知识,耐心和细心也是必不可少的。
这次课程设计,同时也加强了我们动手、思考和解决问题的能力。
通过这次设计,我学到了很多东西。
如:
查找资料,设计比较,从各种资料中提取所需。
也吸取了很多教训。
真正提高了动手能力,学会获取资料,活跃了自己思维,巩固了所学知识。
流水灯控制器的设计是对数字电路逻辑设计知识的实践应用。
加深了对知识的理解。
这次课程设计是一次非常难得的理论与实践相结合的机会。
通过这次设计,我摆脱了单纯的理论知识学习状态,与实际设计的结合,锻炼了我综合应用所学的专业基础知识的能力,解决实际工程问题的能力。
最后,再次对关心,帮助我的老师和同学表示衷心的感谢。
让我通过这次课程设计学会了团队合作的重要性。
参考文献
XX文献
EDA技术实用教程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计程车 计价器 EDA 设计
![提示](https://static.bingdoc.com/images/bang_tan.gif)