汽车速度控制系统说明书.docx
《汽车速度控制系统说明书.docx》由会员分享,可在线阅读,更多相关《汽车速度控制系统说明书.docx(18页珍藏版)》请在冰豆网上搜索。
汽车速度控制系统说明书
摘要
随着电子技术的发展,计算机在现代科学技术的发展中起着越来越重要的作用。
多媒体技术、网络技术、智能信息处理技术、自适用控制技术、数据挖掘与处理技术等都离不开计算机。
本课程设计是基于微机原理与接口技术的简单应用。
汽车速度控制系统是将在现场采集的速度控制信息(用键盘模拟控制信息,通过I/O端口芯片将信息输入),经I/O接口芯片将将键盘控制信息送至微处理器,然后计算机按照读入的键盘号对汽车速度进行相应的控制,再将汽车速度送至接口芯片并在显像管中显示当前速度,当确定速度档位后,通过二极管发光显示当前档位,设置紧急情况为不可屏蔽中断,当出现紧急情况出发中断紧急处理情况。
关键字:
8086系统LED显示8255APWM控制直流电机
第一章硬件介绍
1.18086最小系统模块
(1)8086CPU构成的最小模式系统如图:
(2)硬件连接框图
1.2可编程并行接口芯片8255A
1.2.18255A的作用
与8086最小系统相连,通过74LS138译码器选通8255A,用来扩展8086的IO口引脚,以便于控制更多设备。
1.2.28255A的功能分析及技术参数
1、8255A的工作方式:
8255A有3种工作方式。
可用软件编程来指定。
方式0:
基本输入输出方式
适用于无条件传送和查询方式的接口电路。
方式1:
选通输入输出方式
适用于查询和中断方式的接口电路。
方式2:
双向输入输出方式
适用于双向传送数据的外设。
适用于查询和中断方式的接口电路。
8255A的内部结构图
2、引脚信号
8255A的引脚如图,分为数据线、地址线、读/写控制线、输入/输出端口线和电源线。
8255A芯片引脚
外部引线有40个引脚,双列直插式结构。
D0~D7为双向数据信号线,用来传送数据和控制字。
为读信号线,与其他信号线一起实现对8255A接口的读操作。
为写信号线,与其他信号一起实现对8255A的写操作
为片选信号线,低电平有效,选中该8255芯片。
A0,A1为口地址选择信号线。
A1、A0=00,选中端口A;
A1、A0=01,选中端口B;
A1、A0=10,选中端口C;
A1、A0=11,选中控制端口。
RESET为复位输入信号。
PA0~PA7为A口的8条输入输出信号线。
PB0~PB7为B口的8条输入输出信号线。
PC0~PC7C口8条线根据其工作方式可作为数据的输入或输出线,也可以用作控制信号的输出或状态信号的输入线。
1.3PWM控制直流电机
1.3.1带有H桥的直流电机
H桥由8个晶体管连接组成,通过控制PWM端的高低电平来控制直流电机两端的电压,从而达到控制直流电机两端的正压时间长短,从而控制直流电机的转速,达到控制汽车速度的目的。
带有H桥的直流电机
1.3.2PWM调制原理
与8086相连的8253A,通过8086的预先设置好的控制字,设置好8053的工作方式,使之不断产生高低电平长度不同方波。
当为高电平的时候,相当于通过H桥后为直流电机加上正电压,使直流电机正向加速,,当为低电平的时候,直流电机停止加速。
这样不断的高低电平交替,实现了控制电机的转速。
在8086中的程序中,可不断改变8253A的定时时间来达到调节速度的目的。
1.4一组按键控制
应用一排按键模拟汽车控制的K1,K2,K3,A,B,C,D和ESC按键。
如图所示:
一排按键图
1.5LED显示模块
采用共阴极4位显示数码管,如图所示:
共阴极4位显示数码管
第二章系统设计和理论分析
2.1系统工作原理
本系统是将在现场采集的速度控制信息(用键盘模拟控制信息,通过I/O端口芯片将信息输入),经I/O接口芯片将将键盘控制信息送至微处理器,然后计算机按照读入的键盘号
对汽车速度进行相应的控制,再将汽车速度送至接口芯片并在显像管中显示当前速度,当确定速度档位后,通过二极管发光显示当前档位,设置紧急情况为不可屏蔽中断,当出现紧急情况出发中断紧急处理情况。
在键盘管理模块中,按键“1”启动系统,汽车以最低速度行驶,同时用一盏绿灯显示档位,数码管显示速度,最低速度为5KM/h当需要换挡时用键盘键入“2、3”并将用一盏黄灯合格一盏红灯显示并显示相应的速度;汽车慢加速时用“4”建,急加速时用“5”键,慢刹车用“6”键,急刹车用“7”键,加速和刹车时用数码管显示相应的速度变化;当汽车需紧急停车时,键入“8”键所有发光二极管熄灭同时用数码管显示0。
2.2总体设计框图
2.3程序流程图
2.3.1主程序模块
.。
2.3.2显示模块
2.3.3中断服务子程序流程图
第三章程序设计与电路
3.1程序清单
DATASEGMENT
NO1DB2.5
NO2DB5.7
NO3DB10,20
SCAN1DB?
SCAN2DB?
SCAN3DB?
TABLEDB0C0H,0F9H,0A4H,0B0H,099H,92H,82H
DB0F8H,80H,90H,88H,83H,0C6H,0A1H
DB86H,8EH,0FFH,8CH,89H,8EH,0BFH,0F7H
P8255_ADW0020H
P8255_BDW0021H
P8255_CDW0022H
P8255_CRDW0023H
DATAENDS
STACKSEGMENT
DB100DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,P8255_CR
MOVAL.82H
OUTDX,AL
PUSHDS
MOVAX,0000H
MOVDS,AX
MOVBX,0008H
LEAAX,INTPROC
MOV[BX],AX
MOVAX,SEGINTPROC
MOV[BX+2],AX
POPDS;终端初始化
A1:
MOVDX,P8255_B
LEABX,NO3
MOVSCAN1,0
MOVSCAN2,6
MOVDX,P8255_C
MOVAL,80H
OUTDX,AL
CALLDISPLAY
CALLFUNCTION
MOVAH,4CH
INT21H
DISPLAYPROCFAR
PUSHDX
PUSHCX
PUSHBX
PUSHAX
MOVDX,P8255_C
MOVAL,04H
OUTDX,AL;KL1位选择
LEABX,TABLE
MOVDX,P8255_C
MOVAL,SCAN1
XLAT
OUTDX,AL;显示字段
MOVCX,00H
LOOP$
MOVDX,P8255_C
MOVAL,02H
OUTDX,AL;KL2位选择
MOVDX,P8255_A
MOVAL,SCAN2
OUTDX,AL;显示字段
LOOP$
XLAT
OUTDX,AL;KL3位选择
MOVDX,P8255_A
MOVAL,SCAN3
XLAT
OUTDX,AL
MOVCX,000H
LOOP$
POPAX
POPBX
POPCX
POPDX
RET
A6:
MOVDX,P8255_B
INAL,DX
CMPAL,0DFH
JEMJII
A71:
MOVDX,P8255_B
INAL,DX
CMPAL,0BFH
JEKJII
JMPBACK
MJI:
MOVAL,SCAN1
ADDAL,[BX+1]
CMPAL,10
JNAPDMAX1
INCSCAN2
SUBAL,10
JMPPDMAX1
KJ1;MOVAL,SCAN1
ADDAL,[BX+2]
CMPAL,10
JNAPDMAX1
INCSCAN2
SUBAL,10
JMPPDMAX1
PDMAX1:
MOVSCAN1,AL
MOVAH,SCAN2
SUBAH,2
JCA4
SUBAL,5
JCA4
MOVSCAN1,5
MOVSCAN2,2
JMPA4
MJII:
MOVAL,SCAN1
SUBAL,[BX+1]
JNCPDMIN1
DECSCAN2
ADDAL,10
JMPPDMIN1
KJII:
MOVAL,SCAN1
SUBAL,[BX+2]
JNCPDMIN1
DECSCAN2
ADDAL,10
JMPPDMIN1
PDMIN1:
MOVSCAN1,AL
MOVAH,SCAN2
SUBAH,0
JNCA4
SUBAL,5
JCA4
MOVSCAN1,5
JMPA4
BACK:
RET
FUNCTIONENDP
INTPROCPROCFAR
MOVSCAN1,0
MOVSCAN2,0
MOVSCAN3,0
CALL,DISPLAY
IRET
INTPROCENDP
CODEENDS
ENDSTART
3.2PROTEUS仿真
第四章课程设计总结
“微型计算机原理与接口技术课程设计”作为自动化专业的主要基础课之一,课程紧密结合自动化专业的专业特点,围绕微型计算机原理和应用主题,以intel8086CPU为主线,系统介绍微型计算机的基本知识,基本组成,体系结构和工作模式从而使学生能较清楚的了解微机的机构和工作流程,建立起系统的概念。
这次的课程设计为期一周,却让我学到很多东西,也巩固了所学的知识。
以前上课的时候老师经常强调再写一个程序的时候,一定要事先写出程序框图,总觉得这是浪费时间,但通过这次课程设计完全改变了这种错误认识。
以前接触的那些程序都很短,很基础,但是在这次课程设计中碰到的那些需要很多代码才能完成的任务,画流程图是很必要的。
因为通过流程图在我们设计的过程中,每一步怎么做,每一步要完成什么样的任务都会有一个很清晰的思路,而且在程序测试过程中也有利于查错。
以前对与编程软件的使用还处于一知半解的基础上,但经过这一段时间的实践,对于怎么样查错、排错,在那么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序正确性上都有了一定提高。
通过这次课程设计我懂得了理论与实际相结合是很重要的,只有亲自动手,才能提高自己的实际动手能力和独立思考能力,发现自己的不足,进而提高自己。
总之,这次课程设计对于我有很大的帮助,通过课程设计,我更加深入地理解了,微机原理课程上讲到的各种芯片的功能,以及引脚的作用,同时加深了对于主要芯片的应用的认识,同时在试验室的环境里熟悉了汇编程序的编写过程和运行过程,最后还提高了自己的动手能力。
最后,感谢老师的悉心指导!
参考文献
[1]第四版周和琴吴秀清编著《微型计算机原理与接口技术》
中国科学技术大学出版社出版时间:
2008年6月
[2]蔡启先,王智文,黄晓璐编著《汇编语言程序设计实验指导》
清华大学出版社出版时间:
2008-3-1
[3]张晓明,白凤凤,李雅红编著《汇编语言程序设计》
国防工业出版社出版时间:
2009-1-1
[4]张坤编著《汇编语言实验教程》
清华大学出版社出版时间:
2008-7-1
[5]卜艳萍,周伟编著《汇编语言程序设计教程》(第二版)
清华大学出版社出版时间:
2007-6-1
[6]彭虎、周佩玲、傅忠谦、编著《微机原理里与接口技术》(第2版)
电子工业出版社出版时间:
2008-4-1