出租车计价器微机接口课程设计.docx

上传人:b****2 文档编号:13977666 上传时间:2023-06-19 格式:DOCX 页数:21 大小:405.80KB
下载 相关 举报
出租车计价器微机接口课程设计.docx_第1页
第1页 / 共21页
出租车计价器微机接口课程设计.docx_第2页
第2页 / 共21页
出租车计价器微机接口课程设计.docx_第3页
第3页 / 共21页
出租车计价器微机接口课程设计.docx_第4页
第4页 / 共21页
出租车计价器微机接口课程设计.docx_第5页
第5页 / 共21页
出租车计价器微机接口课程设计.docx_第6页
第6页 / 共21页
出租车计价器微机接口课程设计.docx_第7页
第7页 / 共21页
出租车计价器微机接口课程设计.docx_第8页
第8页 / 共21页
出租车计价器微机接口课程设计.docx_第9页
第9页 / 共21页
出租车计价器微机接口课程设计.docx_第10页
第10页 / 共21页
出租车计价器微机接口课程设计.docx_第11页
第11页 / 共21页
出租车计价器微机接口课程设计.docx_第12页
第12页 / 共21页
出租车计价器微机接口课程设计.docx_第13页
第13页 / 共21页
出租车计价器微机接口课程设计.docx_第14页
第14页 / 共21页
出租车计价器微机接口课程设计.docx_第15页
第15页 / 共21页
出租车计价器微机接口课程设计.docx_第16页
第16页 / 共21页
出租车计价器微机接口课程设计.docx_第17页
第17页 / 共21页
出租车计价器微机接口课程设计.docx_第18页
第18页 / 共21页
出租车计价器微机接口课程设计.docx_第19页
第19页 / 共21页
出租车计价器微机接口课程设计.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

出租车计价器微机接口课程设计.docx

《出租车计价器微机接口课程设计.docx》由会员分享,可在线阅读,更多相关《出租车计价器微机接口课程设计.docx(21页珍藏版)》请在冰点文库上搜索。

出租车计价器微机接口课程设计.docx

出租车计价器微机接口课程设计

信息科学与技术学院

微机原理与接口技术

课程设计报告

 

 

题目名称:

出租车计价器

学生姓名:

王彪

学号:

2010508115

专业年级:

电信10级

(2)班

指导教师:

刘恩博老师

时间:

2012.12.31

 

1课程设计综述——————————————————————2

1.1课程设计的目的————————————————————2

1.2课程设计的题目————————————————————2

1.3题目要求———————————————————————2

2方案选择————————————————————————2

3硬件原理电路图的设计及分析———————————————3

3.1整体框图———————————————————————3

3.2各模块功能原理分析——————————————————4

4程序设计与分析—————————————————————6

4.1程序框图———————————————————————6

4.2各模块程序分析————————————————————7

5系统评价———————————————————————10

5.1程序运行——————————————————————10

5.2评价分析——————————————————————11

6心得体会———————————————————————12

 

1.课程设计综述

1.1课程设计的目的

微机原理与接口技术是一门理论结合实践的专业基础课,同时也是考研的考察科目。

可以毫不夸张的说,学好学精微机原理,在就业时就有了非常大的优势。

为了让我们更好的掌握汇编语言和各种芯片的特点和功能,安排了我们这次课程设计。

8086CPU及其相应的外围可编程芯片实现对计价器主体功能的实现是本次试验的目的。

1.2课程设计的题目

出租车计价器

1.3题目要求

(1)、实现计价功能。

(2)、实现手动设计单价。

(3)、实现显示里程、单价与总价。

(4)、扩展功能:

实现自动根据时间设定单价。

2.方案选择

根据题目要求,需要一个显示单价的显示器,并能够手动调整大小,要有一个公里显示器,来显示行走的路程,还有一个总价显示器,来达到计价功能。

翻阅大量资料后得知公里显示器的增加需要一个固定的脉冲或者霍尔式脉冲信号,我们用一个8253来设置脉冲。

把单价起始值设为5,设置一个加1和一个减1按钮,实现对单价的手动设置。

最后通过代码的相乘运算,把结果送到总价显示器,完成初步的实验目的。

为了显示以上三个数值,我们选用了三片8255芯片、1个2位7段LED数码管和2个4位7段LED数码管,CPU选用8086,地址总线通过两片74LS373进行地址锁存,一片连接74LS138连通3片8255的片选信号CS,一片连接各个8255的控制端口A1和A0。

通过3个单脉冲开关按钮实现对整个电路的控制。

原理框图如下所示:

3.硬件原理电路图的设计及分析

3.1整体电路图

3.2各模块功能原理分析

3.2.1CPU模块

选定8086工作在最小模式下,地址选通信号连接两片74LS373用于地址锁存,RD和WR信号连接3片8255的RD和WR引脚。

3.2.274LS373模块

CPU的总线连到两片74LS373的输入端,AD0~AD7接第一片用于三片8255和8253的A1、A0的选择控制,AD8~AD15接第二片用于连到74LS138并对三片8255和8253的CS片选信号进行选择。

LE信号连接CPU的地址选通引脚ALE,OE信号固定接地使之一直能够把锁存器中的数据传送到输出端。

3.2.374LS138模块

74LS138为常用的三线八线译码器,我们用它来进行3片8255和8253的选择,设置E1、E2、E3为有效电平使之工作,CBA为三线输入,000选择Y0端口输出,001选择Y1端口,010选择Y2端口,100选择Y4端口。

由此,三片8255和8253的端口地址已经可以确定,如下表所示:

端口

IOA/OUT0

IOB/OUT1

IOC/OUT2

IOCON/CON1

8255A0

8000H

8002H

8004H

8006H

8255A1

9000H

9008H

9010H

9018H

8255A2

0A000H

0A020H

0A040H

0A060H

8253A

0C000H

0C002H

0C004H

0C006H

3.2.48253模块

8253是定时计数器,使计时器0工作在模式3,我们设置为60次记0.1公里。

实现了车轮转速和公里数的转换。

3.2.58255模块

8255是通用的并行接口,在本次设计中,我们把PA口当做输入,PB和PC口当做输出,PB0~7和PC1~4连接LED灯做控制和显示作用。

由于三片8255的连线一致,所以我们把控制字统一设置为90H,使PA口做输入,工作在方式0,PB口做输出,亦工作在方式0,PC的高四位和低四位都工作在输出状态。

3.2.67段LED数码管显示模块

7段LED数码管分为共阳极和共阴极两种,本次设计我们采用共阴极,ABCDEFG是每一段LED的引脚,1234为位选通信号,由于是共阴极,所以是低电平有效,采用动态显示的方法显示每一位数码管。

由此可以得到数字0~9相对的ABCDEFG电平,如下表所示:

0

1

2

3

4

5

6

7

8

9

3FH

06H

5BH

4FH

66H

6DH

7DH

07H

7FH

6FH

若要加入小数点显示,则十六进制的第二位全部加8即可,具体如下表所示:

0

1

2

3

4

5

6

7

8

9

0BFH

86H

0DBH

0CFH

0E6H

0EDH

0FDH

87H

0FFH

0EFH

 

4.程序设计与分析

4.1程序框图

 

4.2各模块程序分析

DATASEGMENT

COUNTDB05;单价计数器,初值为5

COUNT1DB00;公里计数器,初值为0

SHIWEIDB?

;单价十位

GEWEIDB?

;单价个位

BAIWEI1DB?

;公里百位

SHIWEI1DB?

;公里十位

GEWEI1DB?

;公里个位

BAIWEI2DB?

;总价百位

SHIWEI2DB?

;总价十位

GEWEI2DB?

;总价个位

TEMPDB0;以下三个为按钮判断值

TEMP1DB0

TEMP2DB0

SEGTABDB3FH,06H,5BH,4FH,66H

DB6DH,7DH,07H,7FH,6FH

;不带小数点的7段LED数码管码制

SEGTAB1DB0BFH,86H,0DBH,0CFH,0E6H

DB0EDH,0FDH,87H,0FFH,0EFH

;带小数点的7段LED数码管码制

DATAENDS

CODESEGMENT;

ASSUMECS:

CODE,DS:

DATA

IOAEQU8000H;各个端口的端口地址

IOBEQU8002H

IOCEQU8004H

IOCONEQU8006H

IOA1EQU9000H

IOB1EQU9008H

IOC1EQU9010H

IOCON1EQU9018H

IOA2EQU0A000H

IOB2EQU0A020H

IOC2EQU0A040H

IOCON2EQU0A060H

JSQ0EQU0C000H

JSQ1EQU0C002H

JSQ2EQU0C004H

CON1EQU0C006H

START:

MOVAX,DATA

MOVDS,AX

MOVAL,90H;设置8255控制字

MOVDX,IOCON

OUTDX,AL;输出到三个控制端口

MOVDX,IOCON1

OUTDX,AL

MOVDX,IOCON2

OUTDX,AL

MOVAL,16H;设置8253控制字

MOVDX,CON1

OUTDX,AL

MOVAL,60

MOVDX,JSQ0

OUTDX,AL

START1:

MOVDX,IOA

INAL,DX;接收来自PA口的脉冲信号

NOTAL;接收为低电平,变为高电平

ANDAL,01H;屏蔽其它位,只接收PA0口

CMPAL,TEMP

JZSTART2

MOVTEMP,AL

;与判断值相比,若不同则不跳转,若相同则说明长按或者没按,直接跳转到START2

ADDAL,COUNT

MOVCOUNT,AL;对单价计数器加1

START2:

MOVDX,IOA2

INAL,DX

NOTAL

ANDAL,01H

CMPAL,TEMP2

JZSTART3

MOVTEMP2,AL

CMPCOUNT,0;若单价为0则不再减1

JZSTART3

SUBAL,COUNT

MOVCOUNT,AL;对单价计数器减1

START3:

MOVDX,IOA1

INAL,DX

NOTAL

ANDAL,01H

CMPAL,TEMP1

JZFENJIE

MOVTEMP1,AL

ADDAL,COUNT1

MOVCOUNT1,AL;对公里计数器加1

FENJIE:

;对单价计数器的值进行分解

MOVAL,COUNT

MOVAH,0

MOVCL,10

DIVCL

MOVSHIWEI,AL;分成十位和个位

MOVGEWEI,AH

FENJIE1:

;对公里计数器进行分解

MOVAL,COUNT1

MOVAH,0

MOVCL,10

DIVCL

MOVGEWEI1,AH

MOVAH,0

DIVCL

MOVSHIWEI1,AH

MOVBAIWEI1,AL;分百位十位和个位

FENJIE2:

;对总价进行分解

MOVAL,COUNT

MOVAH,0

MOVCL,COUNT1

MOVCH,0

MULCX;单价和公里数相乘得总价

MOVCL,10

DIVCL

MOVGEWEI2,AH

MOVAH,0

DIVCL

MOVSHIWEI2,AH

MOVBAIWEI2,AL;分百位十位和个位

DISP:

;三个值的显示程序

MOVAL,00000110B

;单价显示器是二位7段LED数码管,所以只屏蔽两位位选信号,1是未选中

MOVDX,IOC

OUTDX,AL

MOVAL,00011110B

;总价和总公里用四位7段LED数码管

MOVDX,IOC1

OUTDX,AL

MOVDX,IOC2

OUTDX,AL

;显示公里百位

XORAX,AX

MOVAL,BAIWEI1

MOVSI,AX

MOVAL,SEGTAB[SI];数码管码制转换

MOVDX,IOB1

OUTDX,AL;输出百位

MOVAL,00011010B;开百位位选信号

MOVDX,IOC1

OUTDX,AL

CALLYS

;输出后执行延时,让该位短暂显示

;总价百位

XORAX,AX

MOVAL,BAIWEI2

MOVSI,AX

MOVAL,SEGTAB[SI]

MOVDX,IOB2

OUTDX,AL

MOVAL,00011010B

MOVDX,IOC2

OUTDX,AL

CALLYS

;显示后继续全部关闭

MOVAL,00000110B

MOVDX,IOC

OUTDX,AL

MOVAL,00011110B

MOVDX,IOC1

OUTDX,AL

MOVDX,IOC2

OUTDX,AL

;单价十位

XORAX,AX

MOVAL,SHIWEI

MOVSI,AX

MOVAL,SEGTAB[SI]

MOVDX,IOB

OUTDX,AL

MOVAL,00000100B

MOVDX,IOC

OUTDX,AL

CALLYS

;公里十位

XORAX,AX

MOVAL,SHIWEI1

MOVSI,AX

MOVAL,SEGTAB1[SI]

;用带小数点显示十位

MOVDX,IOB1

OUTDX,AL

MOVAL,00010110B

MOVDX,IOC1

OUTDX,AL

CALLYS

;总价十位

XORAX,AX

MOVAL,SHIWEI2

MOVSI,AX

MOVAL,SEGTAB1[SI]

;用带小数点显示十位

MOVDX,IOB2

OUTDX,AL

MOVAL,00010110B

MOVDX,IOC2

OUTDX,AL

CALLYS

;显示后继续全部关闭

MOVAL,00000110B

MOVDX,IOC

OUTDX,AL

MOVAL,00011110B

MOVDX,IOC1

OUTDX,AL

MOVDX,IOC2

OUTDX,AL

;单价个位

XORAX,AX

MOVAL,GEWEI

MOVSI,AX

MOVAL,SEGTAB[SI]

MOVDX,IOB

OUTDX,AL

MOVAL,00000010B

MOVDX,IOC

OUTDX,AL

CALLYS

;总公里个位

XORAX,AX

MOVAL,GEWEI1

MOVSI,AX

MOVAL,SEGTAB[SI]

MOVDX,IOB1

OUTDX,AL

MOVAL,00001110B

MOVDX,IOC1

OUTDX,AL

CALLYS

;总价个位

XORAX,AX

MOVAL,GEWEI2

MOVSI,AX

MOVAL,SEGTAB[SI]

MOVDX,IOB2

OUTDX,AL

MOVAL,00001110B

MOVDX,IOC2

OUTDX,AL

CALLYS

JMPSTART1;完成一次显示后继续

YSPROCNEAR

MOVCX,500

DELY:

NOP

LOOPDELY

RET

YSENDP

CODEENDS

ENDSTART

5.系统评价

5.1程序运行

整个程序能够正常运行和显示,运行图如下所示:

(1)开始运行

(2)公里数增加

(3)手动设置单价

5.2评价分析

本设计针对出租车计价器还有许多不足之处,并不是现今流行的出租车计价器,即一定公里数内为定价,超出公里数后开始计价,只完成了题目的初步要求。

本设计的特点在于可以手动设置单价

整个电路其实并不用太多的8255芯片,可以把两片对应于4位7段LED数码管的显示部分进行精简,即用一个8255芯片控制两个数码管,让他们公用输出端口,只要输出时正确选择位选信号即可。

对单价做减价处理时,单价为0时不再做减1处理,但运行时发现有不稳定显示现象,即在按钮按住不放时显示不正确,可能是对各个寄存器的处理并不到位,处理方法可以是做好各个寄存器的保护工作。

系统只设置了单价从0到99,总价和公里从0到99.9,若超出则会出现乱码现象,我们可以在计数器之后设置判断和跳转指令,即超出显示范围时对计数器赋0处理。

总体来说,本次设计基本完成了题目要求。

6.心得体会

通过本次课程设计,让我受益颇丰。

拿到题目时,我即联想到了实验课上老师给我们演示的显示系统,之后,我翻阅了微机接口的有关图书资料后,对设计整体思路有了大概把握。

查阅了7段LED数码管的工作原理,由于在实验时忽略了共阴极和共阳极的区别,所以在位选时出了很多差错,但最后得到了解决,共阴极的位选信号是0有效,共阳极的位选信号是1有效。

对于8255和8253芯片的使用也得到了进一步的提升,对于最初的地址设置步骤也得到了进一步练习,即可以通过锁存器对地址进行锁存,译码器对地址进行译码转换,让CPU的地址线得到扩展。

本次实验最大的收获是学会了如何正确使用7段LED数码管以及对程序设计的总体分析及把握。

程序在刚开始运行时存在很多错误,经过多次重新更改和测试得到了改善,对于汇编的很多细节得到了更好的认识,例如16位的数字若开头是字母则应该在字母前面加0来表示16进制。

对于PROTEUS的使用也得到了进一步的熟练,使我能够更加得心应手的使用这款软件,在翻阅资料的过程中发现PROTEUS是设计单片机的重要软件,许多单片机设计都在该软件中设计,这使我明确了接下来的学习方向以及对PROTEUS的重视,这款软件还有许多其他的分析仿真功能等待我们去使用,应该努力学习,为之后的单片机课程打下基础。

本次实验的成功也使得我对学习微机原理和单片机的热情高涨,不足和不懂之处还有许多,望老师能够多加指导。

参考文献:

[1]戴梅萼史嘉权•微型计算机技术及应用(第4版)•清华大学出版社,2008

[2]宋廷强等•32位微机原理与接口技术实验指导•化学工业出版社,2009

[3]佘新平等•数字电路设计仿真测试•华中科技出版社,2011

[4]周润景等•基于PROTEUS的电路及单片机设计与仿真(第2版)•北京航空航天大学,2010

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2