重庆大学计算机硬件技术基础课程设计计程车计价器.docx_第1页
重庆大学计算机硬件技术基础课程设计计程车计价器.docx_第2页
重庆大学计算机硬件技术基础课程设计计程车计价器.docx_第3页
重庆大学计算机硬件技术基础课程设计计程车计价器.docx_第4页
重庆大学计算机硬件技术基础课程设计计程车计价器.docx_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

重庆大学计算机硬件课程设计2014年9月计算机硬件技术基础课程设计计程车计价器设计姓名: 学号: 姓名: 学号: 姓名: 学号: 重庆大学自动化学院二O一四年九月目录引言31.设计的主要内容和方案31.1设计基本内容31.2设计方案41.2.1设计框图41.2.2白天、晚上单价与起步价和原始路程设置41.2.3行驶中对车速调节41.2.4路程、总金额与速度、时间的变化关系51.2.5等待时间计费51.2.6 LED显示51.2.7语音报警51.2.8功能键设置51.3软件硬件设计61.3.1硬件设计61.3.2软件设计102.程序流程图112.1主程序流程图112.2初始化子程序流程图122.3键盘扫描子程序流程图122.4中断0程序控制步进电机132.5中断1控制单色LED显示132.6中断2控制熄灭LED的精确定时142.7中断3计时计算价格与公里数143.具体操作154.任务分工155.结果156.总结167.参考文献18程序清单19引言现如今,出租车出现在在各大小城市中,给人们带来了很大的便利,人们对出租车最关心的还是在于车价和路程行驶的合理和公道性。对此就要求一个较为合理简便的计价器的出现。因此我们结合本课程的基础知识来设计一个计程车计价器。1.设计的主要内容和方案1.1设计基本内容设计一个计程车计价器,用计算机试验系统完成计程车计价器的基本功能,并在此基础上自行完善和优化系统功能。基本功能具体要求如下:1.可以设置起步价、每公里单价。2.用三色LED显示计价结果,夜间价格用绿色显示,白天用红色显示;用单色LED显示车速。3.按键启动计程车起步价和停车,行驶过程中可以调整车速,并在LED上显示当前车速。按键开始计价和停止计价。根据车速和进行时间计算行驶距离,3公里后每公里增加1次单价,要求精确到角。若在计价过程中停车,则每隔5秒增加1次单价。计价过程中,LED上显示计价结果;停止计价后,计价结果继续显示5秒后,关闭LED。4.乘客上车时设定距目的地公里数,若司机故意绕道则声光报警(扬声器或蜂鸣器)。上述时间要求精确定时5.拓展:加入语音防绕路报警器,步进电机调速。1.2设计方案1.2.1设计框图80868255键盘管理模块8254定时模块8259定时中断模块8255速度显示模块8255价格显示模块语音播报系统步进电机 图1.1 模块功能设计框图1.2.2白天、晚上单价与起步价和原始路程设置通过4*4键盘来对单价、起步价以及原始路程进行输入设置,在机器内初始白天起步价为8元、每公里单价1.2元;夜间起步价10元、夜间每公里单价2元;中途停车每五秒计费为5毛钱。要改变这些设置可以在开车前进行基础价的设置功能,通过键盘输入,并在单色LED上显示,并编写键盘功能子程序与白天、夜间价格转换子程序实现。1.2.3行驶中对车速调节为了更好地体现汽车行驶过程(电机的运转),我们设计一个调速系统,汽车有三个档位机型调速,分别为0km/h,36km/h,72km/h;虽然有三个不同的速度,但是计费是按行驶距离计费因此不会影响到计费结果,需要通过调速子程序实现。1.2.4路程、总金额与速度、时间的变化关系总路程与总金额的计算是通过时间与速度来计算得到,当路程不足3公里时总金额为起步价,超过3公里后则按每公里加一次单价进行计算,可以用数学公式进行表示:路程=*T,起步价M=M0(S3),P为单价。作为路程与总金额的逻辑公式来计算。在此部分设计中要求有计价子程序。1.2.5等待时间计费当速度调为0时就进入等待时间,切换到停车计费子程序,在白天行驶时我们可以根据交通的实际情况设置等待时间中的计费价格P1,但晚上确认为固定的初始值;由于速度为零因此价钱与时间的关系可以用公式表示M=M0+T*P1。1.2.6 LED显示白天用红色的三色LED显示,夜间用绿的的三色LED显示,两者间可以通过按键切换,车速用单色LED显示;都通过子程序实现。1.2.7语音报警在开车前设置行驶路程,当到达目的地时,即停车收费时,若司机绕道,路程延长,则会报警,当然如果不设置路程则默认为999Km,也当然不会报警了,有语音模块实现。1.2.8功能键设置A键停车,但依旧计费B键以72km/h开车行驶C键以36km/h行驶行驶D键设置白天的起步价、每公里单价、停车计费价;同时在设置时D全为确认键E键设置路程F键设置过程中的删除键7键设置夜间的起步价、每公里价8键白天模式9键夜间模式0键总停止按键,关闭系统1.3软件硬件设计1.3.1硬件设计 图1.3-1硬件连线图图1.3-2 语音播报芯片连接图图1.3-3 8254定时/计数器原理图图1.3-4 4*4键盘原理图 图1.3-5 单色数码管原理图图 1.3-6 三色LED显示原理图图 1.3-7 8259A中断原理图图1.3-8 步进电机原理图图 1.3-9 实件连线图1.3.2软件设计通过对基本功能的分析,我们确定了相关的程序,其中包括了主程序,初始化子程序,键盘扫描子程序,中断0程序控制步进电机,中断1控制单色LED显示,中断2控制熄灭LED的精确定时,中断3计时计算价格与公里数2.程序流程图 2.1主程序流程图图2.1-1主程序流程图2.2初始化子程序流程图图2.1-2初始化子程序流程图2.3键盘扫描子程序流程图图2.1-3 键盘扫描子程序流程图2.4中断0程序控制步进电机图2.1-4中断0程序控制步进电机2.5中断1控制单色LED显示图2.1-5 中断1控制单色LED显示2.6中断2控制熄灭LED的精确定时图2.1-6中断2控制熄灭LED的精确定时2.7中断3计时计算价格与公里数图2.1-7 中断3计时计算价格与公里数3.具体操作1.按照硬件设计要求连接电路,下载程序。2.若要要设置行驶路程则按E设置,再按D确认;若不进行设置则跳过此步。3.按D进行白天起步价,单价,停车计费单价设置;输入完一次按D确认,到LED上显示三横杠为止。按7设置夜间起步价,单价,按D确认,到LED上显示三横杠为止。输入过程中输错可按F删除。4.设置完成后按B或者C开车(以72km/h和36km/h速度行驶)同时按F开始计价。5.途中要停车但不停止计费则按A,当到达目的地后按0停车停止计费。系统关闭。4.任务分工。5.结果按照小组硬件设计方案进行硬件连接,进行软硬件联合调试。最终调试结果为:在按下键盘E键之后单色LED上会立刻显示出空白区,进去路程设置10km;按下D键后,单色LED上立刻有三个空白区,依次输入起步价100(毛),单价010(毛),停车单价005(毛)-我们以毛为单位输入价钱。按下B或C,电机转,按下F开始计费,三色LED红色显示总价钱(以元为单位)。当按下A时电机停止,但计费按照停车计费继续计费,按0,当路程超过输入路程时语音系统报警,当没有超过路程时,不会播报。当进行夜间测试时,与白天的效果一样,就只是夜间下停车计费价钱为固定的5毛钱。6.总结7.参考文献1 杨天怡. 计算机硬件技术基础M.重庆:重庆大学出版社,2002.2 杨天怡. 计算机硬件技术基础实验教程M.重庆:重庆大学出版社,2002.程序清单24PA EQU 320HPB EQU 324HPC EQU 328HCONT EQU 32CHTIMER0 EQU 360HTIMER1 EQU 364HTIMER2 EQU 368HTIMER EQU 36CHADD0 EQU 340HADD1 EQU 348HINTQ0 EQU 40HINTQ1 EQU 41HINTQ2 EQU 42HINTQ3 EQU 43H.486CODE SEGMENT USE16ASSUME CS:CODEORG 2000HMAIN:JMP STARTDISPLY1 DB 8 DUP(0);静态扫描显示缓冲区LEDOFFTIME DB 0 ;计价结束之后熄灭LED延时时间NIGHTFLAG DB 00H ;日夜间标志MIAO5 DB 0 ;停车计时过程计数器STOPFLAG DB 0FFH;若停车,则为0FFH,不停车为00HANJIAN DB ?;按键键值JIEGUO DW ?;把三个单元的值转换为整数WEI DB 80H;数码管位选CISHU DB 00H;数码管扫描次数STEP DB 0H;电机步序TIMES DB 01H;电机换电枢所需计时数TIMESC DB 05H;按键改变的计时数SPEED DB 36 ;速度DISTANCE DW 0;行驶的公里数DISTANCEC DW 999 ;乘车者预估公里数MONEY1 DW 0;路程金额MONEY2 DW 0;计时金额MONEY DW 0;总价格NPRICE1 DW 100;夜间起步价NPRICE2 DW 20 ;夜间每公里单价PRICE1 DW 80;白天起步价PRICE2 DW 12;白天每公里单价PRICE3 DW 5 ;停车计时价格BUXU DB 0FEH,0FCH,0FDH,0F9H,0FBH,0F3H,0F7H,0F6H;步进电机步序DISPLY DB 8 DUP(0);动态扫描显示缓冲区JIAN DB 0EEH,0EDH,0EBH,0E7H,0DEH,0DDH,0DBH,0D7H,0BEH,0BDH,0BBH,0B7H,7EH,7DH,7BH,77H;键特征值表DUAN DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH,0BFH;数码管字形表ADDRESS1 DW 200H,204H,201H,205H,202H,206H,203H,207HSTART: CALL INIT;初始化系统;主程序MAINN: CALL KEYSCAN CMP ANJIAN,0FH ;启动计价 JE JIJIA CMP ANJIAN,00H ;停止计价 JE NJIJIA CMP ANJIAN,09H ;设置为夜间模式 JE NIGHT CMP ANJIAN,08H ;设置为日间模式 JE DAY CMP ANJIAN,07H ;设置夜间起步价和每公里单价 JE NJIAGE CMP ANJIAN,0EH ;设置最大路程 JE LUCHENG CMP ANJIAN,0DH ;设置价格 JE JIAGE CMP ANJIAN,0AH ;启动或者停止电机 JE KAI CMP ANJIAN,0BH ;电机加速 JE INC_SPEED CMP ANJIAN,0CH ;电机减速 JE DEC_SPEED JMP MAINNDEC_SPEED: MOV TIMES,01H;减速 MOV TIMESC,04H MOV SPEED,36 MOV STOPFLAG,0 MOVZX AX,SPEED CALL DANSE MOV DX,ADD1 IN AL,DX AND AL,0FEH OUT DX,AL JMP MAINNINC_SPEED: MOV TIMES,01H;加速 MOV TIMESC,02H MOV STOPFLAG,0 MOV SPEED,72 MOVZX AX,SPEED CALL DANSE MOV DX,ADD1 IN AL,DX AND AL,0FEH OUT DX,AL JMP MAINN JIJIA: MOV DX,ADD1 ;启动记录价格 IN AL,DX AND AL,0F7H OUT DX,AL JMP MAINN NJIJIA: MOV DX,ADD1 ;停止记录价格 IN AL,DX OR AL,08H OUT DX,AL MOV DX,ADD1 ;打开5秒关显示中断 IN AL,DX AND AL,0FBH OUT DX,AL JMP MAINNLUCHENG: CALL SHURU;乘车者预定义公里数 CALL CONVERT MOV AX,JIEGUO MOV DISTANCEC,AX JMP DSDJIAGE: CALL SHURU;改变起步价,每公里单价 CALL CONVERT MOV AX,JIEGUO MOV PRICE1,AX CALL SHURU CALL CONVERT MOV AX,JIEGUO MOV PRICE2,AX CALL SHURU CALL CONVERT MOV AX,JIEGUO MOV PRICE3,AXDSD: LEA SI,DISPLY MOV SI, BYTE PTR 17 INC SI MOV SI, BYTE PTR 17 INC SI MOV SI,BYTE PTR 17 JMP MAINN KAI: MOV STOPFLAG,0FFH ;起动或关闭电机MOV SPEED,0MOVZX AX,SPEEDCALL DANSE MOV DX,ADD1 IN AL,DX OR AL,01H OUT DX,AL JMP MAINNDAY: MOV DX,208HMOV AL,55HOUT DX,ALINC DXOUT DX,ALINC DXMOV AL,0DHOUT DX,ALMOV NIGHTFLAG,00HJMP MAINNNIGHT:MOV DX,208HMOV AL,0AAHOUT DX,ALINC DXOUT DX,ALINC DXMOV AL,0EHOUT DX,ALMOV NIGHTFLAG,0FFHJMP MAINNNJIAGE:CALL SHURU;改变夜间起步价,每公里单价 CALL CONVERT MOV AX,JIEGUO MOV NPRICE1,AX CALL SHURU CALL CONVERT MOV AX,JIEGUO MOV NPRICE2,AX LEA SI,DISPLY MOV SI, BYTE PTR 17 INC SI MOV SI, BYTE PTR 17 INC SI MOV SI,BYTE PTR 17 JMP MAINNWT: JMP WT ;将静态缓冲区中的数据送显SDISPLY PROCPUSHAMOV CX,5LEA SI,ADDRESS1LEA DI,DISPLY1LEA BX,DUANSQ:MOV DX,SIMOV AL,DIXLATCMP CX,2JNE HGXOR AL,80HHG:OUT DX,ALADD SI,2INC DILOOP SQPOPARETSDISPLY ENDP;将AX的值转换到静态显示缓冲区SDISCON PROCPUSHALEA SI,DISPLY1MOV DX,0MOV CX,10000DIV CXMOV SI,ALINC SIMOV AX,DXMOV DX,0MOV CX,1000DIV CXMOV SI,ALINC SIMOV AX,DXMOV CL,100DIV CLMOV SI,ALINC SIMOVZX AX,AHMOV CL,10DIV CLMOV SI,ALINC SIMOV SI,AHPOPARETSDISCON ENDP;根据路程计算价格(毛)SUANJIAGENIGHT PROCPUSHAMOV AX,DISTANCEMOV DX,0MOV CX,1000DIV CXCMP AX,3JA JSJSMOV AX,NPRICE1MOV MONEY1,AXJMP ERGGJSJS: MOV BX,NPRICE1 MOV MONEY1,BX SUB AX,3 MOV CX,NPRICE2 MUL CX ADD MONEY1,AXERGG:CMP STOPFLAG,0FFHJNE TTYYINC MIAO5CMP MIAO5,5JNE TTYYMOV AX,PRICE3ADD MONEY2,AXMOV MIAO5,0JMP TTYYTTYY: MOV AX,MONEY1ADD AX,MONEY2MOV MONEY,AXPOPARETSUANJIAGENIGHT ENDP;根据路程计算价格(毛)SUANJIAGEDAY PROCPUSHAMOV AX,DISTANCEMOV DX,0MOV CX,1000DIV CXCMP AX,3JA JSJSJMOV AX,PRICE1MOV MONEY1,AXJMP ERGJSJSJ: MOV BX,PRICE1 MOV MONEY1,BX SUB AX,3 MOV CX,PRICE2 MUL CX ADD MONEY1,AXERG:CMP STOPFLAG,0FFHJNE TYINC MIAO5CMP MIAO5,5JNE TYMOV AX,PRICE3ADD MONEY2,AXMOV MIAO5,0JMP TYTY: MOV AX,MONEY1ADD AX,MONEY2MOV MONEY,AXPOPARETSUANJIAGEDAY ENDP;把AX的值的后三位写入动态扫描缓冲区DANSE PROCPUSH SIPUSH CXPUSH AXLEA SI,DISPLYMOV CL,100DIV CLMOV SI,ALINC SIMOVZX AX,AHMOV CL,10DIV CLMOV SI,ALINC SIMOV SI,AHPOP AXPOP CXPOP SIRETDANSE ENDP;每秒中断一次,根据速度计算DISTANCE(米)INTP3 PROCPUSHAMOV AL,SPEED MOV DX,0MOV CL,10MUL CLMOV CX,36DIV CXADD DISTANCE,AXCMP NIGHTFLAG,0FFHJNE ITYCALL SUANJIAGENIGHTJMP CCCITY:CALL SUANJIAGEDAYCCC:MOV AX,MONEYCALL SDISCONCALL SDISPLYMOV AL,20H ;发送EOI结束命令 MOV DX,ADD0 OUT DX,ALPOPAIRETINTP3 ENDP;键盘输入整数SHURU PROC PUSHALEA SI,DISPLY;初始化显示缓冲区MOV CX,3SSD: MOV SI,BYTE PTR 16INC SI LOOP SSD MOV CX,5SD: MOV SI,BYTE PTR 17INC SI LOOP SD ;写入键盘接收的新值(共三位)MOV CX,4LEA BX,DISPLYSF: CMP CX,1JNE SLLCALL KEYSCANCMP ANJIAN,0DHJE ENENDCMP ANJIAN,0FHJE AN_FJMP SFSLL:LEA SI,DISPLYADD SI,4SUB SI,CXCALL KEYSCANMOV AL,ANJIANCMP AL,0FHJNE NQEADD CX,2DEC SICMP SI,BXJAE ZXMOV SI,BXZX:CMP CX,4 JNA XXXX MOV CX,5 XXXX: MOV SI,BYTE PTR 16LOOP SFNQE:MOV SI,ALLOOP SFJMP ENENDAN_F: LEA SI,DISPLY ADD SI,2 MOV SI,BYTE PTR 16 MOV CX,2 JMP SFENEND: POPARETSHURU ENDP;电机转速INTP0 PROC PUSHA MOV AL,TIMESC CMP TIMES,AL JE UPDATE INC TIMES JMP SSAUPDATE:MOV TIMES,01H MOV DX,203H LEA BX,BUXU MOV AL,STEP XLAT OUT DX,AL INC STEP CMP STEP,8 JNE SSA MOV STEP,0SSA: MOV AL,20H ;发送EOI结束命令 MOV DX,ADD0 OUT DX,AL POPA IRETINTP0 ENDP;延时关闭LED中断 INTP2 PROCPUSHA INC LEDOFFTIME CMP LEDOFFTIME,5 JNE POA MOV LEDOFFTIME,0 MOV DX,ADD1 ;关闭8259中断 MOV AL,0FFH OUT DX,ALMOV CX,4MOV DX,208HMOV AL,0FFHIOFI: OUT DX,ALINC DXLOOP IOFIMOV DX,PBMOV AL,0OUT DX,ALMOV AX,DISTANCEMOV DX,0MOV CX,1000DIV CXCMP AX,DISTANCECJNA POA MOV DX,203HMOV AL,0OUT DX,ALMOV CX,80DLYD:CALL DLY_LLOOP DLYDMOV AL,0FFHOUT DX,ALPOA: MOV AL,20H ;发送EOI结束命令 MOV DX,ADD0 OUT DX,ALPOPAIRETINTP2 ENDP;数码管扫描INTP1 PROCPUSH BXPUSH SIPUSH AXPUSH DXLEA BX,DUANLEA SI,DISPLYMOVZX AX,CISHUADD SI,AXMOV AL,SIXLATNOT ALMOV DX,PAOUT DX,ALMOV DX,PBMOV AL,WEIOUT DX,ALROR WEI,1INC CISHUCMP CISHU,8JNE FFFMOV CISHU,0FFF:MOV AL,20H ;发送EOI结束命令 MOV DX,ADD0 OUT DX,ALPOP DXPOP AXPOP SIPOP BXIRETINTP1 ENDP;把DISPLY的前三个单元转化为数值,存入JIEGUO单元CONVERT PROC PUSHALEA SI,DISPLYMOV AX,0MOV AL,SIMOV CL,100MUL CLMOV BX,AXINC SIMOV AL,SIMOV CL,10MUL CLADD BX,AXINC SIMOV AH,0MOV AL,SIADD BX,AXMOV JIEGUO,BX POPARETCONVERT ENDP;键盘扫描子程序,8255 C口高四位输出,低四位输入,转换后的结果存入ANJIANKEYSCAN PROC PUSHASCAN: MOV BL,0EFHLIE: MOV DX,PC MOV AL,BL OUT DX,AL MOV DX,PC IN AL,DX AND AL,0FH CMP AL,0FH JNE FINDK ROL BL,1 JC LIE JMP SCANFINDK:AND BL,0F0H AND AL,0FH OR BL,AL CALL DLY_LKEYUP:MOV AL,0 MOV DX,PC OUT DX,AL MOV DX,PC IN AL,DX AND AL,0FH CMP AL,0FH JNE KEYUP MOV AL,BLCHANGEKEY: MOV BL,0 MOV CX,16D LEA SI,JIANNOTFND:CMP AL,SI JE JSHU INC SI INC BL LOOP NOTFND MOV BL,55HJSHU: MOV ANJIAN,BL POPA RETKEYSCAN ENDP ;延时子函数DLY_L PROCPUSH CXMOV CX,03FFHNET:NOPLOOP NETPOP CXRETDLY_L ENDP ;初始化系统子函数INIT PROC ;初始化 8255 MOV DX,20CH MOV CX,4 MOV AL,80HQWQW: OUT DX,AL INC DX LOOP QWQW MO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论