出租车计价器-课程设计报告
出租车计价器专业课程设计报告(含代码)
摘要随着社会的发展,出租车是人们生活中非常方便且较普遍的交通工具,出租车计价器的使用日益完善,现在我们引用单片机技术,使用编码和解码信息传递这种方式来完成计价器计数脉冲的形成;单片机可以很精确地检测到传感器信号。
用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能,本课程设计采用89C51的定时器T0产生的时钟,通过HD8255键盘显示电路用来显示行驶路程和价格及对计价的控制等从而实现了一个小型计价器系统。
关键字:计价器、单片机、89C51、HD8255目录一、设计要求 (1)1.1、基本要求: (3)1.2、要求分析: (3)二、系统组成及工作原理 (3)2.1系统的硬件构成及功能 (3)2.2 AT89S51单片机及其引脚说明 (4)2.3 AT24C01存储单元 (5)2.4系统工作原理 (5)三、方案设计对比 (6)3.1方案一: (6)3.2方案二: (6)3.3方案选择 (7)四、软件设计 (7)4.1系统主程序分析 (7)4.2计算程序 (8)4.3中途等待中断程序 (8)五、实验调试分析与结果 (9)5.1 实验调试 (9)5.2实验结果 (9)六、结论 (10)参考文献 (11)附录一: (12)一、设计要求1.1、基本要求:里程显示为:***.**公里;能预置起步价及单价:如起步3公里6.00元;1.60/公里;1.2、要求分析:1)起步价:乘客上车,显示起步价(6元),行车距离在3公里以内。
2)里程计价:(计价单位为元,并进行四舍五入)a.行车里程 < 3公里时,计价为6元;b.3公里≤行车里程时,计价为:6元+(里程-3)*1.6元/公里二、系统组成及工作原理2.1系统的硬件构成及功能本次设计主要有四个部分模块电组成,脉冲源产生脉冲提供给单片机,用来计算行驶路程,变换电路用来对产生的脉冲进行整形放大,单片机电路则控制整个系统的运行,8255键盘显示电路用来显示行驶路程和价格及对计价的控制。
EDA课程设计报告--出租车计价器
EDA课程设计报告--出租车计价器课程设计课程设计名称:出租车计价器专业班级学生姓名:学号:指导教师:课程设计时间:1 设计任务及要求出租车计价器根据乘客乘坐汽车行驶距离和等候时间的多少进行计价,并在行程中同步显示车费值。
从起步开始,行程3公里内,且等待累计时间2分钟内,起步费10元;3公里以外以每公里1.6元计费,等待累计时间2分钟外以每分钟1.5元计费。
并能显示行驶公里数、等待累计时间、总费用。
设计的主要技术指标:(1)计价范围:0—999.9元计价分辨率:0.1元(2)计程范围:0—99公里计程分辨率:1公里(3)计时范围:0—59分计时分辨率:1分本次设计中假设出租车的速度传感器具有出租车每行驶1Km提供1000个脉冲信号的特性。
当行驶速度小于等于6KM/h时为等待。
本设计的最终任务是显示出租车的等待时间和行驶里程,并计算出所需费用。
根据要求需要进行如下分工,首先要有一个分频模块(FPQ)产生系统工作用的基准信号1HZ,供系统中的有关模块计时用。
其次要有一个判断等待与否的模块(DDPB),再者就是要有计时和计程模块(DDSJ和LCJS),最后要有计费模块和显示译码模块(JFZ和YIMA)。
2设计原理及总体框图(1)设计总体框图图1总设计框图(2)设计总原理图图2设计总原理图设计总原理:测控FPGA芯片通过采集速度传感器脉冲信号WCLK进行行驶里程计算,利用外部脉冲信号CLK1产生标准时钟信号,用来计算等待时间,最后根据行驶里程、等待时间来计算计价值。
并用译码电路显示行驶里程、等待时间和计价值。
3 程序设计1.VHDL语言简单介绍VHDL语言(VHSIC Hardware Description Language,甚高速集成电路硬件描述语言)是一种设计、仿真、综合的标准硬件描述语言,是对可编程逻辑器件进行开发与设计的重要工具,其优点是:支持自上而下和基于库的设计,支持范围广,具有多层次描述系统硬件功能的能力。
出租车计价器课程设计报告
Engineering Project Management(2)Course paperTitle:Specialty:Taxi meterClass:H1303Name:Han TongLi XinhaoStudent ID:13109205161310920517CATALOG一、INTRODUCTION (1)二、OVERALL DESIGN SCHEME (2)(一)、S OFTWARE AND HARDWARE FLOW CHART (4)(二)、S OURCE PROGRAM DESIGN AND HARDWARE INTRODUCTION (6)2.1 8086 minimum system module (7)2.2 Chip 8255A (8)2.3 Chip 8253 (10)2.4Programmable control chip 8259A ............. 错误!未定义书签。
(三)、P ROBLEMS ENCOUNTERED ......................... 错误!未定义书签。
三、SUMMARY AND EXPERIENCE ........................ 错误!未定义书签。
四、REFERENCE: (15)APPENDIX .......................................... 错误!未定义书签。
一、IntroductionTaximeter is both passengers and drivers of the trade standards, it is an important symbol of the development of the taxi industry, is in a taxi is the most important tool. It is related to the interests of the parties to the transaction. With good performance of the meter whether is very necessary for the majority of taxi drivers or passengers. Therefore, the automobile valuation of is an application value.Our country in the 1970s began to taxi, but then the billing system mostly imported not only accurate, price is also very expensive. With the deepening of reform and opening up, the development momentum of the taxi industry has been very prominent, the domestic machinery manufacturers have launched domestic meter. Taxi valuation functions from at the beginning of the show only away (the driver himself pricing, calculated after four homes in five), to independent billing, and now can play an invoice and a voice prompt, according to time independent changes in price function. With the development of urban tourism, the taxi industry has become the city's window, a symbol of the civilization of a city Degree.With the development of the taxi industry, the taxi is an importantpart of urban traffic, starting from strengthening the industry management and reduce disputes of driver and passenger, with good performance meter to taxi drivers and passengers are very necessary. We design the 8086 based controller, to a44e Hall sensor location, on the taxi multifunctional pricing design, the output of the 8 digital tube display. 二、Overall design schemeBy 8253 as timer / counter, motor speed and measurement of motor speed control; 8255 as input and output interface, control digital tube display after the start mileage (after the decimal point from two effective value).Hardware connection description:Based on the DC motor controller, a motor speed measurement circuit is added.B the 8255 port as digital tube stroke code driven; the low four bits of aC port as the segment code control, showing the actual mileage. At the same time, also for the keyboard output column scan code; PC6 and PC7 input line scan code for the key identification, procedure using only the PC6 four buttons, which is defined as follows:X1: start / stop button; X2: accelerator key, and X3, X4 key combination to use; X3: "+" button; X4: "-" key.A mouth only uses the PA0, the output PWM pulse signal, by driving the motor, the output voltage is proportional to the duty cycle of the PWM pulse.The number of revolutions of the motor, through the hall element transformation for pulse number, into the 8253 passage 2, counting, speed is converted to mileage, the smallest unit is 0.01 km, send the recorded CPU. The results by the digital tube display.(一)、Software and hardware flow chartMain program flowstream(二)、Interrupt routineMileage counter interrupt routineWhenever Hall sensor outputs a low level signal makes a break, when the mileage counter on the mileage pulse meter over 1000 times, enter the mileage count the interrupt service program, mileage variables plus one. The main function of the total amount also correspondingly changes.Interrupt routineIn the middle of the pending interrupt program, 1ms each generate an interrupt, the current mileage value into a variable cache, every 5 minutes will be variable cache value and current mileage values compared when stop the car, the hall sensor for 5 minutes without signal output, current mileage value cache and variable quantity of the same value, then enter the waiting time, every 5 minutes to remember a price.Display programProcedures for the use of timer 1ms per generated once interrupted, the corresponding variable set, light a digital tube display a data display, recycling within the main function, realize the dynamic scan display, also according to the afterglow of the human eye and the persistence of digital tube, you can achieve the display.Keyboard programKeyboard using the way of inquiry, in the main program, when no key is pressed, the cycle of the main program, once the right button is pressed, they turn to the corresponding subroutine to deal with the end of the treatment to return.2.1 8086Minimum system module1、8086CPU constitute the system block diagram:2.2 Chip 8255A1、The role of 8255AIn this experiment, we use 8255A to transfer the digital quantity of analog quantity to CPU., and 8255 to control the work of ADC0809 by way of inquiry work..8086 sends control signals through 8255 to seven LED displays.2、Function analysis of 8255A8255A is parallel programming interface, can according to external conditions (I / O devices need to signal lines and it can provide the state line) to enable the various interface circuit.8255A internal three data port, namely port a, B, C a port port have three modes: mode 0, type 1 and type 2, and port B can only work in mode 0 or 1, and C usually as contact signal is used. In this experiment, the control word design 80h, initialization 8255, the port B, C as output.In three kinds of work, this design uses only mode 0, 0 is the basic input / output, in this way, three ports can by the program specified input / out of the way, but not both as input as output, did not provide a fixed contact network signal C divided into two four, four high and low four bits can be respectively arranged for input or output.3、Technical parameters of 8255A8255A pin signalSelect signal active, lowCS:Chip;A0:, address signal. A1PC JP52: port;PB JP53: port;1)Connected to a peripheral device.PA7~PA0:A port data signal line;PB7~PB0:B port data signal line;PC7~PC0:CPort data signal line;2)Connected to CPURESET: the reset signal. When this signal comes, all registers are cleared. At the same time three data ports are automatically set to the input port.D7~D0: they are connected to the 8255A data line and the system bus.CS: chip select signal. In the system, general according to all the interface chip to allocate at low address (such as the A5, A4, A3) composed of various chip select code. When the address consists of a low level, on 8255A is selected. Only when available, the signal read and write to the 8255 for reading and writing.RD: read the signal. When this signal is valid, the CPU can read data from the 8255A.WR: write a signal. When this signal is valid, CPU can write data to the 8255A.A0, A1: port selection signal.8255A has 3 data ports and 1 control ports, a total of 4 Ports:A1, A0 is 00, select the A port;A1, A0 is 01, select the B port;A1, A0 is 10, select the C port;A1, A0 11, select the control port.4、8255A mode control word8255A control word has two kinds: one is the way to select the control word, the other is the C port to press the position / reset control wordMode select control wordFigure 1 8255A control tableC port position / reset control wordchart2 8255A set / control table2.3 Chip 82531、8253 function analysisNMOS Intel8253 process is made of programmable counter / timer, there are several types of chip models, external pins and functions are compatible, but the work of the maximum count rate is different, such as 8253 (2.6MHz), 8253-5 (5MHz) Chip 8253 has three counters, were to become counter 0, counters 1 and 2, their bodies are completely the same. Input and output of each counter decided to to set in control register the control word, between each other to work completely independently. Each counter by three of the pins and the external contact and a clock CLK input and a gating signal input end of the gate, another output terminal out. Each internal counter is a 8 bits of the control register and a 16 bit count initial valueregister Cr, a count execution component CE and an output latch application Actuator is actually a 16 bit subtract counters, the initial value is the value of the initial value register, and the initial value register value is set by the program. The output latch Latch value is set by the program. The output latch ol is used to latch the count execution component Ce content, so that the CPU can be this read operation. Incidentally, Cr, CE and ol are 16 bit register, but can also for 8-bit registers to use 18253 role2、8253 pin signalCS:Chip select signal, activelow;A1, A0: address signal;2.4 programmable control chip 8259APrinciple of 8259AA piece of 8959A eight interrupt request line IR0~IR78259A by the operating system initialization, you can receive interrupt signal.8259A from the IR request line an interrupt signal, each request line a triggerto keep the request signal, so as to form the interrupt request register (IRR). At the same time, if the interrupt request signal line not be shielded, 8259A to CPU issued int signal, an interrupt request. At this time, if the CPU is in the allowed the interrupt status, the CPU will send inta signals to the 8259A enter the interrupt response time. If there is more than one letter of request , arriving at the same time, 8259A priority circuit will be priority selection for each request, the request of the highest priority in the interrupt response cycle and sent to interrupt service register (ISR) will it set, and reset the IRR of the corresponding bit. Then CPU again send a inta pulse to the 8259A, start another interrupt the corresponding period.8259A in the corresponding period to the data bus d0-d7 input an interrupt vector CPU according to the vector of X4 value can be from interrupt entry address table (IDT) remove the interruptservice program entry address into the interrupt service Procedures. While 8259A if the work in the automatic end interrupt (AEOI) mode automatically so that the corresponding bit in the ISR reset, or need to issue a EOI command to reset the ISR.In PC-XT/AT old - fashioned generally use a piece of 8259A interrupt request signal. In most modern PC, usually with two 8259A as level even. The piece is master slave, due to master an interrupt request line needs to be connected to the slave int foot, with the actual use of the external interrupt number is 15 (8 * 2 - 1).8259A structure1, data bus buffer --D7 ~ D0Data bus buffer for the three state, two-way, 8 bit registers, the data line D7 ~ D0 and CPU system bus connection, constitute the CPU and 8259A between the transmission of information channel.2, read / write control logic --WR/WDThe read / write control logic is used to receive the read / write control signal and the port address selection signal of the CPU system bus, which is used to control the read / write operation of the 8259A internal register.3, cascade buffer / comparator8259A can operate on a single, also can work in a plurality of cascade, cascade hardware connection as shown in Figure 6.10. Cascade buffer /comparator to provide multi chip 8259A management and selection function, the main chip, for the rest of the from the film.4, interrupt control logicInterrupt control logic to follow the programmed management approach to interrupt, responsible for on-chip components for sending a control signal to the and sent to a CPU interrupt request signal int and receive loopback CPU interrupt response of inta signals, control 8259A disruption into state management.5, interrupt request register (request register interrupt, IRR)IRR is an 8-bit registers, used to record the external interrupt request. Which D7 to d0 respectively and external interrupt request signal ir7 ~ ir0 corresponds, when IRi (I = 0 ~ 7) request (level or edge triggered), IRR the corresponding bit Di is set to 1, in response to interrupts inta signals effectively di is cleared.6, interrupt service register (service register interrupt, ISR)Di impulse impulse response (IRi ISR is an 8-bit registers, used to record the current CPU is service interrupt flag. When the external interrupt I = 0 ~ 7) requested by the CPU to enter service by the CPU to the first interrupt response inta ISR in the corresponding bit di (I = 0 ~ 7) is set to 1, and the ISR is restored to the throne the 8259A interrupt closing decision. If the definition for automatic closing, by the CPU of the second interrupt response inta along will reset to 0; if the definition is not automatically end, the CPU sends to the end of interrupt command in its reset .7, interrupt mask register (mask register interrupt, IMR)IMR is an 8-bit registers, used to store ir7 ~ ir0 interrupt mask flag. Its eight mask bit D7 to d0 and external interrupt request ir7 ~ ir0 corresponding, for controlling IRi request is allowed to enter. When the IMR Di bit is 1, corresponding to the IRi request forbidden; when the IMR Di bit is 0, then allow a corresponding interrupt request to enter. It can be set by software or clear. By programming setting mask word, can change the original priority level.See Appendix for program codeThree, summary and experienceAs a automation's big three students, I think doing computer programming is very meaningful, and it is very necessary. During the university time has passed, most of our contact is professional class. We master English in the classroom is only theoretical knowledge of professional courses, how to exercise our ability to practice? How to apply what we learn professional basic course of theory knowledge to practice it? I want to do a similar course design is for us to provide a good platform for practice.The importance to learn professional course curriculum design in the curriculum design process, I feel the deepest undoubtedly access to a large number of design data. In order to make their design more perfect, access to this information is very necessary, but also essential. Secondly, in this design, we use the previously learned knowledge, such as: assembly language, analog and digital circuit knowledge. Although in the past have never been alone used them, but in the learning process with a problem I find efficiency is very high, this is me to do the curriculum design of a harvest. On the other, the curriculum design, let me feel the team. In the team, I Our mutual cooperation, on the course design, which is crucial, lack of every person will have an impact on our design. Also to be thanked the teacher when we meet with difficulties, giving our suggestions and encouragement. End of the two weeks of the course design, but from the middle school to knowledge will let me a lifetime. The resultsshow that the proposed analysis, solve problems and practical ability raise will benefit to me in the future learning, work and life.For a period of two weeks of graduation design is nearing completion, with the help of Teacher Liu and Wang cordial guidance and students. The design is accomplished. On this to all give me the curriculum design guidance and help teachers and students to express the most sincere thanks:四、Reference1.Wu Xiuqing, Zhou Heqin < microcomputer principle and interface technology fourth edition >2.Zhou Changsen < electronic circuit computer simulation technology >3.Yang Suhang < microcomputer system principle and Application >appendix;Meter (using the speed controller to control the rotation of the motor, read the total mileage)DA TA SEGMENTT EQU 100 ;Timing cycle time (*T)T_HI DB 50 ;High level duration (*T_HI)NOW_T DB TNOW_HI DB 50T8253 EQU 609 ;Timer 8253 initial value =1.19M*0.512MS (basic cycle) =609RUN DB 0 ;Start stop signSPEED DW 0 ; MileageSTEP DW 50 ;10 meters of 8253 pulse number (that is, every 50 pulses, 10 meters ahead)TAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;0~9Display codeDISP DB 4 DUP (0),52H;Storage speedDA TA ENDSSTACK SEGMENT STACKDW 64 DUP(?) ;Define stack segmentSTACK ENDSCODE SEGMENT ;Code segment definitionASSUME CS:CODE,DS:DA TA ;Designated segmentSTART: MOV AX,DATAMOV DS,AXPUSH DS ;The current user DS segment into the stack to saveMOV AX,0000HMOV DS,AX ;Modify DS=0000H, point to the interrupt vector table where the segmentMOV AX,OFFSET IRQ0 ;Take out the entry offset address of the interrupt processing subroutine (in 0)ADD AX,2000H ;Fixed, actual address = load address offset + relative to the offset of the start of the 0MOV SI,0020H ;IR0 interrupt vector number 08H, in the vector table of the 20H~23HMOV [SI],AX ;Load offset address vector tableMOV AX,0000HMOV SI,0022HMOV [SI],AX ;Load segment address (0000H) into vector tableMOV AX,OFFSET IRQ7ADD AX,2000HMOV SI,0003CHMOV [SI],AX ;Load the offset address into the IRQ7 interrupt vectorMOV AX,0000HMOV SI,003EHMOV [SI],AX ;Load segment address (0000H) into vector tablePOP DS ;Recover user data segment DSMOV AL,13HOUT 20H,AL ;Write to ICW1MOV AL,08HOUT 21H,AL ;Write to ICW2MOV AL,01HOUT 21H,AL ;Write to ICW4MOV AL,7EH ;D7, D0 bit reset to 0OUT 21H,AL ;Write OCW1 (IMR); open IR7 8259A and IR0 interruptMOV AL,34H ;Set 8253 channel 0 working mode, 00110100BOUT 43H,AL ;CH0 uses the first to write low 8, after writing the high 8, the way 2, the binary countMOV AX,T8253 ;The initial value of the count is the basic cycleOUT 40H,AL ;Write to CH0MOV AL,AHOUT 40H,ALMOV AL,0B6H ;Set 8253 channel 2 working mode, 10110110BOUT 43H,AL ;CH2 first write low 8, after writing high 8 bit =0, 3, binary countMOV AX,STEPOUT 42H,ALMOV AL,AHOUT 42H,AL ;Write to CH2MOV AL,88H ;Write the way to control the word 8255A, set the way to work for 10001000BOUT 63H,AL ;A port mode 0 output, C port high 4 bit input, B port mode 0 output, CMouth low 4 bit outputMOV AL,00HOUT 60H,AL ;Off motorSTI ;Open interruptA1: MOV SI,OFFSET DISPMOV BL,2MOV AX,SPEEDA11: AND AL,0FHMOV [SI+3],ALAND AH,0FHMOV [SI+1],AHDEC SIMOV AX,SPEEDMOV CL,4ROR AX,CLDEC BLJNZ A11 ;The speed of the compression BCD code into a non compression code, into the bufferMOV SI,OFFSET DISPCALL DISPLAYMOV AL,00H ;Open switch scanOUT 62H,ALIN AL,62H ;Read C portAND AL,40HJZ A2 ;Key press, turn to read the keyboardJMP EXITA2: MOV AH,00H ;Record key scan codeMOV CX,04 ;Cyclic scan 4 timesMOV DL,77H ;Open the first line of the switch scan A21: INC AH ;Scan code +1ROL DL,1MOV AL,DLOUT 62H,AL ;Open a line of switch scanningIN AL,62H ;Read C portTEST AL,40H ;Take PC6 (Y1)JNZ A22 ;No key press, turnCALL DALEYCALL DALEY ;To shakeIN AL,62H ;Read C portAND AL,40H ;Take PC6 (Y1)JNZ A22 ;,CMP AH,2JNZ RELEA ;Is not to accelerate the key, turn (press theaccelerator key alone is invalid)OR AH,80H ;Is the accelerator key, the D7 bit =1JMP A22RELEA: CALL DISPLAYMOV AL,DLOUT 62H,ALIN AL,62HAND AL,40H ;Wait key releaseJZ RELEAJMP A23 ;AHSave scan code, =1 (X1 key press) start stop, =2 acceleration, =3'+', =4'-' key A22:LOOP A21JMP EXITA23: MOV AL,AHAND AL,0FHCMP AL,01HJNZ A3 ;Not press the start and stop button, then turnMOV AL,RUNTEST AL,01HJNZ A24 ;From start to stopMOV RUN,01 ;Set flagMOV NOW_T,T ;Reload time cycleMOV AL,T_HIMOV NOW_HI,AL ;Reload high level timingMOV SPEED,00 ;Re valuation (mileage)JMP EXITA24: MOV RUN,00 ;Reset start flagMOV AL,00HOUT 60H,AL ;Off motorJMP EXITA3: MOV AL,AHAND AL,0FHCMP AL,03JNZ A6 ;Not '+' button, turnMOV BL,1TEST AH,80HJZ A4 ;Did not press the accelerator keyMOV BL,10 ;Press the accelerator key, plus 10, plus 1.A4: ADD BL,T_HICMP BL,100JBE A5MOV BL,100A5: MOV T_HI,BL ;The percentage increase can not be >100% JMP EXITA6: MOV AL,AHAND AL,0FHCMP AL,04JNZ EXIT ;Not turn - keyMOV BH,01TEST AH,80HJZ A7 ;Did not press the accelerator keyMOV BH,10 ;Press the accelerator key, -10, normal -1 A7: MOV BL,T_HISUB BL,BHJNC A8MOV BL,00A8: MOV T_HI,BL ;The minimum percentage was 0%EXIT: JMP A1;IR0 8259A interrupt processing subroutine (8253 of the CH0 timer basic cycle 0.512MS) IRQ0: PUSH AXSTIMOV AL,RUNAND AL,ALJZ IREXIT ;Does not start, then the test speedMOV AL,NOW_TSUB AL,1JNZ IRSP1MOV NOW_T,T ;Reload time cycleMOV AL,T_HIMOV NOW_HI,AL ;Reload high level timingJMP IREXITIRSP1: MOV NOW_T,AL ;High duration to, the PA0 output is 0 MOV AL,NOW_HITEST AL,ALJNZ IRSP2MOV AH,00H ;High duration to, the PA0 output is 0JMP IRSP3IRSP2: SUB AL,1 ;High level duration less thanMOV NOW_HI,AL ;Value after saving -1MOV AH,01H ;PA0 output is 1, high levelIRSP3: MOV AL,AHOUT 60H,ALIREXIT: MOV AL,20H ;EOI interrupt routineOUT 20H,AL ;Write OCW2 8259ACLIPOP AXIRET ;Interrupt return;IR7 8259A interrupt processing subroutine (8253 CH2 count interrupt, 10 m)IRQ7: PUSH AXSTIMOV AX,SPEEDADD AL,01DAAXCHG AL,AHADC AL,00DAAXCHG AL,AHMOV SPEED,AXMOV AL,20H ;EOI interrupt routineOUT 20H,AL ;Write OCW2 8259ACLIPOP AXIRET ;Interrupt return;DISPLAY:PUSH AXPUSH BXPUSH CXPUSH DXPUSH SIMOV CX,4MOV DL,7FHMOV SI,OFFSET DISPMOV BX,OFFSET TABDISP1: ROL DL,1MOV AL,[SI]XLAT ;Lookup table to display codeTEST DL,02HJNZ DISP2 ;Is the second digit display?OR AL,80H ;Yes, add the decimal point. DISP2: OUT 61H,ALMOV AL,DL ;Allows X1, X2, X3, X4 (PC3~PC0) digital control in turnOUT 62H,ALCALL DALEYINC SILOOP DISP1 ;Four cycles, display speedXOR AL,ALOUT 61H,AL ;Guan XianshiPOP SIPOP DXPOP CXPOP BXPOP AXRET; time delay subroutine ;wait subroutineDALEY: PUSH CXMOV CX,0560H ;Internal cycle timesDALEY1:LOOP DALEY1 ;0560H times, to complete the delay POP CXRETCODE ENDSEND START。
出租车计价器报告(共10篇)
出租车计价器报告(共 10 篇)课程设计说明书课程:EDA 技术基础题目:出租车计费器学班级专XX 年12 月20 日长沙理工大学课程设计任务书物理与电子科学学院电信专业 1201 班姓名田伟正课程名称 EDA 技术基础题目出租车计费器长沙理工大学课程设计成绩评定表目录1.设计任务. ......................................12.设计方案. ......................................13.各功能模块的原理及思路分析.....................分频模块. ...................................计量模块. ...................................2 计费模块. ...................................控制模块. ...................................显示模块. ...................................4 模拟出租车脉冲信号发生器....................4 头文件......................................54.个人模块. ..........................55.个人模块方案验证. ..............................76.心得体会. ......................................8 参考文献. . (9)1.设计任务设计一个出租车自动计费器,计费包括起步价、行车里程计费、等待时间计费三部分。
起步价为元,2 公里之内按起步价计费,超过 2 公里,每公里增加元,等待时间单价为每 1 分钟元。
用数码管显示总金额、总里程、等待时间。
设汽车每前进十米里程传感器输出一个脉冲。
出租车计价器课程设计
燕山大学EDA课程设计报告书题目:出租车计价器(注:此文件应以同学学号为文件名)一、设计题目及要求题目名称:出租车计价器**要求:1.2 Km 起计价,起始价5 元,每公里1.2 元;2.传感器输出脉冲为0.5m/个(用适当频率的时钟信号代替即可);3.每0.5km 改变一次显示,且钱数提前显示(例如运行到2Km 时,应显示5.6 元);4. 分别用三位数码管显示公里数和钱数,另可设置其他必要的按钮。
二、设计过程及内容(包括○1总体设计的文字描述,即由哪几个部分构成的,各个部分的功能及如何实现方法;○2主要模块比较详尽的文字描述,并配以必要的图片加以说明,但图片数量无需太多)○1总体设计:分析题目可知,我们的题目可抽象成外界输入的计数脉冲计数以及对脉冲计数值的处理。
首先,对于原始脉冲我们搭建了一个计数器,分别由4000进制计数器和1000进制计数器构成。
其中4000进制计数器是对于前2Km的脉冲计数,而1000进制计数器是对于2公里后的每0.5km的脉冲响应。
当我们得到4000进制的脉冲的时候,关闭4000进制计数器。
开启1000进制计数器;然后就是公里数和钱数的显示,分析得知钱数是处于0、6、2、8、4之间构成循环,于是我们采用了JK触发器构成的计数器;而对于公里数就没有那么复杂,0、5之间循环的话我们之间采用了一个JK触发器构成的取反电路,即每个下降沿改变信号的电位(0000->4000),然后在每个5-0切换的周期输出进位信号;有了上面两个电路之后,我们做的工作就只有将数据显示出来。
我们做了一个6进制计数器,对应输入刷新频率,再将数据信号送入即可显示数据,不过由于输出的是BCD码,所以增加了一个译码器。
○2主要模块1、计数器模块计数器模块如图所示,当然我在后面电路用到的只有OUT05口,其他口我只是为了检测电路是否正常使用而设置。
电路由十一个74160计数器构成,其中前四个构成了一个四千进制计数器,在最后一级QC端我引出加上反相器后与时钟信号做与运算,这样就可以在达到4000的时候锁定该4000进制计数器,同时使QC端一直为1,同时,该信号还作为中间四个1000进制计数器的LDN端输入,即只有在4000个脉冲之后1000进制计数器才会正常工作。
出租车计价器设计报告
出租车计价器系别:电气信息工程学院专业:电子科学与技术小组:成员:目录1 前言 (3)2 系统设计方案 (4)2.1 系统的设计需求 (4)2.2 系统的工作原理 (4)3 系统硬件设计 (5)3.1 单片机介绍 (5)3.2 硬件组成 (8)4 系统软件设计 (12)5 仿真调试 (14)6 结论 (16)7 参考文献 (178)8 心得体会及致谢 (20)附录A 设计总图 (194)附录B 源程序 (205)1 前言随着生活水平的提高,人们已不再满足于衣食住的享受,出行的舒适已受到越来越多人的关注[1]。
相对于公共汽车拥挤与缓慢以及私家车高昂的费用,出租车无疑是一种低价高质的出行交通工具。
近年来越来越多的人为了出行方便舒适愿意选择使用出租车,出租车行业得以快速发展[2]。
出租车计价器是出租车营运收费的专用智能化仪表,随着电子技术的发展,出租车计价器的技术在不断进步和提高[3]。
最初的计价器计费模式较为单一,不便于在不同的运营环境下选取不同的计费模式。
考虑到出租车行驶可能会出现从市区行驶到郊区或者行驶到偏僻地区,郊区或偏僻区打车的人少的现象,司机空车行驶返回成本较高,这时需要乘客为空车返回的路程承担一定的费用,这就需要区分单程/往返不同计价模式。
“单程”模式是指目的地在郊区或者比较偏僻的地方,到达目的地后打车的人比较少,需要乘客乘客承担一定的空车返回的费用;“往返”模式是指目的地在市区,到达目的地后还会有乘客乘车返回,这种情况下司机不需要空车返回,乘客不需要承担回程费用。
考虑到夜晚时出租车的灯光需要消耗能源以及司机夜间服务比白天较为辛苦,所以一般夜晚出租车的价格需要比白天高一点。
早期的出租车计价器均采用模拟电路和数字电路设计。
计价器整体电路的规模较大,需要器件多,容易出故障,难调试。
和模拟电路和数字电路设计相比而言,基于单片机进行设计的计价器,用较少的硬件和适当的软件相互配合就可以很容易的实现设计需求,硬件电路简单,稳定性好,灵活性强[4],通过软件编程就可以实现计费模式的切换。
出租车计价器设计报告
出租车计价器设计
出租车计价器设计
3. 设计实现 该设计内容可分为分频模块,控制模块,计量模块和显示模块 设计一个出租车计费器,具有行车里程计费、等候时间计费以及起步价三部分,用数码管 显示行驶里程 行车里程单价1元/公里,等候时间大于五分钟后单价1元/1分钟,起价5元(4公里起价 ) 行车里程的计费电路将汽车行驶的里程数转换成与之成正比的脉冲数,然后由计数译码电 路转换成收费金额,实验中以一个脉冲模拟汽车前进十米,则每100个脉冲表示1公里,然 后用BCD码比例乘法器将里程脉冲乘以每公里单价的比例系数,比例系数可由开关预置
例如单价是1元/公里,则脉冲当量为w0.01元/脉冲
出租车计价器设计
用LED显示行驶公里数,两个数码管显示收费金额 硬件设计 1、 主控制器:选择一个合适的微控制器作为系统整体的主控制模块 2、 里程表接口:设计电路接受和处理来自出租车里程表的信号来获取行驶里程 3、 等待时间计数器:使用定时器来测量为顾客停留的等待时间 4、 显示模块:选择LED数码管用于实时显示行驶的里程和费用 软件设计 1、 里程和等待时间费用计算:编写程序来实现里程表和等待时间测量器计算费用。对应 不同时间以及不同里程段,应用不同的计费规则 2、 显示驱动:编写程序驱动显示模块进行实时更新
随着城市旅游业的发展,出租车行业已成为城市的窗口,象征着一个城市的文明程度
出租车计价器设计
随着EDA技术的高速发展,电子系统的设计技术发生了深刻的变化,大 规模可编程逻辑器件CPLD/FPGA的出现,给设计人员带来了诸多方便。 利用它进行产品开发,不仅成本低、周期短、可靠性高,而且具有完全的知识产权。本次课程设计采用FPGA作为控制芯片,其中只需控制 FPGA中的RAM的状态即可。FPGA芯片可以重复使用,其原因是内容逻辑 关系会在断电后自动消失。4
数字电路课程设计报告 出租车计价器
五邑大学数字电路课程设计报告题目:出租车计价器院系信息工程学院专业通信工程学号学生姓名指导教师报告题目:出租车计价器一、题目的要求和意义题目要求:租车计价器使用中小型集成电路和门电路设计出租车计价器要求完成以下功能●使用555定时器产生一个20ms的周期信号作为时钟信号。
●每1s的时间代表行驶1公里,每公里的收费为2元。
●有开始计价的按键和停止计价的按键。
●使用两位数码管动态显示所需收的费用,单位为元。
出租车计价器的设计任务分解成时钟模块、计时显示模块这样两个部分组成,如图1-1所示。
图1-1 出租车计价器框图我负责的是第二部分的即使显示模块。
系统总功能为:第一部分分别产生1s的计数信号和20ms扫频信号。
第二部分接收计数信号,数码管从0开始计数,每秒2的累加。
系统有暂停和复位功能。
意义:随着社会的进步以及人们生活水平的日益提高都促使交通工具的不断变化,无论是在大城市或是中小城市越来越多的出租车公司不断的出现。
出租车的出现方便了人们的生活,对于现在快节奏生活方式的人们来说出租车无疑是最好的交通工具。
那么其收费的方式自然而然就被给予关注,比如收费标准以及行驶里程等。
这时出租车计价器就在乘客和司机之间充当一个重要的角色了。
出租车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是租车中最重要的工具。
它关系着交易双方的利益。
具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。
因此,汽车计价器的研究也是十分有一个应用价值的。
现在我们就利用中小型集成电路和门电路来设计一个性能可靠、精准度高的出租车计价器。
1.培养学生根据需要选学参考书,查阅手册,图表和文献资料的自学能力,通过独立思考﹑深入钻研有关问题,学会自己分析解决问题的方法。
2.利用所学过的知识,通过设计计算﹑元件选取﹑电路板制作调试等环节,初步掌握工程设计的技能。
3.掌握常用仪表的正确使用方法,学会简单电路的实验调试和整机指标测试方法,使学生巩固和加深对数字逻辑电路的理论知识,锻炼学生的动手能力。
出租车自动计费器课程设计报告
电子课程设计——出租车自动计费器出租车自动计费器一、 设计任务与要求出租车自动计费器是根据客户用车的实际情况而自动显示用车费用的数字仪表。
仪表根据用车起价、行车里程两项求得用车的总费用,通过数码自动显示。
1. 设计一个自动计费器,具有行车里程计费,起价等部分。
用四位数码管显示总金额,最大金额是99.99。
2. 行车起价为8.00元,超过5公里为1.6元/公里(60公里每小时)二、总体框图模块功能与设计思路:计费的电路将汽车行驶的里程数转换成与之成正比的脉冲个数,在出租车转轴上加装传感器,以便获得“行驶里程信号”。
脉冲源为电路提供的脉冲的周期与行车里程正比。
起价部分电路通过脉冲源加在八百进制计数器上,在800个脉冲之前显示器一直显示0800,当八百进制计数器显示799时通过门电路控制使其停止计数(此时到达五公里)。
然后160进制计数有效,每计一个数,10000进制计数器也计一个数,显示器的数值加一。
三、器件选择与功能简介元器件名称数量备注555定时器 1 构成脉冲电路74LS190 8 十进制计数器74LS191 1 十六进制计数器行车里程 脉冲源起价10000进制计数器脉冲源160进制计数800进制计数器显示器74LS190逻辑符号 74LS191逻辑符号U174LS190NA 15B 1C 10D9~U/D 5QA 3QB 2QC 6QD 7~RCO 13MAX/MIN 12CLK 14~CTEN 4~LOAD1174ls190外接引线排列 74ls191外接引线排列单刀单掷开关 1 控制总电路单刀双掷开关 1 控制10000进制的置数端非门 1 构成八百进制计数器或门 2 控制八百进制计数器停在799的位置七输入与门 1 当799时输出高电平,八百进制计数器不再计数四位数码显示器 9 显示数字电阻 2 1个367ohm 1个4、7kohm电容 1 1个100uf 1个1 uf电源电压vcc 1 5v二输入与门 1控制800进制计数器到达799时,10000进制计数器开始计数U174LS191NA 15B 1C 10D9~U/D 5QA 3QB 2QC 6QD 7~RCO 13MAX/MIN 12CLK 14~CTEN 4~LOAD1174ls190时序图 74ls191时序图74ls190内部原理图 74ls191内部原理图74LS190是可预置数同步可逆加减十进制计数器,符号如图所示,它具有异步置数端LOAD,加减控制端D/U和计数控制端CTEN,为方便级联,设置了两个级联输出端RCO和MAX/MIN.;当加减控制端等于1时减计数,否则为加计数;当异步置数端等于0时置数,当计数控制段为1时禁止计数,为0时,四个触发器将在时钟上升沿开始计数;当计数器加计数,计数值为9或减计数,计数值为0时,MAX/MIN端输出与时钟周期相同的正脉冲,而RCO产生一个宽度为时钟低电平宽度的低电平,74LS191为四位二进制即十六进制同步加法计数器,其功能表与74LS190相同,如图所示输入输出CTEN LOAD D / U D C B A CPX O X d c b a X 异步预置O 1 O 加计数O 1 1 减计数11 XX 保持图.74LS190、191功能表555定时器555 芯片是定时器,,是一种将数字功能和模拟功能集为一体的中规模集成电路。
出租车计价器-课程设计报告
软件学院课程设计报告课程题目出租车计价器班级集成13-4专业集成电路设计与集成系统学生学号指导教师(填写自己班的指导教师)年月日1.课程设计目的全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。
2.课程设计题目描述和要求2.1.课程设计题目描述①.实现计费功能,计费标准为:按行驶里程计费,起步价为7.0元,并在车行3km 后按2.2元/km 计费,当计费器达到或超过20元时,每公里加收50%的车费,车停止不计费。
②.现场模拟功能:以开关或按键模拟公里计数,能模拟汽车起动、停止、暂停等状态。
③.将车费和路程显示出来,各有一位小数。
2.2.总体设计思路框架2.3.课程设计题目要求①.设计正确,方案合理。
②.程序精炼,结构清晰。
③.设计报告含程序设计说明,用户使用说明,源程序清单及程序框图。
④.上机演示。
⑤.有详细的文档。
文档中包括设计思路、设计仿真程序、仿真结果及相应的分析与结论。
3.设计思想和设计内容3.1 出租车计费设计该出租车计费器按下开关S1后开始计费和计里程数,起步价是7元,行驶3公里,以后2.2元/公里。
并且设计选择模块,在车费超过20元每公里加收50%车费即3.3元/公里。
3.2 基本设计思想出租车计费器根据设计要求可初步分为3方面——显示、记里程数、记费。
之后再根据三方面分别设计模块。
1.显示模块。
一般计数器显示数字为1-F即16进制,而16进制不方便观看,所以在设计这一模块时我们将16进制改为10进制输出进而设计了译码模块。
2、里程模块。
设计要求对里程计数主要分为两个方面,计数以及公里数比较。
即3公里之内收7元,3公里之后20元(通过计算为9公里)以内每公里2.2元,9公里以外为每公里3.3元。
出租车计价器课程设计报告
HEFEI UNIVERSITY微机原理和接口技术课程设计系别电子信息和电气工程系班级 09自动化(1)班姓名梁超蒋业万完成时间 2011-12-28论文题目出租车计价器的设计设计类型导师姓名主要内容及目标1.要求:①里程显示、起步价(5公里后按里程计费);②等时收费;③复位具有的设计条件1.PC机一台,EL教学实验箱一台及汇编程序;计划学生数及任务3人(1):明确课题对程序功能,运算精度等方面的要求及硬件条件(2):把复杂问题分解为若干模块,确定各模块处理方法,画出流程图。
(3):存储器资源分配(4):编制程序,根据流程图精心选择合适的指令和寻址方式来编制源程序(5):对程序进行汇编,调试和修改,直到程序运行结果正确为止。
计划设计进程(按课程设计周计算)第一周设计任务:(1):明确课题对程序功能,运算精度等方面的要求及硬件条件(2):把复杂问题分解为若干模块,确定各模块处理方法,画出流程图。
(3):存储器资源分配第二周设计任务:(4):编制程序,根据流程图精心选择合适的指令和寻址方式来编制源程序(5):对程序进行汇编,调试和修改,直到程序运行结果正确为止。
参考文献《微型计算机原理及接口技术》中国科技大学出版社吴秀清周荷琴编著《16-32位微型计算机技术及使用》清华大学出版社戴梅萼史嘉权编著<<汇编语言程序设计》南京大学出版社姚君遗编著《汇编语言程序设计教程》清华大学出版社杨记文编著《微型计算机原理及接口技术》实验指导书自动化专业微机原理课程设计任务书目录一、引言 (1)二、总体设计方案 (1)(一)、软硬件流程图 (2)(二)、源程序设计和硬件介绍 (5)2.1 8086最小系统模块 (5)2.2 芯片8255A (6)2.3 芯片8253 (7)2.4可编程控制芯片8259A (8)(三)、遇到的问题 (9)三、总结和体会 (10)四、参考文献: (10)附录 (11)一、引言汽车计价器是乘客和司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。
数电课设报告——出租车计价器
课程设计任务书学生姓名:专业班级:指导教师:许建霞工作单位:信息工程学院题目: 出租车计价器的设计与实现初始条件:本设计既可以使用集成译码器、计数器、定时器、脉冲发生器和必要的门电路等,也可以使用单片机系统构建多功能数字钟。
用数码管显示行驶里程、停车时间和计费值。
要求完成的主要任务: (包括课程设计工作量及技术要求,以及说明书撰写等具体要求)1、课程设计工作量:1周。
2、技术要求:1)设计一个出租车计价器。
要求用4位数码管显示行驶里程、停车时间和计费值,采用按键切换显示物理量。
2)出租车的起步价为3元,当里程行驶到1km后,费用为4元;当里程行驶到1.5km后,费用为5元;,当里程行驶到2km后,费用为6元;当里程行驶到2.5km后,费用为7元;当里程行驶到3km后,费用为8元;此后每公里计费为0.7元/0.5km。
停车每达3分钟,增加0.7元。
3)具有秒、分为60进制计数功能,能显示分、秒停车状态的计时结果,格式为:00:00min。
按照轮胎转动1圈为1m计算,计算并显示行驶的里程结果,格式为:000.0km。
能显示乘车费用,格式为:000.0元。
4)确定设计方案,按功能模块的划分选择元、器件和中小规模集成电路,设计分电路,画出总体电路原理图,阐述基本原理。
3、查阅至少5篇参考文献。
按《武汉理工大学课程设计工作规范》要求撰写设计报告书。
全文用A4纸打印,图纸应符合绘图规范。
时间安排:1、2013年5 月17日,布置课设具体实施计划与课程设计报告格式的要求说明。
2、年月日至年月日,方案选择和电路设计。
3、年月日至年月日,电路调试和设计说明书撰写。
4、2013年7月5日,上交课程设计成果及报告,同时进行答辩。
指导教师签名:年月日系主任(或责任教师)签名:年月日目录1. 1 原理图的设计 (4)1.1方案的选择、比较 (4)1.1.1 方案一 (4)1.1.2 方案二 (5)1.1.3 方案比较选择 (6)1.2 方案二的说明及电路 (6)1.2.1 AT89S52单片机及最小系统 (6)1.2.2 振荡电路 (7)1.2.3 按键单元 (7)1.2.4 显示单元 (8)1.2.5 存储单元 (9)1.3 系统总程序 (10)1.3.1系统总程序 (10)1.3.2 行驶路程子程序 (11)1.3.3 等待时间子程序 (12)1.4主要电路图及工作原理 (14)2 仿真结果分析 (15)3 分析测试数据 (16)4收获、体会、建议 (17)5元器件清单 (18)5.1单片机主板BOM清单 (18)5.2 显示部分器件 (19)6 主要参考文献资料 (20)附录一 (22)附录二 (23)摘要随着生活水平的提高,人们已不再满足于衣食住的享受,出行的舒适已受到越来越多人的关注。
出租车计价器的设计与实现课程设计报告书
附件1:学号:31课程设计题目出租车计价器的设计与实现学院信息工程学院专业通信工程班级姓名指导教师2013年 7月 5 日课程设计任务书学生:专业班级:指导教师:工作单位:信息工程学院题目: 出租车计价器的设计与实现初始条件:本设计既可以使用集成译码器、计数器、定时器、脉冲发生器和必要的门电路等,也可以使用单片机系统构建多功能数字钟。
用数码管显示行驶里程、停车时间和计费值。
要求完成的主要任务: (包括课程设计工作量及技术要求,以及说明书撰写等具体要求)1、课程设计工作量:1周。
2、技术要求:1)设计一个出租车计价器。
要求用4位数码管显示行驶里程、停车时间和计费值,采用按键切换显示物理量。
2)出租车的起步价为3元,当里程行驶到1km后,费用为4元;当里程行驶到1.5km后,费用为5元;,当里程行驶到2km后,费用为6元;当里程行驶到2.5km后,费用为7元;当里程行驶到3km后,费用为8元;此后每公里计费为0.7元/0.5km。
停车每达3分钟,增加0.7元。
3)具有秒、分为60进制计数功能,能显示分、秒停车状态的计时结果,格式为:00:00min。
按照轮胎转动1圈为1m计算,计算并显示行驶的里程结果,格式为:000.0km。
能显示乘车费用,格式为:000.0元。
4)确定设计方案,按功能模块的划分选择元、器件和中小规模集成电路,设计分电路,画出总体电路原理图,阐述基本原理。
3、查阅至少5篇参考文献。
按《理工大学课程设计工作规》要求撰写设计报告书。
全文用A4纸打印,图纸应符合绘图规。
时间安排:1、2103 年 5 月16 日,布置课设具体实施计划与课程设计报告格式的要求说明。
2、2013 年 6 月25 日至2013 年 6 月28 日,方案选择和电路设计。
3、2013 年 6 月29 日至2013 年7 月 3 日,电路调试和设计说明书撰写。
4、2013 年7 月5 日,上交课程设计成果及报告,同时进行答辩。
出租车计价器设计课设报告
(封面)XXXXXXX学院出租车计价器设计课设报告题目:院(系):专业班级:学生姓名:指导老师:时间:年月日摘要介绍了出租车计费器系统的组成及工作原理,简述了在EDA平台上用FPGA 器件构成该数字系统的设计思想和实现过程。
论述了计程模块,计费模块,计时模块,译码动态扫描模块等的设计方法与技巧。
AbstractThe taxi fare register system is introduced in this paper the composition and working principle of FPGA device in EDA platform are briefly discussed with the structure of the digital system design ideas and implementation process. Discusses the log module, billing module, timing module, decoding the dynamic scanning module design method and technique.1.引言:随着EDA技术的高速发展,电子系统的设计技术发生了深刻的变化,大规模可编程逻辑器件CPLD/FPGA的出现,给设计人员带来了诸多方便。
利用它进行产品开发,不仅成本低、周期短、可靠性高,而且具有完全的知识产权。
本文介绍了一个以Altera公司可编程逻辑芯片cyclone2系列的EP2C5T144C8的fpga芯片为控制核心、附加一定外围电路组成的出租车计费器系统。
随着社会的不断进步,人们生活水平的不断提高,出租车逐渐成为人们日常生活不可缺少的交通工具。
而计价器作为出租车的一个重要组成部分,关系着出租车司机和乘客双方利益,起着重要的作用,因而出租车计价器的发展非常迅猛。
2.系统规范:2.1 出租车计价器的要求:该计价器的计费系统:行程3公里(不含3公里)内,且等待累计时间2分钟内(不含2分钟),起步费为10元;3公里外以每公里1.6元计费,等待累计时间2分钟外以每分钟以1.5元计费。
数电课设:出租车计价器
目录一、出租车计价器的设计要求 (4)1.1题目要求及分析 (4)1.2确定合理的总体方案 (4)二、出租车计价器的组成框图 (5)2.1框图 (6)2.2原理 (6)三、组成部分介绍 (6)3.1计数器模块 (6)3.2显示模块 (7)3.3加法器模块 (8)四、总电路图 (8)五、课程设计总结 (10)一、出租车计价器的设计要求1.1题目要求及分析:设计一个出租车计价器,具体要求为:①5km起计价,起始价5元,每公里1.2元。
②传感器输出脉冲为0.5km/个。
③每0.5km改变一次显示,且提前显示(只显示钱数)。
题目分析:首先里程传感器每0.5km/个输出一个脉冲信号。
则对此脉冲信号进行计数,并显示计费5元,当行程5千米时,每发出一个脉冲时在5元的基础上家0.6元,同时将费用同样以计数器的形式加到总费用上,在行车时上述过程安行程反复的进行。
1.2 确定合理的总体方案一、设计方案:本设计方案分成计数器模块、显示模块、加法器模块来设计,每个模块独立设计。
①计数器模块设计:计数器模块利用1个74160进行计数分频,使10个信号产生1个脉冲,并锁存在“1”状态,使以后的脉冲在加法器产生信号,并向显示器发送信号。
根据模块实现的功能我采用了一个74160计数器,和一个SR锁存器及一个与门。
②加法器模块设计:加法器模块是用信号产生的6,利用74283加法器循环加6器,使他接受每个信号后都加6,并且当输出大于10的时候向上进,但保留个位,并输出到显示器.此模块用两个74283加法器和一个显示器及或非门、与门等。
这里一个加法器是用来实现减10功能的。
③ 显示模块设计:显示功能模块开启后就显示5元,然后没每来一个信号在5 元的基础上加0.6元。
这个模块的个位和十位用十进制计数器完成,小数点后由加法器实现。
二、出租车计价器的组成框图2.1框图62.1、设计原理:使用中、小规模集成电路来设计来设计逻辑电路,并按需求选用逻辑门;用十进制SR锁存器构成技术模块,以及有显示模块,用加法器实现循环加6的功能,最后按要求将这些模块连接起来。
出租车计费器课程设计报告
目录一、设计任务与要求 (3)二、总框体图 (3)三、选择器件 (5)四、功能模块 (6)1、模块se (6)2、模块di (7)3、模块jifei (8)4、模块zh (11)5、模块xxx1 (15)6、模块div_clk (17)7、模块docode3_8 (18)五、总体设计电路图 (19)1、总体电路原理图 (19)2、管脚分配图 (20)3、电路仿真结果 (21)4、硬件验证 (21)六、设计心得 (23)出租车计费器一、设计任务与要求1. 能实现计费功能,计费标准为:按行驶里程收费,起步费为7.00元,并在3km后按2.20元/km计费,当计费器计费达到或超过20元时,每公里加收50%的车费,车停止不计费。
2、现场模拟功能:能模拟汽车启动、停止及暂停以及加速状态。
3、设计动态扫描电路:将车费和里程显示出来,各有两位小数。
二、总体框图1、设计思路: (1) 根据出租车计费原理,将出租车计费部分由5个计数器来完成分别为counterA,counterB,counterC,counterD,counterE。
①计数器A完成车费百位。
②计数器B完成车费十位和个位。
③计数器C完成车费角和分。
④计数器D完成计数到30(完成车费的起步价)。
⑤计数器E完成模拟实现车行驶100 m的功能。
(2)行驶过程中车费附加50%的功能:由比较器实现。
(3)车费的显示:由动态扫描电路来完成。
用专用模块来实现,完成数据的输入即动2、设计方案比较:方案一:采用数字电路控制。
其原理方框图如图1.21.2所示。
采用传感器件,输出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计价,但是考虑到这种电路过于简单,性能不够稳定,而且不能调节单价,也不能根据天气调节计费标准,电路不够实用,所以我们不予采用。
图1.2方案二:采用单片机控制。
利用单片机丰富的IO端口,及其控制的灵活性,实现基本的里程计价功能和价格调节、时钟显示功能。
出租车计价器课程设计报告书
单片机应用与模拟训练设计报告摘要本设计基于AT89SC51单片机。
霍尔传感器用于采集轮胎转数信息,外部中断0用于将霍尔传感器采集的信息输入单片机,从而实现出租车里程的计算。
对于中间等待要等红绿灯的,用计时器计时,将时间换算成里程进行计费;输出器件采用数码管,本设计采用两个四合一共阴极数码管输出里程和费用;此外,本设计还设计了一个状态指示器来指示仪表的工作状态和显示状态。
出租车计价器是出租车行业计费系统的核心,是出租车行业发展的重要标志。
一个好的计价器对乘客和出租车行业都是必要的。
关键词:仪表,单片机,霍尔传感器目录1概述41.1出租车计价器概述41.2单片机概述42总体方案设计62.1设计任务要求6设计任务6设计要求62.2设计的主要功能62.3方案选择72.3.1硬件设计方案72.3.2软件设计方案73硬件设计93.1 AT89S52单片机及最小系统93.2测距装置113.3按键单元和状态显示单元143.4数字显示单元154软件设计174.1系统主程序174.2数据处理子程序184.3等待时间计时子程序194.4键盘扫描子程序205 Proteus软件仿真216课程设计过程中遇到的问题227课程设计的经验23参考231、原始程序代码242.附系统示意图301概述1.1出租车计价器概述出租车已成为我国城市公共交通的重要组成部分,是现代城市必不可少的基础设施,是人们工作生活中不可或缺的交通工具。
出租车服务行业与出租车计价器密切相关,因为出租车必须安装出租车计价器才能投入运营。
出租车计价器是一种可以根据乘客的距离和等待时间计算价格,直接显示车费数值的计量器具。
计价器是出租汽车经营者与出租汽车消费者公平交易结算的工具,因此计价器计价的准确性直接关系到经营者和消费者的经济利益。
根据国家相关法律法规,出租车计价器是首批列入国家强制检定的工作计量器具之一,也是国家质量技术监督部门近年来重点加强的六大计量器具之一。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件学院课程设计报告课程题目出租车计价器班级集成13-4专业集成电路设计与集成系统学生学号指导教师(填写自己班的指导教师)年月日1.课程设计目的全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序 的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用 设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。
2.课程设计题目描述和要求2.1.课程设计题目描述①.实现计费功能,计费标准为:按行驶里程计费,起步价为 7.0 元,并在车行 3km 后按 2.2 元/km 计费,当计费器达到或超过 20 元时,每公里加收 50%的 车费,车停止不计费。
②.现场模拟功能:以开关或按键模拟公里计数,能模拟汽车起动、停止、 暂停等状态。
③.将车费和路程显示出来,各有一位小数。
2.2.总体设计思路框架2.3.课程设计题目要求①.设计正确,方案合理。
②.程序精炼,结构清晰。
③.设计报告含程序设计说明,用户使用说明,源程序清单及程序框图。
④.上机演示。
⑤.有详细的文档。
文档中包括设计思路、设计仿真程序、仿真结果及相应的分析与结论。
3.设计思想和设计内容3.1 出租车计费设计该出租车计费器按下开关S1后开始计费和计里程数,起步价是7元,行驶3公里,以后2.2元/公里。
并且设计选择模块,在车费超过20元每公里加收50%车费即3.3元/公里。
3.2基本设计思想出租车计费器根据设计要求可初步分为3方面——显示、记里程数、记费。
之后再根据三方面分别设计模块。
1.显示模块。
一般计数器显示数字为1-F即16进制,而16进制不方便观看,所以在设计这一模块时我们将16进制改为10进制输出进而设计了译码模块。
2、里程模块。
设计要求对里程计数主要分为两个方面,计数以及公里数比较。
即3公里之内收7元,3公里之后20元(通过计算为9公里)以内每公里2.2元,9公里以外为每公里3.3元。
所以,我们将里程模块分为里程计数模块以为比较模块。
3.计费模块。
计费模块同里程比较模块所以将两个模块合二为一,为价格计算模块。
4.Verilog代码4.1顶层模块module taxi(clk,stop,rst_n,time1,time2,time3,time4,seg1,seg2,seg3,seg4);input clk;input stop;input rst_n;output[6:0]time1;output[6:0]time2;output[6:0]time3;output[6:0]time4;output[6:0]seg1;output[6:0]seg2;output[6:0]seg3;output[6:0]seg4;wire clk_fp;wire[15:0]distance;wire[15:0]price;wire[15:0]distan_bcd;wire[15:0]price_bcd;fp my_fp(clk,clk_fp,rst_n,stop);distance_counter dis_counter(clk_fp,rst_n,stop,distance); price_counter price_coun(clk_fp,rst_n,stop,price,distance);yimaqi distance_BCD(distance,distan_bcd,clk_fp);yimaqi price_BCD(price,price_bcd,clk_fp);dispaly_my aa(clk_fp,distan_bcd,seg1,seg2,seg3,seg4); dispaly_my bb(clk_fp,price_bcd,time1,time2,time3,time4);endmodule4.2分频模块module fp(clk,clk_fp,rst_n,stop);//50mhzinput clk;input rst_n;input stop;output clk_fp;reg[25:0]counter;reg clk_fp;always@(posedge clk or negedge rst_n or negedge stop) beginif(!rst_n)beginclk_fp<=1'd0;counter<=26'd0;endelse if(!stop)begincounter<=counter;endelsebeginif(counter==26'd49_999_999)beginclk_fp<=1'b1;counter<=1'b0;endelsebeginclk_fp<=1'b0;counter<=counter+1'b1;endendendendmodule4.3里程计算模块clk_fp,rst_n,stop,distance);input clk_fp;//1Sinput rst_n;input stop;output[15:0]distance;reg[15:0]distance;always@(posedge clk_fp or negedge rst_n) beginif(!rst_n)distance<=8'd0;else if(!stop)distance<=distance;elsedistance<=distance+5'd10;endendmodule4.4价格计算模块module price_counter(clk_fp,rst_n,stop,price,distance);input clk_fp;//1Sinput rst_n;input stop;input[15:0]distance;output[15:0]price;reg[15:0]price;always@(posedge clk_fp or negedge rst_n or negedge stop) beginif(!rst_n)price<=8'd0;else if(!stop)price<=price;elseif(distance<=30)price<=16'd70;else if(distance<=90&&30<distance)price<=price+16'd22;elseprice<=price+16'd33;endendmodule4.5译码模块module yimaqi(num_hex,BCD,clk_fp);input[15:0]num_hex;input clk_fp;output[15:0]BCD;reg[15:0]BCD;reg[3:0]yima[3:0];always@(posedge clk_fp)beginyima[0]<=(num_hex)%10;yima[1]<=(num_hex/10)%10;yima[2]<=(num_hex/100)%10;yima[3]<=(num_hex/1000)%10;BCD<={yima[3],yima[2],yima[1],yima[0]}; endendmodule4.6显示器模块clk_fp,BCD,seg1,seg2,seg3,seg4);input clk_fp;input[15:0]BCD;output[6:0]seg1;output[6:0]seg2;output[6:0]seg3;output[6:0]seg4;reg[7:0]seg1;reg[7:0]seg2;reg[7:0]seg3;reg[7:0]seg4;reg[3:0]shumaguan_aa[3:0];always shumaguan_aa[0]<=BCD[3:0]; always shumaguan_aa[1]<=BCD[7:4]; always shumaguan_aa[2]<=BCD[11:8]; always shumaguan_aa[3]<=BCD[15:12];parameter seg_num0=7'hC0,seg_num1=7'hF9,seg_num2=7'hA4,seg_num3=7'hB0,seg_num4=7'h99,seg_num5=7'h92,seg_num6=7'h82,seg_num7=7'hF8,seg_num8=7'h80,seg_num9=7'h90;always@(posedge clk_fp)begincase(shumaguan_aa[0])4'd0:seg1<=seg_num0;4'd1:seg1<=seg_num1;4'd2:seg1<=seg_num2;4'd3:seg1<=seg_num3;4'd4:seg1<=seg_num4;4'd5:seg1<=seg_num5;4'd6:seg1<=seg_num6;4'd7:seg1<=seg_num7;4'd8:seg1<=seg_num8;4'd9:seg1<=seg_num9;default:seg1<=seg_num0;endcasecase(shumaguan_aa[1])4'd0:seg2<=(seg_num0&7'b0111_1111);4'd1:seg2<=(seg_num1&7'b0111_1111);4'd2:seg2<=(seg_num2&7'b0111_1111);4'd3:seg2<=(seg_num3&7'b0111_1111);4'd4:seg2<=(seg_num4&7'b0111_1111);4'd5:seg2<=(seg_num5&7'b0111_1111);4'd6:seg2<=(seg_num6&7'b0111_1111);4'd7:seg2<=(seg_num7&7'b0111_1111);4'd8:seg2<=(seg_num8&7'b0111_1111);4'd9:seg2<=(seg_num9&7'b0111_1111);default:seg2<=(seg_num0&7'b0111_1111);endcasecase(shumaguan_aa[2])4'd0:seg3<=seg_num0;4'd1:seg3<=seg_num1;4'd2:seg3<=seg_num2;4'd3:seg3<=seg_num3;4'd4:seg3<=seg_num4;4'd5:seg3<=seg_num5;4'd6:seg3<=seg_num6;4'd7:seg3<=seg_num7;4'd8:seg3<=seg_num8;4'd9:seg3<=seg_num9;default:seg3<=seg_num1;endcasecase(shumaguan_aa[3])4'd0:seg4<=seg_num0;4'd1:seg4<=seg_num1;4'd2:seg4<=seg_num2;4'd3:seg4<=seg_num3;4'd4:seg4<=seg_num4;4'd5:seg4<=seg_num5;4'd6:seg4<=seg_num6;4'd7:seg4<=seg_num7;4'd8:seg4<=seg_num8;4'd9:seg4<=seg_num9;default:seg4<=seg_num0;endcaseendendmodule5.经验总结在这次设计过程中,我们遇到了很多问题,例如,在预置好起步价时,当里程超过基本里程时,价钱开始增加,在复位时出现了一些问题,还有在里程比较器和时间比较器中,最初比较器只用了一个只能比较一位二进制数,然而当里程大于10km或时间大于10分钟时比较器出现了问题,还有就是将超过的时间和里程转化为价钱时,仿真时出现了错误,而在所有问题中最主要问题是整个电路的连接问题。