基于CPLD出租车计费器的课程设计Word文件下载.docx
- 文档编号:13833771
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:29
- 大小:473.24KB
基于CPLD出租车计费器的课程设计Word文件下载.docx
《基于CPLD出租车计费器的课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于CPLD出租车计费器的课程设计Word文件下载.docx(29页珍藏版)》请在冰豆网上搜索。
其模块生成图如下:
图2.1计费模块
2.数据转换模块
此模块功能是将计费模块产生的车费与路程的模拟量转换成数字量并输出,它是一个模为10的加法计数器,可将计费模块输出的车费和路程转换成4位的十进制数。
其中DACLK为时钟信号,ASCORE、BSCORE连接计费模块的CHEFEI和LUC,输出为2个4位的十进制数,可以分别表示路程和车费情况。
当车运行于不同状况时,此模块会将不同的车费与路程状况转换为数字量并输出。
图2.2数据转换模块
3.片选信号产生模块
此模块功能是选择八段数码管按照设计要求进行正确的显示。
图2.3片选信号产生模块
4.显示模块
此模块为显示模块中的动态扫描/译码/数码管显示模块,功能是将已转换好的数字量加载到两个4位七段数码管上并加以显示。
C[2..0]为片选端,用来连接片选模块的片选输出端A[2..0],A1、A2、A3、A4、B1、B2、B3、B4分别连接数据转换模块的八个转换输出端,因为设计要求路程和车费都要用2位小数点来表示,所以须设置一个控制小数点的变量,即程序中的DP端,D[3..0]连接数码管控制模块的输入端。
图2.4显示模块
5.数码管控制模块
此模块功能是控制七段数码管对转换后的数字量进行显示,使其完成路程和车费的显示。
其中D[3..0]连接动态扫描/译码/数码管显示模块的D[3..0]端,Q[6..0]连接七段数码管,利用其控制特性在数码管上显示出车费和路程。
图2.5数码管控制模块
6.分频模块
div模块将实验箱上50Mhz脉冲信号分频为500hz。
div生成模块图:
图2.6分频模块
7.数码管选择模块
sel通过decode3_8模块选择数码管
decode3_8生成模块图:
图2.7数码管选择模块
三.各个模块设计及仿真
1.计费模块
计费模块源程序:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityjfmkis
port(clk,start,stop,pause,js:
instd_logic;
chefei,luc:
outintegerrange0to8000);
endjfmk;
architectureoneofjfmkis
begin
process(clk,start,stop,pause,js)
variablea,b:
std_logic;
variableaa:
integerrange0to100;
variablechf,lc:
integerrange0to8000;
variablenum:
integerrange0to9;
begin
if(clk'
eventandclk='
1'
)then
if(stop='
0'
)then
chf:
=0;
num:
b:
='
;
aa:
lc:
elsif(start='
=700;
andjs='
andpause='
if(b='
=num+1;
endif;
if(num=9)then
=lc+5;
=aa+5;
=lc+1;
=aa+1;
if(aa>
=100)then
a:
else
if(lc<
300)then
null;
elsif(chf<
2000anda='
=chf+220;
elsif(chf>
=2000anda='
=chf+330;
chefei<
=chf;
luc<
=lc;
endprocess;
endone;
jifei模块的时序仿真图:
图3.1计费模块时序仿真图
图3.2计费模块时序仿真图
时序仿真图分析:
图中的stop为汽车停止输入端,上升沿有效;
start为汽车启动输入端,上升沿有效;
pause为汽车暂停输入端,上升沿有效;
js为汽车加速输入端,上升沿有效。
CLK为时钟源信号;
chefei为汽车车费输出端,luc为汽车路程输出端。
由图3.1可知:
当stop,Start,pause,js全为高电平时路程按5的速度增加,起车车价为700.由图3.2可知,当路程增加到300时,车费变为920,以后路程每增加100,车费增加220
2.数据转换模块
x模块的源程序:
entityxis
port(daclk:
ascore,bscore:
inintegerrange0to8000;
age,ashi,abai,aqian,bge,bshi,bbai,bqian:
outstd_logic_vector(3downto0));
endx;
architecturert1ofxis
process(daclk,ascore)
variablecomb1:
variablecomb1a,comb1b,comb1c,comb1d:
std_logic_vector(3downto0);
if(daclk'
eventanddaclk='
if(comb1<
ascore)then
if(comb1a=9andcomb1b=9andcomb1c=9)then
comb1a:
="
0000"
comb1b:
comb1c:
comb1d:
=comb1d+1;
comb1:
=comb1+1;
elsif(comb1a=9andcomb1b=9)then
=comb1c+1;
elsif(comb1a=9)then
=comb1b+1;
=comb1a+1;
ashi<
=comb1b;
age<
=comb1a;
abai<
=comb1c;
aqian<
=comb1d;
process(daclk,bscore)
variablecomb2:
variablecomb2a,comb2b,comb2c,comb2d:
if(daclk'
if(comb2<
bscore)then
if(comb2a=9andcomb2b=9andcomb2c=9)then
comb2a:
comb2b:
comb2c:
comb2d:
=comb2d+1;
comb2:
=comb2+1;
elsif(comb2a=9andcomb2b=9)then
=comb2c+1;
elsif(comb2a=9)then
=comb2b+1;
=comb2a+1;
bshi<
=comb2b;
bge<
=comb2a;
bbai<
=comb2c;
bqian<
=comb2d;
endrt1;
图3.3数据转换模块时序仿真图
图3.4数据转换模块时序仿真图
图3.5数据转换模块时序仿真图
3.片选信号产生模块
se模块的源程序如下:
en
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 CPLD 出租车 计费 课程设计