




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微型计算机技术课程设计 模拟电压采集电路指导教师: 学生班级: 学生姓名: 学 号: 班内序号: 41 课设日期:2013年1月11日2013年1月16日 同组队员:24 目录一 设计任务、设计要求、设计目的-1二 课题设计思路-2三 设计仪器、器件-3 以及芯片介绍-3 74LS138-3 8253-4 8255A-5 ADC0809-6 ADC0809与8255A的连接-7 8259内部结构及原理-7 数码管-9四 芯片初始化编程程序初始化8255和8253-10(1) 初始化8255-10(2) 初始化8253-10编写中断服务子程序-11五 程序流程图-12ADC主程序编写-12中断流
2、程-12六 硬件连接图-13七 程序代码-14八 主要难点及解决思路和办法-19九 课设设结果及分析-20十收获、体会和建议-21一、设计任务利用微型计算机原理课程中所学的主要可编程接口芯片74LS138、8253、8255A、ADC0809和中断控制器8259设计一个模拟电压采集电路。采用ADC0809设计一个单通道模拟电压采集电路,要求对所接通道变化的模拟电压值进行采集,采集来的数字量送至数码管LED指示,采集完100个数据后停止采集过程。设计要求1、 选用8088CPU和适当的存储器芯片、接口芯片完成相应的功能。2、 画出详细的硬件连接图。3、 画出各程序的详细框图。4、 给出RAM地址
3、分配表及接口电路的端口地址。5、 给出设计思路。6、 给出程序所有清单并加上必要的注释。7、 完成设计说明书。设计目的1. 通过本设计,使学生综合运用微型计算机技术、汇编语言程序设计以及电子技术等课程的内容,为以后从事计算机检测与控制工作奠定一定的基础。2. 主要掌握并行I/O接口芯片8253、8255A、ADC0809及中断控制芯片8259A等可编程器件的使用,掌握译码器74LS138的使用。3. 学会用汇编语言编写一个较完整的实用程序。4. 掌握微型计算机技术应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等步骤。2、 设计思路: 本设计是利用已给芯片配搭相应
4、辅助器件完成一个对电压的采集并显示的过程。我对这个课题的设计思路如下: 先用ADC0809模数转换芯片作为与外部测量到的模拟量相连接,如果ADC0809接收到模拟量时,将其转化为相应的数字信号。然后中断芯片8259不停地对外设进行探测,没有发现中断就继续探测,当有模拟量转化为数字量时,就有中断执行。8088开始工作,通过接口电路8255A对数据进行传输,最后显示在数码管上!100个数据还得分配相应的内存空间(本设计中没有画出相应的存储芯片)。本设计以8088为中心,通过译码器74LS138对个芯片的工作进行地址分配,控制各个芯片工作在何种状态。 当第一个模拟信号通过采集放到内存并显示后,中断执
5、行结束,8088通过控制分频器8253,在一定时间间隔后再对模拟电压量进行采集,知道执行100次之后,采集电压过程结束!三、设计仪器、器件1、一台微机原理与接口实验装置一套。2、可编程芯片8253、8255A 、ADC0809和译码器芯片74LS138、8259中断芯片、数据总路线缓冲器74LS245各一片。3、四位数码管4、其它逻辑器件、导线若干、示波器、万用表、常用工具等。74LS138芯片图:控制方式图:当一个选通端为高电平,另两个选通端为低电平时,可将地址端(A、B、C)的二进制编码在Y0至Y7对应的输出端以低电平译出。比如:ABC=110时,则Y6输出端输出低电平信号。8253825
6、3内部有三个计数器,分别称为计数器0、计数器1和计数器2,他们的机构完全相同。每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。8255A8255A在使用前要写入一个方式控制字,选择A、B、C三个端口各自的工作方式,共有三种;方式0 :基本的输入输出方式,即无须联络就可以直接进行的 I/O方式。其中A、B、C口的高四位或低四位可分别设置成输入
7、或输出。方式1 :选通I/O,此时接口和外围设备需联络信号进行协调,只有A口和B口可以工作在方式1,此时C口的某些线被规定为A口或B口与外围设备的联络信号,余下的线只有基本的I/O功能,即只工作在方式0.方式2: 双向I/O方式,只有A口可以工作在这种方式,该I/O线即可输入又可输出,此时C口有5条线被规定为A口和外围设备的双向联络线,C口剩下的三条线可作为B口方式1的联络线,也可以和B口一起方式0的I/O线。8255A是一个并行输入、输出器件,具有24个可编程设置的I/O口,包括3组8位的I/O为PA口、PB口、PC口,又可分为2组12位的I/O口:A组包括A口及C口高4位,B组包括B口及C
8、组的低4位。A口可以设置为方式0、方式1、方式2,B口与C口只能设置为方式0或方式1.ADC08091、提供一个8通道的多路开关和寻址逻辑l IN0IN7:8个模拟电压输入端l ADDA、ADDB、ADDC:3个地址输入线l ALE:地址锁存允许信号2、ALE的上升沿用于锁存3个地址输入的状态,然后由译码器从8个模拟输入中选择一个模拟输入端进行A/D3、ADC0809的转换时序:4、ADC0809内部锁存转换后的数字量5、具有三态数字量输出端D0D76、配合输出允许信号OE7、当输出允许信号OE为高电平有效时,将三态锁存缓冲器的数字量从D0D7输出(4).8255A与ADC0809的连接中断控
9、制器8259 8259芯片的工作原理一个外部中断请求信号通过中断请求线IRQ,传输到IMR(中断屏蔽寄存器),IMR根据所设定的中断屏蔽字(OCW1),决定是将其丢弃还是接受。如果可以接受,则8259A将IRR(中断请求暂存寄存器)中代表此IRQ的位置位,以表示此IRQ有中断请求信号,并同时向CPU的INTR(中断请求)管脚发送一个信号。但CPU这时可能正在执行一条指令,因此CPU不会立即响应。而当这CPU正忙着执行某条指令时,还有可能有其余的IRQ线送来中断请求,这些请求都会接受IMR的挑选。如果没有被屏蔽,那么这些请求也会被放到IRR中,也即IRR中代表它们的IRQ的相应位会被置1。当CP
10、U执行完一条指令时后,会检查一下INTR管脚是否有信号。如果发现有信号,就会转到中断服务,此时,CPU会立即向8259A芯片的INTA(中断应答)管脚发送一个信号。当芯片收到此信号后,判优部件开始工作,它在IRR中,挑选优先级最高的中断,将中断请求送到ISR(中断服务寄存器),也即将ISR中代表此IRQ的位置位,并将IRR中相应位置零,表明此中断正在接受CPU的处理。同时,将它的编号写入中断向量寄存器IVR的低三位(IVR正是由ICW2所指定的,不知你是否还记得ICW2的最低三位在指定时都是0,而在这里,它们被利用了!)这时,CPU还会送来第二个INTA信号,当收到此信号后,芯片将IVR中的内
11、容,也就是此中断的中断号送上通向CPU的数据线。数码管数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。4、 芯片初始化(1)初始化8255:8255有四个寄存器,地址为300h-303h,分别为A口,B口,C口,和控制口,首先要向C口写入控制字,控制字格式
12、如下:工作方式控制D7 D6 D5 D4 D3 D2 D1 D0特征位1A组方式选择端口A输入/输出C口高四位输入/输出B组方式选择端口B输入/输出端口C低四位输入/输出C端口置位/复位控制D7 D6 D5 D4 D3 D2 D1 D0特征位0任意位选择置位/复位 0为复位,1为置位可用如下代码初始化8255:MOV DX,303H MOV AL,10011001bOUT DX,AL(2)初始化82538253控制字格式如下D7 D6 D5 D4 D3 D2 D1 D0计数器选择读写格式工作方式计数方式输入时钟信号为0.5MHZ,需要写入的计数初值为2,选用计数器0,工作方式3,代码如下:MO
13、V DX,307H MOV AL,00110110b OUT DX,AL MOV AX,2 MOV DX,304H OUT DX,AL MOV AL,AH OUT DX,AL(3)编写中断服务子程序首先要设置好中断向量,这里是调用72H号中断,在里面写入A/D转换的中断服务子程序地址,所以要保存原来72H中断向量表里面的内容,最后在程序完成时要恢复72H里的内容,在执行这些操作的时候是不容许中断的,所以要关中断,操作完成后要开中断,可以用一下指令来完成:CLI;获取原中断向量里的内容并保存 IN AL,0A1H;设置中断屏蔽寄存器,系统自动产生72号中断 AND AL,0FBH OUT 0A1
14、H,AL MOV AX,3572H INT 21H MOV INTOFF,BX MOV INTSEG,ES PUSH DS MOV DX,OFFSET CONVERT_PROC;设置新的中断向量 MOV AX,SEG CONVERT_PROC MOV DS,AX MOV AX,2572H INT 21H POP DSSTI;开中断,进行判断选择按什么键CLI;恢复1C号中断向量 MOV DX,INTOFF MOV AX,INTSEG MOV DS,AX MOV AX,2572H INT 21H STI中断服务子程序:要想启动0809进行转换,首先必须有一个start信号,该信号为:在转换的时候
15、通过EOC信号来判断转换是否结束,当EOC信号由0变为1时就代表转换结束,此时让OE引脚为1,这时转换出来的数据就输出了。五、程序流程图 ADC主程序编写开 始8253初始化8255初始化中断向量的设置启动8253分频启动ADC有 中 断?中断处理采集100次到否?有ESC按下?结 束 六、详细的硬件连接图七、程序代码STACK1 SEGMENT STACKDW 200 DUP(?)STACK1 ENDSDATA SEGMENTMESG1 DB '8255 checkself 8253 checkself and A/Dconversion',0ah,0dh DB 'E
16、xit with Esc',0ah,0dh,'$'LEDDATA DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FHNUM db 0 count1 db 0INT0A_OFF DW(?)INT0A_SEG DW(?) DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATADELAY PROC PUSH CX PUSH BX MOV BX,0FFFHLOOP2:MOV CX,0FFFFHLOOP1:LOOP LOOP1 DEC BX JNZ LOOP2 POP BX POP CX RET DELAY END
17、P ;延时程序START: MOV AX,DATA MOV DS,AX MOV AH,09H MOV DX,OFFSET MESG1 INT 21h ;显示提示信息 MOV DX,303H ;初始化8255 MOV AL,80H OUT DX,AL MOV DX,301H ;LED灯亮4盏灭四盏 MOV AL,0F0H OUT DX,AL MOV AX,3572H ;获取原中断向量 INT 21H MOV INT0A_OFF,BX ;保存原中断向量 MOV BX,ES MOV INT0A_SEG,BX CLI ;关中断 MOV AX,2572H MOV DX,SEG LEDLIGHT ;设置新
18、的中断向量 PUSH DS MOV DS,DX MOV DX,OFFSET LEDLIGHT INT 21H POP DS STI ;开中断 IN AL,0A1H ;打开IRQ10 AND AL,0FBH OUT 0A1H,AL IN AL,21H ;打开IRQ2 AND AL,0FBH OUT 21H,AL MOV DX,307H ;8253定时1S MOV AL,01110110B OUT DX,AL MOV DX,305H MOV AL,0E8H OUT DX,AL MOV AL,03H OUT DX,AL MOV DX,307H MOV AL,10110110B OUT DX,AL M
19、OV DX,306H MOV AL,0E8H OUT DX,AL MOV AL,03H OUT DX,ALL1: MOV AH,0BH ;检查是否有Esc键按下 INT 21H INC AL JNZ NEXT0 ; 若无键按下,则程序往下执行 MOV AH,08H ;如有Esc键按下,则程序退出 INT 21H CMP AL,27 JZ EXIT NEXT0: CALL DELAY JMP L1 EXIT: MOV AX,2572H ;恢复中断向量 MOV DX,INT0A_SEG PUSH DS MOV DS,DX MOV DX,INT0A_OFF INT 21H POP DS IN AL,
20、0A1H ;屏蔽IRQ10 OR AL,04H OUT 0A1H,AL IN AL,21H ;屏蔽IRQ2 OR AL,04H OUT 21H,AL MOV AX,4C00H ;程序退出 INT 21H LEDLIGHT PROC FAR ;中断服务程序 PUSH AX INC count1 MOV AL,count1 CMP AL,100 POP AX JZ EXIT ;采集到100次后退出 CLI ;关中断 MOV DX,303H MOV AL,10011000B OUT DX,AL ;重写8255方式字,A口输入,C口低四位输出,C口高四位输入lop: MOV DX,303H MOV A
21、L,1H OUT DX,AL ;先使PC0为1 MOV CX,0F00Hlop1: LOOP lop1 ;延时 MOV DX,303H MOV AL,00H ;使PC0为0下降沿启动信号 OUT DX,ALlopsub: MOV DX,302 IN AL,DX AND AL,10H JZ lopsub ;判断PC4是否为高,即判断转换是否结束 MOV DX,303H MOV AL,5H OUT DX,AL ;使PC2为高,发出OE MOV DX,300H IN AL,DX ;从A口读数据 MOV BL,AL PUSH AX MOV DX,303H MOV AL,10011001B OUT DX
22、,AL MOV DX,301H MOV AL,BL OUT DX,AL ;将数据输入发光二极管显示 POP AX PUSH AXshow1: ;显示高四位 AND AL,0F0H SHR AL,4 CMP AL,9 JA HEX2 ADD AL,30H JMP NEXTPROL1 HEX2: ADD AL,37HNEXTPROL1: MOV DL,AL MOV AH,2 INT 21H POP AX AND AL,0FH ;显示低四位 CMP AL,9 JA HEX3 ADD AL,30H JMP next4 HEX3: ADD AL,37H next4: PUSH AX INC NUM MO
23、V AL,NUM CMP AL,5 POP AX JNZ NEXT5 ;使一行输入5个数据 MOV DL,AL MOV AH,2 INT 21H MOV DL,20H ;向屏幕送空格符 MOV AH,2 INT 21H MOV DL,13 ;向屏幕送回车符 MOV AH,2 INT 21H MOV DL,10 ;向屏幕送换行符 MOV AH,2 INT 21H MOV NUM,0 JMP NEXT NEXT5: MOV DL,AL MOV AH,2 INT 21H MOV DL,20H ;向屏幕送空格符 MOV AH,2 INT 21HNEXT: MOV AL,62H ;发中断结束命令 MOV
24、 DX,0A0H OUT DX,AL ;向从片8259发EOI命令 OUT 020H,AL ;向主片8259发EOI命令 STI ;开中断 IRETLEDLIGHT ENDPCODE ENDS END START八、设计过程中的主要难点及解决思路和办法:在本次设计中,我遇到的问题很多:1、 ADC08009模数转换芯片的使用,以及对这块芯片与接口单元8255A的连接很不熟悉。解决方法:先翻阅相关文献,了解ADC0809各个接口的功能以及内部结构原理,再和本次设计的课题相结合,找出它与8255A的连接方式。2、 译码器74LS138如何输出相应的地址控制各个芯片正常工作。解决方法:在设计前先对这个电路的所有工作方式写出来,然后通过对相应的芯片的片选端进行置1或置0,从而对每一个方式进行地址译码,这样就可以较简洁地通过译码器输出相应控制地址。3、 中断处理器8259如何放入设计电路中,对中断进行执行。解决方法:整理思路,结合中断处理的过程和原理,结合本次设计电路的要求,将每次采集的每一个模拟电压量看作一次中断,从而将中断融入到次电路设计中去。4、74LS245数据总路线缓冲器的原理结构及使用方法不太了解。 解决方法:通过网络、书籍等途径,对74LS245数据总路线缓冲器的内部结构、原理进一步了解,熟悉74LS245的功能表,从
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- CJ/T 33-2004液化石油气钢瓶热处理工艺评定
- CJ/T 110-2000承插式管接头
- 社会问题分析的中级考试试题及答案
- 矿山压力观测试题及答案
- 初级车床考试题及答案
- 多媒体应用设计师知识更新的试题及答案
- 实战经验分享软件评测师考试试题及答案
- 网络考试中的自我管理技巧与试题答案
- 软件评测中的常见挑战试题及答案
- 江西省病历管理制度
- 如何理解中国人民抗日战争胜利对实现中华民族伟大复兴的意义?参考答案三
- 2025-2030中国数字PCR(DPCR)和QPCR行业市场现状供需分析及投资评估规划分析研究报告
- 相机全景拍摄与拼接技术考核试卷
- 职业暴露与防试题及答案
- 佛山公务员试题及答案
- 2025年高考政治抢押秘籍(江苏专用)时政热点03发展民营经济-(江苏专用)(学生版+解析)
- 2025年四川省成都市锦江区中考二诊物理试题(含答案)
- 2025年安徽高考历史模拟预测试卷(含答案解析)
- DB34T 4720-2024工会驿站运维服务规范
- 安川机器人手动操纵及编程基础
- 焊接设备维护与保养试题及答案
评论
0/150
提交评论