汽车速度控制系统(框图+电路图+流程图+源程序)-课程设计.doc_第1页
汽车速度控制系统(框图+电路图+流程图+源程序)-课程设计.doc_第2页
汽车速度控制系统(框图+电路图+流程图+源程序)-课程设计.doc_第3页
汽车速度控制系统(框图+电路图+流程图+源程序)-课程设计.doc_第4页
汽车速度控制系统(框图+电路图+流程图+源程序)-课程设计.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

汽车速度控制系统(框图+电路图+流程图+源程序)-课程设计汽车速度控制系统(框图+电路图+流程图+源程序)设计目的:使学生将所学的理论知识和实践有机结合,初步掌握计算机应用系统设计的步骤和接口设计方法,提高分析和解决实际问题的能力,锻炼和本文源自六维论文网提高同学们的实践动手能力。四、设计要求:独立思考、共同合作、保质保量、按时完成。五、设计地点:全部设计均在j11313进行并完成。 六、设计内容:在现场有一pc机系统,负责采集控制信息(通过键盘信号表示速度控制信号),再通过pc机控制汽车速度,处理完后再用led数码管显示当前速度,并用led灯显示当前档位;当遇到紧急情况时,通过中断处理紧急情况。三、设计应解决下列各主要问题:1 建立一个完整的微机控制系统; 2 工程技术资料查询方法与技巧; 3 单元电路的测试方法及其工作原理; 4 软硬件统调方法; 四、设计报告书应附有下列图纸: protel99se画出的电气原理图。 1 序言12 总体设计22.1 总体设计框图22.2.系统工作原理23 硬件设计33.1 中央处理器模块33.2 8255人机接口模块83.3 汽车速度显示模块124 软件设计144.1 主程序模块144.2 显示模块164.3 串行通信模块175 总结186 致谢词19参考文献20附录:21附录1:程序清单21附录2:8088应用系统电路原理图26附录3:8255a扩展按键、led显示模块电路图271 序言现在许多轿车都有速度控制系统。速度控制系统(speed control system)又称为巡航控制系统(crusle control system),缩写为ccs其作用是:按司机要求的速度合开关之后,不用踩油门踏板就自动地保持车速,使车辆以固定的速度行驶。采用了这种装置,当在高速公路上长时间行车后,司机就不用再去控制油门踏板,减轻了疲劳,同时减少了不必要的车速变化,可以节省燃料。顾名思义,速度控制系统的基本功能就是速度控制,当按下车速调置档位后,就能存储该时刻的车速并能自动保持这个车速。当出现紧急情况时,按紧急停车本文源自六维论文网键停车。速度控制系统除以上基本功能外还可以增加以下功能:加速(accelerate)或减速(coast)功能,继续按动开关进行连续加速或者减速,以不按动开关时的车速进入速度控制系统。本设计是一个用键盘控制实现汽车速度档位控制的系统,该系统是由 8088作为微处理器,扩展可编程并行i/o接口8255a芯片, led数码管及键盘和发光二极管等芯片及元器件,再辅以其他外围电路和软件程序集合而成。 通过本系统的设计,我们将所学的常用芯片的知识结合起来综合运用建立一个完整的单片机温度监控系统。在此设计过程中,可以深刻体会并加以运用了这学期所学的单片机原理及应用技术所讲的知识和原理,有利于我们以后的进一步学习和工作。1372汽车速度控制系统(框图+电路图+流程图+源程序)2 总体设计2.1 总体设计框图图1 汽车速度控制系统设计框图 2.2.系统工作原理本系统是将在现场采集到的速度控制信息(用键盘模拟控制信息,通过i/o接口芯片将信息读入),经i/o接口芯片将键盘控制信息送至微处理器。然后,计算机按照读入的键盘号对汽车速度进行相应的控制,再将当前速度一路送至i/o接口芯片并在显像管中显示当前的汽车速度; 当确定档位后通过发光二极管显示当前的档位;设置紧急情况为不可屏蔽中断,当出现紧急情况时触发中断紧急处理情况。在键盘管理模块中,按“1”键启动系统,汽车以最低速度行驶,同时用1盏发光二极管灯显示挡位,数码管显示速度(。汽车慢加速时用“4”键,急加速时用“5”键,慢刹车时用“6”键,急煞车时用“7”键。加速和刹车时用数码管显示相应的速度变化;当汽车需紧急停车时,键入“8”键,所有发光二极管熄灭,同时数码管显示“0” 3 硬件设计3.1 中央处理器模块3.1.1 中央处理器模块功能 中央处理器模块处理与控制外部与内部信息。3.1.2中央处理器模块组成该模块由8088芯片及其附属支持芯片组成,包括8284时钟发生器,8288总线控制器,两片74ls373地址锁存器,两片62512存储器及其74ls245三态输出锁存器。3.1.3中央处理器模块工作原理8284时钟发生器为8088系统设计的单片时钟发生器。它为cpu提供时钟、ready、reset等信号。两片74ls373地址锁存器锁存分时复用的地址。74ls245输出八位数据。两片容量为64k的62512组成容量为1mb的存储器。3.1.4中央处理器相应电路设计(1) 8088小应用系统电路设计8088微处理器芯片为40只引脚(线)的双列直插式封装。运用引脚多路复用技术解决引脚不够的矛盾。引脚复用的实质是两个信号合用同一引脚分时传输信号,即同一个引脚在不同的时间段代表不同的信号。 8086和8088两个微处理器芯片的共同点是采用20位地址线,而且指令系统与操作方式也是相同的。都采用分时复用的地址总线和数据总线,有一部分引脚具有地址线和数据线两种功能。主要差别在于数据线引脚的位数不同。8086数据线引脚为16个;8088数据线引脚为8个。 8086与8088微处理器都具有两种工作模式,即最小模式和最大模式。最小与最大模式的确定是通过一条引脚mnmn所接的逻辑电平是“1”是“0”来完成。 在最小(mn)方式下,微处理器被用来构成一个小规模的单处理机系统,微处理器本身必须提供全部的控制信号给外围电路。 在最大(mx)方式下,微处理器被用来构成一个较大规模的多机系统。由于外围电路芯片数目较多,有的信号要经系统总线转插件送到另外的板卡上去,控制信号的负载加重不能直接由微处理器的引脚信号来驱动。 基本引脚信号 ad15ad0(输入输出,三态):8086的地址数据线复用引脚。 8088微处理器对外只有8位数据线,因此只复用ad 7ado,ad15ad8:是独立的地址信号引脚。 (2)a19s6一a16s3(输出,三态):地址状态分时复用引脚。在微处理器执行片外访问操作时,先发送高4位地址码,后发送处理器的状态信息。 s6为0,表示ad15ad0作为数据线使用; s5为1表示处理器开中断。为0表示处理器关中断; s4和s3组合表示当前段寄存器的使用情况。 0 0 es; 0 1 ss; 1 0 cs; 1 1 ds (3)bhes7(输出,三态):高8位数据线允许状态分时复用引脚。当处理器执行访问存储器或输入输出设备时,首先给出bhe信号以确定是否进行高8位本文源自六维论文网数据的传输。 (4)nmi(输入):非屏蔽中断请求输入线,上升边触发。汽车速度控制系统(框图+电路图+流程图+源程序) (5)intr(输入):可屏蔽中断请求输入线,高电平有效。 (6)rd(输出,三态):读命令(或叫作读选通)信号,低电平有效,此信号启动一次数据从存储器或输入输出设备读入处理器中的过程。(7)clk(输入):时钟信号,占空比1:3,由外部时钟产生电路提供。 (8)reset(输入):复位信号,它至少保持4个时钟周期的高电平,使处理器停止正在进行的操作,并使标志寄存器、ip、ds、ss、es和指令队列置0,代码段寄存器cs置成ffffh(全“l”)。因此复位信号有效作用后处理器从ffffoh存储单元取指令并开始执行。 (9)ready(输入):准备好信号。处理器在进行存储器或输入输出设备的访问时,不断检测ready引脚的状态。在被访问者没有完成数据传送之前ready引脚处于低电平(无效电平),处理器自动在操作过程中插入一个或几个等待状态来延长访问过程。 (10)test(输入):测试信号,低电平有效。当处理器执行wait指令时,每隔5 个时钟周期对于面引脚进行一次测试。如果是高电平,处理器仍处于等待状态;为低电平时,处理器脱离等待状念。 (11)mn/mx(输入):最大最小工作模式的选择信号。 (12)vcc(输入):处理器的电源输入引脚,接十5v电源。 (13)gnd:处理器的地线引脚,接至系统地线。最小工作模式下的有关控制引脚信号 (1)inta(输出):最小工作模式的中断响应信号。 (2)ale(输出):地址锁存允许(选通)信号。 (3)den(输出、三态):数据允许信号,用来控制数据总线双向缓冲器的接通与断开,低电平有效。 (4)dtr(输出,三态):数据发送接收控制信号。dtr为高电平时,缓冲器发送数据(写),当dtr为低电平时,缓冲器接收数据(读)。 (5)m/io(输出,三态):存储器、输入输出设备的选择信号。高电平则表明访问操作是对存储器的,为低电平则访问操作是对输入输出设备的。 (6)wr(输出,三态):写命令信号,低电平有效。 (7)hold(输入):总线请求信号,高电平有效,当处理器以外主模块需要使用总线时发出hold有效信号,直至总线使用完毕时释放总线并撤消hold信号。 (8)hlda(输出):总线请求响应信号,高电平有效。当占用总线的主模块收到hold请求信号后,在完成当前总线操作后发出hlda有效信号,表明申请使用总线的其他主模块可以使用总线。 (9)ss0(输出):8080最小模式下周期状态信号最大工作模式下的有关控制引脚信号 (1) qs1、qs0(输出):指令队列状态信号,用于表示当前指令队列的状态。 0 0 :无操作 0 1 :取第一字节 1 0 :队列空 1 1 :取后续字节 (2)s2、s1、s0(输出,三态):最大模式下总线周期状态信号。这三个信号送给8288总线控制器,8288输出各种操作的控制信号。 (3)lock(输出,三态):总线封锁信号。 (4)rq/gt0、rq/gt1(输入输出):最大模式下的总线请求总线响应信号。 rq/gt0优先级高于rq/gt1。l送入不同的值来控制y0y7的线选。我们这个系统就是用74ls138来实现地址扩展。下表为74ls138的真值表:地址线a2、a3、a4送入译码器输出y0、y1来控制adc0809与dac0832端口地址。l存储器扩展地址范围8088 a19 a18 a074ls138 g1 g2a g2b c b a62256(1) cs a15a14a1362256(2) cs a15a14a13根据以上表格可以得知,62512(1)的地址范围为:62512(1)的地址范围为:由于8088复位以后,cs=0ffffh,ip=0000h,pa0=经过分析可知: 图1 8088综合模块图3.2 8255人机接口模块3.2.1 i/o接口模块功能cpu与i/o设备之间的连接及信息处理本文源自六维论文网和cpu与存储器之间的连接及信息处理相类似。但实际上,i/o设备的种类繁多,cpu与其交换信息相比之下更为复杂,因此,通常i/o设备并不直接与cpu进行信息交换,而是通过相应的i/o接口来进行的。i/o接口是cpu与i/o设备之间进行信息交换的环节。3.2.2 i/o接口模块组成 键盘,发光二极管,74ls138译码器组成。 intel 8255a 是可编程通用并行接口芯片,具有两个8位(a和b口)和两个4位(c口高低四位),通过读写pa,pb,pc三口状态实现信息交换。74ls138是3-8译码器,通过给abc送入不同的值来控制y0y7的线选。这个系统就是用74ls138来实现地址扩展。地址线a2a7送入译码器输出y0来控制8255a各端口地址。由电路图可知8255a的各端口地址分别为:0020h、0021h、 0022h、0023h。汽车速度控制系统(框图+电路图+流程图+源程序)i/o接口模块工作原理(1)i/o接口芯片设计8255a是一个具有两个8位(a和b口)和两个4位(c口高低四位),最多可达24位的并行输入输出端口的接口芯片,可执行功能很强,内容丰富的两条命令(方式字和控制字)为用户如何根据外界条件(io设备需要哪些信号线以及它能提供哪些状态线)来使用8255a构成多种接口电路,为组建微机应用系统提供了灵活方便的编程环境,是一种名副其实的通用并行接口芯片。同时它是一个单一+5v电源供电40个引脚的 双列直插式组件,其外部引线如图六所示。图28255a引脚作为接口电路的8255a具有面向主机系统总线和面向外设两个方向的连接能力。它的引脚正 是为了满足这种连接要求而设置的。如d0d7:双向数据线。cpu通过它向8255a发 送命令、数据;8255a通过它向cpu回送状态、数据。 :选片信号线,该信号低电平有效,由系统地址总线经 i / o 地址译码器产生。cpu通过发高位端口地址信号使它变成低电平时,才能对8255a进行读写操作。当为高电平时,切断cpu与芯片的联系。a1,a0:芯片内部端口地址信号线,与系统地址 总线低位相连。该信号用来寻址8255a内部寄存器。两位 地址,可形成片内四个端口地址。 :读信号线,该信号低电平有效cpu通过 执行in指令,发读信号将数据或状态信号从8255a读至cpu。:写信号线,该信号低电平有效, cpu通过执行out指令,发写信号,将命令代码或数据写入8255a。reset:复位信号线,该信号高电平有效。它清除控制寄存器并将8255a的a、b、c三个端口均置为输入方式;输出寄存器和状态寄存器被复位,并且屏蔽中断请求;24条面向外设的信号线呈现高阻悬浮状态。这种势态一直维持,直到用方式命令才能改变,使其进入用户所需的工作方式。面向io设备的信号线有: pa0pa7:端口a的输入输出线, pb0pb7:端口b的输入输出线,pc0pc7:端口c的输入输出线,这24根信号线均可用来连接io设备,通过它们可以传送数字量信息或开关量信息。在本课程设计中我们用pc口来控制发光二极管的闪烁,用a口来连接led数码管显示。它的端口选择的基本操作如表三所示。表一8255a的基本操作(2)键盘电路设计1)工作原理用电平逻辑开关输出高低电平来代替键盘按键。按“1”键启动系统,汽车以最低速度行驶,同时用1盏发光二极管灯显示挡位,数码管显示速度(最低速度为5km/h)。当需要档位时,用键盘键入2、3键,并用不同颜色的发光二极管“7”键。加速和刹车时用数码管显示相应的速度变化;当汽车需紧急停车时,键入“8”键,所有发光二极管熄灭,同时数码管显示“0”在单片机中开辟三个数据缓冲区,分别存放当前汽车速度的个位、十位和百位,送入数码管缓冲区,通过8255的pa、pb口分别控制字形口与字位口,从而控制led对时间动态的显示。将已存放在数据缓冲区内的汽车速度数据(已将数据由十六进制数转化为bcd码)送入数码管缓冲区,通过8255的pa、pc口分别控制字形口与字位口,从而控制led对汽车速度的动态显示。2)电路设计用键盘输出高低电平来代替速度控制信息。键盘的两端分别与上拉电阻与地线相接,当有键盘按下时,pb口的逻辑状态由高电平变为低电平,从而实现键盘本文源自六维论文网管理模块的功能。 图3 键盘管理电路3.3 汽车速度显示模块3.3.1 汽车速度显示模块功能通过三位led数码管动态显示汽车当前速度值。3.3.2led数码管汽车速度显示电路设计 led显示器有8个发光二极管按“日”字排列,其中7个发光二极管组成“日”字形的笔画断,另一个发光二极管为圆点形状,安装在显示器的右下脚做小数点。分别控制各笔画段的led,使其中的某些发光,从而可以显示出0-9的阿拉伯数字符号以及其他能由这些笔画段构成的各种字符。其内部结构由两种共阴极数码管和共阳极数码管。我们采用了共阳极数码管。要显示0-9时,其编码依次为:c0h,f9h,a4h,b0h,99h,92h,82h,f8h,80h,90h,88h,83h,c6h,a1h,86h,8eh,8ch,89h.led显示器的显示方法有两种静态显示法和动态扫描显示法。静态显示就是每一个显示器各笔画段都要独占具有所存功能的输出口线,cpu把要显示的字符代码送到输出口上,就可以是显示器显示所需的数字后符号。但由于它站用的i/o口线较多,硬件成本高。所以我们选用了动态扫描显示法。它把所有显示器的8个笔画段a-h的个同名端互相并接在一起并把它们接到字段输出接口上。各个显示器的公共端接到位输出接口上。这样led显示器需要有两组信号来控制-段码和位码。在着两组信号的控制下,可以1位一位的轮流点亮各个显示器显示各自的数码以实现动态扫描显示。在轮流点亮的过程中,每位显示器点亮的时间则是极为短暂的,但由于led具有余辉性以及人眼的惰性,尽管各位显示器实际上是分时段续的显示,但只要选取扫描频率,给人的视觉印象就是在连续稳定的显示。其显示接口电路如图4所示: 汽车速度控制系统(框图+电路图+流程图+源程序)图4 3.3.3 汽车速度显示相应电路 图5 led动态显示电路 4 软件设计4.1 主程序模块4.1.1 主程序设计思想 首先初始化8255a、建立中断向量表,紧急刹车为外部非屏蔽中断。查询是否有档位键按下,若有,则显示该档位下的初速度,然后查询是否有功能键按下,若有,则处理对应的功能并显示此时汽车的速度。当查询到紧急刹车键按下使,产生非屏蔽中断,转入中断服务子程序使汽车速度为零并显示。4.1.2 主程序流程图 图7 主程序流程图4.2 显示模块 4.2.1设计思想 首先在内存中的数据段中定义三个显示缓冲区,分别存入显示数据的个位、十位和百位,然后再定义显示段码区。在该模块中设置了三个led数码管,用以显示汽车速度的个位,十位和百位,读入键盘信息后,汽车速度做相应的功能改变。然后将改变的汽车速度值经pa口分别送入kl1、kl2、kl3,以便动态显示当前汽车速度值。 4.2.2 程序流程图4.3 串行通信模块 4.3.1中断程序设计思想将紧急刹车键设为非屏蔽中断,当紧急刹车键按下时,产生中断信号由nmi送入cpu,最后由cpu处理中断服务子程序。在中断服务子程序中将速度清零,发光二极管熄灭。4.3.2 中断服务子程序流程图 4.4 功能服务程序设计 4.4.1功能服务程序设计思想读入键盘信息后,进入功能服务子程序,判断几号功能键按下,确定后将汽车速度做相应改变并将其放入相应的显示缓冲区。4.4.2 程序流程图5 总结微机接口技术课程设计 作为电气工程及其自动化本科生教学的主要基础课之一,课程紧密结合电气工程及其自动化的专业特点,围绕微型计算机原理和应用主题,以intel8088cpu为主线,系统介绍微型计算机的基本知识,基本组成,体系结构和工作模式,从而使学生能较清楚地了解微机的结构与工作流程,建立起系统的概念。这次微机原理课程设计历时两个星期,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。以前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理流程图画出来,但是开始总觉得这样做没必要,很浪费时间。但是,这次课程设计完全改变了以前的那种错误的认识,以前接触的那些程序都是很短、的过程中也有利于查错。其次,以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过本文源自六维论文网各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。6 致谢词在这短短的一个周的时间里,我们经过全体小组成员的全体努力完成了本次课程设计的题目即现场温度智能测控系统。在设计的过程中,我们遇到了很多的问题,但是这些问题的解决都在我们本次课程设计指导教师吕英俊老师的指导下和我们小组的全体成员的努力之下顺利地解决并完成。衷心感谢本次课程设计老师们耐心的指导,没有他们的虚心教导和指引,辛勤的帮助,本次课程设计不会有这样令人欣慰的成果,同时谢谢同学们在设计过程中给与的帮助,为我进一步的学习实际工作提供了宝贵的财富。参考文献1 胡汉才. 单片机原理及其接口技术,北京:清华大学出版社,20022 吴宁. 80x86/pentium微型计算机原理及应用,北京:电子工业出版社,20003 薛琳,吕英俊.80x86微机原理及其接口技术实验指导书,青岛:山东科技大学校内 汽车速度控制系统(框图+电路图+流程图+源程序)附录:附录1:程序清单data segmentno1 db 2,5no2 db 5,7no3 db 10,20 scan1 db ?scan2 db ?scan3 db ?table db0c0h,0f9h,0a4h,0b0h,099h,92h,82h db0f8h,080h,90h,88h,83h,0c6h,0a1h db86h,8eh,0ffh,8ch,89h,8eh,0bfh,0f7h ;;led显示码p8255_a dw 0020hp8255_b dw 0021hp8255_c dw 0022hp8255_cr dw 0023hdata endsstack segmentdw 100 dup (?)stack endscode segment assume cs:code,ds:datastart:mov ax,data mov ds,ax mov dx,p8255_cr mov al,82h out dx,al push ds mov ax,0000h mov ds,ax mov bx,0008h lea ax

温馨提示

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

评论

0/150

提交评论