1、汽车行驶时一共有五种状况:汽车左转汽车右转汽车出现紧急状况 汽车刹车汽车停靠 在进行课程设计时,可以考虑到10种组合模式如下:输入状态 输出状态 左转 左头灯,左尾灯,仪表左灯亮 右转 右头灯,右尾灯,仪表右灯亮 紧急 左右头灯,左右尾灯,仪表左右灯同时闪烁 刹车 左右尾灯亮左转+刹车 左头灯,左尾灯,仪表左灯亮 右转+刹车 右头灯,右尾灯,仪表右灯亮刹车+紧急 左右头灯,左右尾灯,仪表左右灯同时亮 左转+刹车+紧急 左右头灯,左右尾灯,仪表左右灯同时亮右转+刹车+紧急 左右头灯,左右尾灯,仪表左右灯同时亮 停靠 左右头灯,左右尾灯同时闪烁 当退出汽车系统时,在点阵LED显示器上双色显示“BY
2、E”信息。2.问题的解决方案分析(1)通过6个发光二级管模拟两个头灯、两个尾灯和仪表盘上的两个指示灯。(2)利用4个开关可产生的16种情况的前10种组合来分别模拟左转、右转、紧急,刹车,停靠的状态,使发光二极管信号灯相应亮、灭或闪烁。(3)通过程序或者定时/计数器控制灯的闪烁频率。考虑到程序设计比较简便,所以本次课程设计一旦涉及到信号灯的闪烁,都为程序控制。在对任务需求进行详细分析以后,决定主要控制芯片采用实验箱上的8255A,由于本次设计中对信号灯闪烁的频率并没有严格的要求,所以就没必要采用8253来进行定时,采用程序来进行定时。退出系统信息“BYE”则点阵LED显示器来控制。3. 系统的主
3、要功能(1) 当用户置开关状态为01H时,也即左转,表左转开关闭合,则仪表左灯、左头灯、左尾灯同时亮,其他灯灭。(2) 当用户置开关状态为02H时,也即右转,表右转开关闭合,则仪表右灯、右头灯、右尾灯同时亮,其他灯灭。(3) 当用户置开关状态为03H时,表紧急开关闭合,也即出现紧急状态时,则所有灯闪烁。(4) 当用户置开关状态为04H时, 表踩刹车(合上刹车开关),则左尾灯、右尾灯亮,其它灯灭。 (5) 当用户置开关状态为05H时,表示汽车左转刹车,则仪表左灯、左头灯、左尾灯同时亮,其它灯灭。(6) 当用户置开关状态为06H时,表示汽车右转刹车,则仪表右灯、右头灯、右尾灯同时亮,其它灯灭。(7
4、) 当用户置开关状态为07H时,表示汽车此时处于紧急刹车状态,则全部指示灯亮。(8) 当用户置开关状态为08H时,表示汽车此时处于左转紧急刹车状态,则全部指示灯亮。(9) 当用户置开关状态为09H时,表示汽车此时处于右转紧急刹车状态,则全部指示灯亮。(10) 当用户置开关状态为0AH时,表示汽车此时在停靠,则仪表左右灯灭,左右头灯亮,左右尾灯闪烁。所以,可以设置实验箱上的6个发光二极管的对应情况为:L0:右尾灯 L1:左尾灯 L2:右头灯 L3:左头灯 L4:仪表右灯 L5:仪表左灯通过4个开关(K0、K1、K2、K3的组合)产生的16种情况的前10种来作为输入选择,影响6个指示灯的输出,对应
5、关系如下表: 灯状态 开关状态仪表左灯(L5)仪表右灯(L4)左头灯(L3)右头灯(L2)左尾灯(L1)右尾灯(L0)1左转(01h)亮灭2右转(02h)3紧急(03h)闪4刹车(04h)5左转+刹车(05h)6右转+刹车(06h)7刹车+紧急(07h)8左转+刹车+紧急(08h)9右转+刹车+紧急(09h)10停靠(0Ah)表1 开关状态与灯状态对应表(11)当用户退出该系统时,双色点阵LED显示器显示“BYE”字样,由实验箱上设有一个共阳极88点阵的红黄两色LED显示器,若使某一种颜色、某一个LED发光,只要将与其相连的行线加高电平,列线加低电平即可。三、课程设计原理及原理图1.并行I/O
6、接口芯片8255端口A:PA0PA7, A组,支持工作方式0、1、2端口B:PB0PB7,B组,支持工作方式0、1端口C:PC0PC7,仅支持工作方式0、A组控制高4位PC4PC7、B组控制低4位PC0PC3 硬件连接图:2双色点阵LED显示器实验仪上设有一个共阳极88点阵的红黄两色LED显示器,其点阵结构如图所示。该点阵对外引出24条线,其中8条行线,8条红色列线,8条黄色列线。若使某一种颜色、某一个LED发光,只要将与其相连的行线加高电平,列线加低电平即可。如欲显示汉字,采用逐列循环发光。“BYE”点阵代码:行代码输出 99H; 红色列代码输 01H;第一列1个红色LED发光。行代码输出
7、0FFH; 红色列代码输 02H;第二列5个红色LED发光。行代码输出 0F0H; 红色列代码输 04H;第三列1个红色LED发光。行代码输出 0FH; 红色列代码输 08H;第四列3个红色LED发光。行代码输出 0F0H; 红色列代码输 10H;第五列5个红色LED发光。行代码输出 0FFH; 红色列代码输 20 H;第六列1个红色LED发光。行代码输出 99H; 红色列代码输 40 H;第七列3个红色LED发光。行代码输出 0ffH; 红色列代码输 80 H;第八列1个红色LED发光。在步骤之间可插入几ms的延时,重复进行即可在LED上稳定的显示出红色“BYE”字。若想显示黄色“BYE”,
8、只需把红色列码改为黄色列码即可。其设计布局如下所示:接线方法:行片选信号 “行选” 接 280H;红列片选信号 “红选”接 288H;绿列片选信号 “绿选” 接 290H,“WR”接总线区的“IOW”,“总线D7D0”接总线区的“D7D0”。四、流程图1、双色点阵显示流程图2、汽车灯系统流程图五、程序源代码data segment ;数据段proth equ 280hprotlr equ 298hprotly equ 290h io8255a equ 288H ;8255的A口地址io8255b equ 289H ;8255的B口地址io8255c equ 28aH ;8255的C口地址io8
9、255con equ 28bH min1 DB 00h,01h,02h,03h,04h,05h,06h,07hcount db 0BUFF DB 99h,0ffh,0f0h,0fh,0f0h,0ffh,99h,0ffh ;8255A的控制口地址ctr db enter c key to continue!,0ah,0dh ;程序初始提示信息 db enter other keys to exit to dos!,0ah,0dh,$ctr01 db 1. zuo zhuan wan.;左转弯时提示信息(以下类似)ctr02 db 2. you zhuan wan.ctr03 db 3. jin
10、ji kai guan.ctr04 db 4. sha che.ctr05 db 5. zuo zhuan wan sha che.ctr06 db 6. you zhuan wan sha che.ctr07 db 7. jin ji sha che.ctr08 db 8. jin ji zuo zhuan sha che.ctr09 db 9. jin ji you zhuan sha che.ctr10 db 10. ting kao.data endsstack segment stack ;堆栈段sta dw 50 dup(?)stack endscode segment ;代码段
11、assume cs:code,ds:data,es:data,ss:stackmain proc farstart: push ds sub ax,ax push ax mov ax,data mov ds,ax mov es,ax ccc: mov dx,offset ctr ;显示提示信息 mov ah,09h int 21h mov ah,01h cmp al,c ;若输入C,则继续执行,否则返回到DOS jz eeeagn: mov cx,80hd2: push cx mov cx,0008h mov si,offset min1next: mov al,si mov bx,offset buff xlat ;得到第一行码 mov dx,proth out dx,al mov al,ah mov dx,protlr out dx,al ;显示第一行红 mov al,0 shl ah,01 inc si mov cx,0ffh;ffhdelay2: loop delay2 ;延时 pop cx loop next call delay00 loop d2 mov al,00 out dx,al agn1: mov cx,80h ;agn1为显示黄色d1: mov ah,01next1: mov al,s
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1