版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、理工大学信息工程与自动化学院学生实验报告(2012-2013学年第二学期)课程名称:可编程逻辑器件设计开放实验室:馨子大厦2013年4月11日年级,专业,班级科101学生编号七 成就实验项目名称出租车计价器的设计教师江洪教师评论学生是否知道实验原理:a .知道 B .基础知识 C .不知道。学生的实验能力:a .强 B .中等 C .差这位同学的实验达到要求了吗:a .达到了 B .基本达到了 C .没有达到报告是否定期:a .定期 b .基本 c .否过程是否有详细记录:a .详细 B .一般 C .否教师签名:年日一.导言汽车计价器是乘客和司机之间的交易准则。它是出租车行业发展的重要标志,
2、是出租车中最重要的工具。这关系到双方的利益。性能良好的计价器对出租车司机和乘客都是必要的。因此,汽车仪表的研究也具有重要的应用价值。出租车在上世纪70年代开始在中国出现,但当时大部分计费系统都是从国外引进的,不仅不准确,而且非常昂贵。随着改革开放的深入,出租车行业的发展势头已经非常突出,国内各种机械制造商都推出了国产出租车计价器。出租车计价器的功能从一开始只是显示路程(司机需要自己定好价格,计算后再向上取整)变成了可以自主收费,可以开发票和语音提示,可以根据时间自主改变单价。随着城市旅游业的发展,出租车行业已经成为一个城市的窗口,象征着一个城市的文明程度。随着出租车行业的发展,出租车已经成为城
3、市交通的重要组成部分。从加强行业管理,减少司机和乘客的纠纷出发,性能良好的出租车计价器对出租车司机和乘客都是必要的。我们采用8086作为主控制器,A44E霍尔传感器测量距离,从而实现出租车多功能计价设计,输出采用8段数码管。二、总体设计方案8253用作定时器/计数器,控制电机转速,测量电机转速;855作为输入输出接口,控制数码管显示启动后的里程数(小数点后2位有效数字)。硬件连接描述:在DC电机控制器的基础上,增加了电机测速电路。855的b口用作数码管的笔画码驱动;C的低4位用作显示实际里程的段码控制。同时,它们也用来输出键盘的列扫描码。6.PC7输入行扫描码,用于识别按键。程序中只使用了PC
4、6线上的四个键,它们的定义如下:X1:开始/停止键;X2:加速键,与X3和X4键配合使用;X3:“+”键;x4:“-”键。A口只用PA0,输出PWM脉冲信号,通过驱动芯片驱动电机。输出电压与PWM脉冲的占空比成正比。电机的转速由霍尔元件转换成脉冲数,送到8253的通道2。计数后将转速换算成里程,最小单位为0.01km,送入CPU记录,结果由数码管显示。(一)、软件和硬件流程图开始主程序流程开始8.8.修改F中断向量以指向IRO和IR7中断处理程序。OCW1OCW1写入8259打开IRO和IR7中断初始化初始化8253,CHO采用模式2,CH2采用模式3,都是先写低8位,再写高8位,二进制计数。
5、用初始值用初始值609和50写入8253通道0和2。电机关闭,电机关闭,PA0=0压缩BCD码的里程SOEED压缩BCD码的里程SOEED被转换成未压缩BCD码,并存储在显示缓冲器中。呼叫显示子程序呼叫显示子程序打开键盘端口打开键盘端口有按键吗?普通有按键吗?Y延迟、去抖动延迟、去抖动行扫描方式识别钥匙,行扫描方式识别钥匙,AH存储扫码。是加速键吗?是加速键吗?普通YAHAH的最高位置是1,D7=1是开始/停止键。是是开始/停止键。是“+”键。是“-”键。启动它?加速?加速?真的吗?日本电视台启动它?加速?加速?真的吗?YYY里程=0开始设置为停止占空比+1里程=0开始设置为停止占空比+1占空
6、比+10占空比-1占空比-10传播传播IRO中断处理流程图IR7中断处理程序流程图现场保存,斧子堆放现场保存,斧子堆放现场保存,斧子堆放现场保存,斧子堆放激活了吗?开中断,允许IRO激活了吗?开中断,允许IRO调速中断。取出当前压缩BCD码的里程Y取出当前压缩BCD码的里程高电平时间高电平时间1=0?普通里程低字节+1里程低字节+1,十进制调制数高电平重载时间,PA0=0Y高电平重载时间,PA0=0高字节高字节+0+进位,十进制调制数将结果保存到里程速度。将结果保存到里程速度。PWM时序时间PWM时序时间1=0?站点恢复,中断结束。普通站点恢复,中断结束。中断返回Y中断返回PWMPWM重载时序
7、时间,PA0=1站点恢复,中断结束。站点恢复,中断结束。中断返回中断返回现场存储、登记堆叠显示子程序流程图现场存储、登记堆叠BX指向显示码表,SI指向缓冲区。返回关闭并恢复场景。显示4位数显示代码。显示小数点,显示代码或80H显示第二位数?数据?数据?取出一个字节的显示数据,转换成显示代码。BX指向显示码表,SI指向缓冲区。返回关闭并恢复场景。显示4位数显示代码。显示小数点,显示代码或80H显示第二位数?数据?数据?取出一个字节的显示数据,转换成显示代码。普通Y普通Y(2)源程序设计和硬件介绍中断程序里程计数中断程序霍尔传感器每输出一个低电平信号,就中断一次。当里程计数器计数到里程脉冲1000
8、次时,进入里程计数中断服务程序,里程变量加1。主函数中的总量会相应地改变。中途等待中断程序在中途等待中断程序中,每隔1ms产生一次中断,将当前里程值送入缓存变量,每隔5分钟将缓存变量中的值与当前里程值进行比较。当车停下来,霍尔传感器5分钟无输出信号,当前里程值与缓存变量相同,则进入等待时间,每5分钟记录一次价格。显示程序程序使用定时器每1ms产生一个中断,设置相应的变量,一个数码管点亮,显示一位数据。利用主函数的循环实现动态扫描显示,根据数码管的余辉和人眼暂留现象实现显示。键盘程序键盘以查询的方式放入主程序。当没有按键时,主程序循环。一旦按下右键,就会转到相应的子程序进行处理,处理完后再返回。
9、2.1 8086最小系统模块1、8086CPU系统框图如图所示:2.2芯片8255A1.8255A的功能本实验采用8255A将模拟转换后的数字量传送给CPU。此外,8255使用查询模式来控制ADC0809的操作。886通过8255向七段LED显示屏发送控制信号。2.8255A的功能分析8255A是一种可编程并行接口,可以根据外部条件做成各种接口电路(I/O设备需要的信号线和它能提供的状态线)。8255A有三个数据端口,即端口a、端口b和端口C.A口有三种工作模式:模式0、模式1、模式2,B口只能工作在模式0或模式1,C口通常作为联络信号。在这个实验中,控制字被设置为80H,8255被初始化,因
10、此端口B和端口C是输出。在三种工作模式中,本设计只使用了模式0,即模式0是基本的输入/输出模式。在这种模式下,三个端口都可以被程序指定为输入/输出模式,但不能同时作为输入和输出,也不提供固定接点信号。C口分为两个4位高4位和低4位,可以分别设置为输入或输出模式。3.8255A的技术参数8255A的引脚信号CS:片选信号,低电平有效;CS:片选信号,低电平有效;A0、A1:地址信号。JP52: PC端口;JP53: PB端口;JP56: PA端口。1)连接到外围设备PA7 PA0:端口A数据信号线;pb7 Pb0:B口数据信号线;PC7 PC0: C口数据信号线;2)连接到CPU复位:复位信号。
11、当该信号到来时,所有寄存器被清零。同时,三个数据端口被自动设置为输入端口。D7D0:是8255A连接到系统总线的数据线。CS:片选信号。在系统中,一般根据所有接口芯片分配由低位地址组成的各种片选码(如A5、A4、A3)。当这些地址构成某个低级别时,它们在8255A被选择。只有当它有效时,8255才被读信号写入器读写。RD:读取信号。当该信号有效时,CPU可以从8255A读取数据。WR:写信号。当该信号有效时,CPU可以将数据写入8255A。A1、A0:端口选择信号。8255A有三个数据端口和一个控制端口,总共有四个端口。条款:当A1和A0为00时,选择端口A;当A1和A0为01时,选择端口B;
12、当A1和A0为10时,选择端口C;当A1和A0为11时,选择控制端口。4.8255A的模式控制字8255A中有两种控制字:一种是模式选择控制字,另一种是C口中的位置/复位控制字。模式选择控制字图1 8255A模式控制字列表按下c口的位置位/复位控制字。图2 8255 a的设置/控制字表2.3芯片82531.8253的功能分析Intel8253是采用NMOS技术制造的可编程计数器/定时器。芯片型号有好几个,外观引脚和功能兼容,但最高计数率不同,比如8253 (2.6 MHz)和8253-5 (5 MHz)。单元853有三个计数器,即计数器0、计数器1和计数器2。它们的机制完全相同。每个计数器的输
13、入和输出由控制寄存器中设置的控制字决定,并且彼此完全独立工作。每个计数器通过三个引脚与外界相连,一个是时钟输入CLK,一个是门信号输入GATE,一个是输出OUT。每个计数器单元具有8位控制寄存器、16位计数初始值寄存器CR、计数执行单元CE和输出锁存器ol。执行单元实际上是一个16位减法计数器,它的初始值是初始值寄存器的值,由程序设置。输出锁存器的值被编程。输出锁存器OL用于锁存计数执行单元CE的容量,使得CPU可以读取它。顺便说一下,CR、CE和OL都是16位寄存器,但它们也可以用作8位寄存器,起到1和8253的作用。2.8253的引脚信号CS:片选信号,低电平有效;CS:片选信号,低电平有
14、效;A0和A1:地址信号;2.4可编程控制芯片8259A8259A的原理一块8959A有八条中断请求线IR0IR7。在8259A被操作系统初始化后,它可以接收中断信号。8259A从IR请求线接收中断信号,每个请求线都有一个触发器来保存请求信号,从而形成一个中断请求寄存器(IRR)。同时,如果中断请求信号线没有被屏蔽,8259A向CPU发送int信号请求中断。此时,如果CPU处于中断允许状态,CPU将向8259A发送INTA信号,进入中断响应周期。如果多个请求信号同时到达,8259A的优先级电路会选择每个请求的优先级,在中断响应周期内将优先级最高的请求发送到中断服务寄存器(ISR ),置位,并复
15、位IRR中相应的位。然后,CPU再次向8259A发送INTA脉冲,开始另一个中断周期。8259A在这个相应的周期中向数据总线的D0-D7输入一个中断向量。根据这个向量的值*4,CPU可以从中断入口地址表(IDT)中取出中断服务程序的入口地址,并传送给中断服务程序。但是,如果8259A工作在AEOI模式,它将自动复位其ISR中相应的位,否则它需要发出EOI命令来复位ISR。在旧的PC-XT/AT中,通常使用8259A来请求中断信号。在大多数现代pc机中,两片8259A一般用作级联。其中一个是主人,另一个是奴隶。由于主机上的中断请求线需要连接到从机的int引脚,实际可以使用的外部中断数为15(8
16、* 21)。8259A结构1.数据总线缓冲器-D7 D0数据缓冲器为三态、双向、8位寄存器,数据线D7 D0与CPU系统总线相连,构成CPU与8259A之间信息传输的通道。2.读/写控制逻辑-WR/WD读写控制逻辑用于接收CPU系统总线的读写控制信号和端口地址选择信号,并控制8259A寄存器的读写操作。3.级联缓冲器/比较器8259A可以工作在单芯片模式或多芯片级联模式。级联模式的硬件连接如图6.10所示。级联缓冲器/比较器提供多个8259A的管理和选择功能,其中一个是主机,其他是从机。4.中断控制逻辑中断控制逻辑根据编程的工作模式管理中断,负责向芯片各部分发送控制信号,向CPU发送中断请求信
17、号INT并接收CPU发回的中断响应信号INTA,控制8259A进入中断管理状态。5.中断请求寄存器(IRR)IRR是一个8位寄存器,用于记录外部中断请求。D7 D0分别对应于外部中断请求信号IR7IR0。当IRI (I = 0 7)有请求(电平或边沿触发)时,IRR中对应的位DI置1,当中断响应信号INTA有效时,Di清零。6.中断服务寄存器ISR是一个8位寄存器,用于记录CPU当前服务的中断标志。当CPU响应外部中断IRI (I = 0 7)的请求进入服务时,CPU发出的第一个中断响应脉冲INTA将ISR中对应的位DI (I = 0 7)置1,ISR的复位由8259A的中断结束模式决定。如果
18、定义为自动结束模式,CPU发出的第二个中断响应脉冲INTA的后沿将Di复位为0;如果定义为非自动结束模式,会被CPU发出的中断结束命令复位。7.中断屏蔽寄存器(IMR)IMR是一个8位寄存器,用于存储IR7IR0的中断屏蔽标志。其8个屏蔽位D7 D0对应外部中断请求IR7IR0,用于控制是否允许IRi进入。当IMR中的Di位为1时,相应的IRi请求被禁止;当IMR中的Di位为0时,允许相应的中断请求进入。它可以通过软件来设置或清除,并且可以通过对屏蔽字进行编程来改变原始优先级。程序代码见附录。三。总结和经验作为一名自动化大三学生,我觉得做计算机编程是非常有意义和必要的。在我们度过的大学时光里,
19、大部分人接触的都是专业课。我们在课堂上掌握的只是专业课的理论知识。怎样才能锻炼自己的实践能力?如何将我们所学的专业基础课理论知识运用到实践中?我觉得类似的课程设计给我们提供了一个很好的实践平台。在设计这门课程的过程中,我印象最深的是查阅了大量的设计资料。为了让你的设计更加完美,查阅这方面的设计资料是必要的,也是必不可少的。其次,在本次课程设计中,我们应用了之前学过的专业知识,如汇编语言、模拟和数字电路知识等。虽然我过去从未独立应用过它们,但我发现在学习的过程中带着问题学习效率很高,这是我课程设计的另一个成果。另外,这次课程设计让我感受到了团队合作的重要性。在团队中,我们互相帮助,这对整个课程设
20、计至关重要。每个人的缺失都会对我们的设计产生影响。我们也应该感受到导师在我们遇到困难时给予的建议和鼓励。两周的课程设计结束了,但从中学到的知识将让我受益终身。我发现问题、提出问题、分析问题、解决问题和实践能力的提高,将在我以后的学习、工作和生活中受益。为期两周的毕业设计即将结束。在老师和王老师的亲切指导和同学们的帮助下,完成了本次设计。在此,我要向在本次课程设计中给予我指导和帮助的所有老师和同学们表示最诚挚的谢意:附录;仪表(使用速度控制器控制电机的旋转并读出总里程)数据段t EQU 100;计时时间(基本周期*T)T _ HI DB 50高电平持续时间(基本周期*T_HI)NOW_T DB
21、T现在_嗨DB 50t 8253 EQU 609;定时器8253的初始值=1.19M*0.512MS(基本周期)=609运行DB 0;起止标志速度DW 0;英里数步骤dw50;10m中8253个脉冲的数量(即每50个脉冲前进10m)TAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH显示从0到9的代码DISP DB 4 DUP (0),52H存储速度数据结束栈段栈DW 64 DUP(?) ;定义堆栈段堆栈结束代码段;代码段定义假设CS:CODE,DS:DATA;分段名称开始:MOV斧,数据MOV DS,AX推DS;当前用户DS段存储在堆栈中。MOV AX
22、,0000HMOV DS,AX;修改DS=0000H指向中断向量表所在的段。MOV AX,失调IRQ0取出中断处理子程序的入口偏移地址(基于0)。加AX,2000H校正,实际地址=加载地址的偏移量+从0开始的偏移量MOV斯,0020HIR0的中断向量号是08H,在向量表中是20H23H。MOV SI,斧头;将偏移地址载入向量表MOV AX,0000HMOV SI,0022HMOV SI,斧头;将段地址(0000H)载入向量表MOV AX,失调IRQ7添加AX,2000HMOV SI,0003CHMOV SI,斧头;将偏移地址载入IRQ7的中断向量MOV AX,0000HMOV SI,003EH
23、MOV SI,斧头;将段地址(0000H)载入向量表POP DS用户数据段DS被恢复。MOV阿尔,13HOUT 20H,AL;写入ICW1MOV阿尔,08HOUT 21H,AL;写入ICW2MOV艾尔,01HOUT 21H,AL;写入ICW4MOV阿尔,7EHD7和d0位重置为0。OUT 21H,AL;写OCW1(IMR);打开8259A的IR7和IR0中断MOV阿尔,34H设置8253通道0,00110100B的工作模式。OUT 43H,AL;Ch首先写入低8位,然后写入高8位,模式2,二进制计数。MOV AX,T8253初始值是基本周期。OUT 40H,AL;写入CH0MOV阿尔,啊出去4
24、0小时,艾尔MOV铝,0B6H设置8253通道2的工作模式,10110110B。OUT 43H,AL;CH2先写低8位,再写高8位=0,模式3,二进制计数。MOV斧,一步42小时后,铝MOV阿尔,啊OUT 42H,AL;写入CH2MOV阿尔,88小时;写8255A的模式控制字,设置工作模式为10001000B。OUT 63H,AL;即端口A为0输出,端口C为4个高位输入,端口B为0输出,端口C为4个低位输出。MOV阿尔,00HOUT 60H,AL;关掉马达STI开放中断A1: MOV SI,偏移DISPMOV BL,2MOV斧,速度A11:和AL,0FHMOV硅+3,铝啊,0FHMOV SI+
25、1,啊十二月四日MOV斧,速度MOV CL,4ROR AX,CL十二月提单JNZ A11将speed的压缩BCD码转换为未压缩码,存储在缓冲区中。MOV斯,抵消DISP呼叫显示MOV阿尔,00H打开开关扫描62H外,铝在AL中,62H读取端口c和铝,40HJZ A2;按一个键来读取键盘。JMP出口A2: MOV啊,00H记录按键扫描码MOVCX,04;循环4次。MOV DL,77H打开第一行的扫描开关。a21:INC AH;扫码+1ROL DL,1MOV有限公司OUT 62H,AL;打开一行开关扫描。在AL中,62H读取端口c试验铝,40小时;以PC6(Y1)为例JNZ A22没有按键,转打电
26、话给戴利打电话给戴利;抖动在AL中,62H读取端口c和AL,40H以PC6(Y1)为例JNZ A22它在晃动,在转动。CMP AH,2JNZ RELEA不是加速键,转动(单独按加速键无效)或者啊,80H是加速键,则位D7 =1。JMP A22RELEA:呼叫显示MOV有限公司62H外,铝在铝中,62H和AL,40H等待按键释放。JZ雷利亚JMP A23;AH扫描码,=1(按下X1键)开始和停止,=2加速,=3+,=4-键A22:环路A21JMP出口a23:MOV阿尔,啊还有AL,0FH化学机械抛光铝,01HJNZ A3不按启停键,转。MOV艾尔,快跑测试铝,01HJNZ A24最初开始,后来停
27、止了。MOV运行,01;设置开始标志。MOV NOW_T,T;重装周期你好,MOV艾尔MOV现在_嗨,艾尔;重置高电平定时时间MOV速度,00;重新计算(里程)JMP出口A24: MOV跑,00;重置标志MOV阿尔,00HOUT 60H,AL;关掉马达JMP出口A3: MOV阿尔,啊还有AL,0FH化学机械抛光铝,03JNZ A6不是“+”键,转MOV BL,1测试AH,80HJZ A4;没按下油门按钮,转弯MOV BL,10;按加速键,加10,正常加1。A4:添加BL,T_HICMP BL,100E A5MOV基本法,100A5: MOV T_HI,BL;增加的百分比不能大于100%JMP出口答6: MOV阿尔,啊还有AL,0FH化学机械抛光铝,04JNZ出口;不是-键,转!MOV BH,01测试AH,80HJZ A7;没按下油门按钮,转弯MOV BH,10;按加速键,-10,正常-1。MOV BL,T_HI次BL,BHJNC A8MOV BL,00A8: MOV T_HI,BL;的最小百分比是0%出口:JMP A1;8259A的IR0中断处理子程序(8253的CH0定时基本周期为0.512MS)IRQ0:推AX性传播感染MOV艾尔,快跑还有阿尔,阿尔JZ I rexit;如果没有,切换到速度测量。MOV艾尔,现在苏巴尔,1JNZ IRSP1MOV NOW_T,T;重
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年高中教师资格教育教学知识与能力强化检测卷五摸底试卷及答案
- 2026年新冠医师资格考试试卷及答案
- 2026年二手车职业资格考试试卷及答案
- Labubu奇幻世界宣传报告
- 2026年公共营养师三级(理论、技能)考试试题及答案
- 2026年电工证考试题库模拟考及答案
- 2026年亲子教育主题题目及答案
- 冰雹天气应急预案
- 矿山安全防护工岗前基础实战考核试卷含答案
- 棉胶液制备工诚信品质知识考核试卷含答案
- 新版2026年部编版新教材道德与法治五年级上册全套单元、期中、期末检测题(共6份有答案)合集
- 2026年重庆市安全员A证考试模拟题及答案详解
- 2026-2027学年人教版八年级上册数学第一次月考重难点突破学情自测卷(含答案)
- 2026年江苏省人教版小学四年级语文上册第1单元测试卷
- 2026浙江省强基联盟高一阶段检测英语月考试题(含答案解析)
- 施工现场有限空间作业风险辨识方案
- 矿山安全生产管理体系建设方案
- 2025湖北汉江金融服务中心有限公司校园招聘5人笔试参考题库附带答案详解
- 《美术手工创作方法》全套教学课件
- 雨课堂在线学堂《大学生国家安全教育》作业单元考核答案
- 《概念验证服务规范》
评论
0/150
提交评论