微机原理课程设计报告--数据采集系统三(中断法)
微机原理与接口技术——中断系统

2、内部中断——软件中断
内部中断指由指令的执行或软件对标志寄存器中 某个标志的设置产生的中断
专用中断
指令中断
内部中断的种类
(1)除法出错中断 类型号为00H
除法出错中断既不是外部硬件产生,也不是用 软件指令产生,而是CPU自身产生的,因此0型中 断没有对应的中断指令,即指令系统中没有INT 0 这条指令。
30~3FH 40~FFH
DOS保留使用 DOS内部使用 DOS保留使用 用户自定义
DOS 可调用
1、外部中断——硬件中断
1、非屏蔽中断(NMI):不受中断标志位的控制,中断类型 号为2,所以中断向量放在0000:0008开始的4个单元中。NMI 中断一般用于紧急情况的处理,不受中断标志位IF影响 。 2、可屏蔽中断(INTR):受中断标志位的控制,IF=1, CPU才能响应INTR中断。CPU响应INTR中断时,往INTA引 脚上发两个负脉冲,外设接到第二个负脉冲后,立即往数据总 线上送出中断类型码,供CPU读取。
中断源
引起CPU中断的事件,发出中断请求的来源。
异常中断 内部中断
软件中断
异常事件引起 中断指令引起
可屏蔽中断 外部中断
非屏蔽中断
INTR中断 NMI中断
引入中断的原因
提高数据传输率; 避免了CPU不断检测外设状态的过程,提高了
CPU的利用率。 实现对特殊事件的实时响应。
中断系统
中断系统是指实现中断功能的软硬件的统称。功 能有: 正确识别中断请求,实现中断响应、中断处理
INTR
IRQ0 系统定时器 IRQ1 键盘 IRQ2 彩色/图形接口
8259A
IRQ3 保留(串口) IRQ4 串口
IRQ5 保留(LPT)
微机原理—中断系统

例1 PC 机采用向量中断方式处理 8 级外中断,中断号 依次为 08H~0FH,在存储器 2CH 单元开始依次存放 23H, FFH,D0H,0FDH 四个字节,问该向量对应的中断号和中断 服务程序入口地址。
A. 0CH, 23FFH:00FEH
B. 0BH, D0FDH:23FFH
C. 0BH, FDD0H:FF23H
注解
(1)外部中断(硬中断)
电子工程学院
3
微机原理与接口技术
外部硬件(主要是外设通过接口)产生 1)不可屏蔽中断 NMI——由 NMI 通知 CPU,常用于重大故障或
紧急情况如电源掉电、存贮器读写出错、总线奇偶错等,该中断是不能用中断
标志 IF 控制的。
2)可屏蔽中断 INTR——由 INTR 来通知 CPU 发生了外部事件中断
②第二个中断响应总线周期 CPU 发INTA,中断控制逻 辑发中断类型码给 CPU ;
③保护断点和标志,FLAGS、CS 和 IP 内容依次压入堆栈 ④清除 IF 标志和 TF 标志 ⑤根据中断类型码,转入中断服务程序入口
注解
电子工程学院
更新、补充内容
课外作业 课外作业
课后总结 课后总结
目录
第 7 章 中断系统......................................................................................................1 7.1 概述.......................................................................................................................1 7.1.1 中断的基本概念................................................................................................1 7.1.2 中断处理过程....................................................................................................2 7.2 16 位微机中断系统............................................................................................3 7.2.1 中断类型............................................................................................................3 7.2.2 中断向量表........................................................................................................4 7.2.3 中断响应过程....................................................................................................6 7.4 可编程中断控制器 8259A..................................................................................7 7.4.1 8259A的编程模型...............................................................................................7 7.4.2 8259A的外部引脚...............................................................................................8 7.4.3 8259A的工作方式...............................................................................................9 7.4.4 8259A的编程 ....................................................................................................12 7.4.5 8259A的应用 ....................................................................................................17
《汇编语言+微型计算机技术》数据采集系统的设计与实现汇编课设报告

《汇编语言+微型计算机技术》课程设计报告课设题目数据采集系统的设计与实现系部信息系班级计算机xxx学生姓名xxx学号xxx序号22指导教师徐阳时间2014.6.17~2014.6.29目录一、设计目的 (1)二、设计内容 (1)三、硬件设计及分析 (2)1总体结构图 (2)2.各部件端口地址设计及分析 (2)3.各部件的组成及工作原理 (3)四、软件设计及分析 (6)1总体流程图 (6)2.连线 (7)3.主要程序编写及分析 (7)五、系统调试 (11)1.调试环境介绍 (11)2.各部件的调试 (12)3.调试方法及结果 (18)六、总结与体会 (19)七、附录 (20)数据采集系统的设计与实现一、设计目的1.通过本设计,使学生综合运用《微型计算机技术》、《汇编语言程序设计》以及电子技术等课程的内容,为以后从事计算机检测与控制奠定一定的基础。
2.主要掌握并行I/O接口芯片8253、8255A、ADC0809及中断控制芯片8259A 等可编程器件的使用,掌握译码器74LS138的使用。
3.学会用汇编语言编写一个较完整的实用程序。
4.掌握微型计算机技术应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等步骤。
二、设计内容1.功能要求①利用《汇编语言+微型计算机系统》课程中所学的可编程接口芯片8253、8255A、ADC0809和微机内部的中断控制器8259A(从保留的IRQ2或TRQ10端引入)设计一个数据采集系统、并且编程与调试。
②用8253定时器定时10MS,每次定时10MS后启动一次模/数转换,要求对所接通道变化的模拟电压值进行采集。
③每次模/数转换结束后,产生一次中断,在中断服务程序中,采集来的数字量被读入微处理器的累加器AL中,然后通过8255A输出到8个LED发光二极管显示。
④最后不要8255芯片用数码管显示所采集后的信息(电压0-5.0的范围内变化)。
2.设计所需器材与工具④微机原理与接口综合仿真实验平台。
微机原理实验-外部中断实验

下面是赠送的几篇网络励志文章需要的便宜可以好好阅读下,不需要的朋友可以下载后编辑删除!!谢谢!!出路出路,走出去才有路“出路出路,走出去才有路。
”这是我妈常说的一句话,每当我面临困难及有畏难情绪的时候,我妈就用这句话来鼓励我。
一定有很多人想说:“这还在北京混个什么劲儿啊!”但他每天都乐呵呵的,就算把快递送错了也乐呵呵的。
某天,他突然递给我一堆其他公司的快递单跟我说:“我开了家快递公司,你看得上我就用我家的吧。
”我有点惊愕,有一种“哎呦喂,张老板好,今天还能三蹦子顺我吗”的感慨。
之后我却很少见他来,我以为是他孩子出生了休假去了。
再然后,我就只能见到单子见不到他了。
某天,我问起他们公司的快递员,小伙子说老板去上海了,在上海开了家新公司。
我很杞人忧天地问他:“那上海的市场不激烈吗?新快递怎么驻足啊!”小伙子嘿嘿一笑说:“我们老板肯定有办法呗!他都过去好几个月了,据说干得很不错呢!”“那老婆孩子呢?孩子不是刚生还很小吗?”“过去了,一起去上海了!”那个瞬间,我回头看了一眼办公室里坐着的各种愁眉苦脸的同事,并且举起手机黑屏幕照了一下我自己的脸,一股“人生已经如此的艰难,有些事情就不要拆穿”的气息冉冉升起。
并不是说都跳槽出去开公司才厉害,在公司瞪着眼睛看屏幕就是没发展,我是想说,只有勇气才能让自己作出改变。
《拒绝平庸》里有一句话:很多时候我们为什么嫉妒别人的成功?正是因为知道做成一件事不容易又不愿意去做,然后又对自己的懒惰和无能产生愤怒,只能靠嫉妒和诋毁来平衡。
其实走出去不一定非要走到什么地方去,而是更强调改变自己不满意的现状。
有人问我那你常说要坚持,天天跑出去怎么坚持?其实要坚持的是一种信仰,而不是一个地方,如果你觉得一个地方让你活得特别难受,工作得特别憋屈,除了吐槽和压抑没别的想法,那就要考虑走出去。
就像歌词里说的:“梦想失败了,那就换一个梦想。
”不能说外面都是大好前程,但肯定你会认识新的人,有新的机会,甚至改头换面重新做人。
《微机原理与汇编语言》中断系统资料精品PPT课件

返回
上一张
下一张
44
1、中断允许控制寄存器IE
AFH AEH ADH ACH ABH AAH A9H A8H
IE EA (A8H)
ES ET1 EX1 ET0 EX0
返回
上一张
下一张
45
2、中断允许寄存器IE中各位的含义。
①EA—中断允许总控制位。 EA=0,屏蔽所有的中断请求; EA=1,CPU开放中断。对各中断源的中断 请求是否允许,还要取决于各中断 源的中断允许控制位的状态。这就 是所谓的两级控制。
22
上一张
下一张
23
二、中断技术实现的功能
• 1、分时操作 • 2、实时处理 • 3、故障处理
返回
上一张
下一张
24
1、分时操作
• 计算机的中断系统可以使CPU与外设同时 工作。
• CPU在启动外设后,便继续执行主程序; 而外设被启动后,开始进行准备工作。当 外设准备就绪时,就向CPU发出中断请求, CPU响应该中断请求并为其服务完毕后, 返回原来的断点处继续运行主程序。外设 在得到服务后,也继续进行自己的工作。
上一张
下一张
50
2、中断允许寄存器IE中各位的含义。
⑥EX0—外部中断0的溢出中断允许位。 EX0=0,禁止外部中断0中断; EX0=1,允许外部中断0中断。
返回
上一张
下一张
51
例5-1
假设允许片内定时器/计数器中断,禁止其他中断。试 根据假设条件设置IE的相应值。
解:(IE)=10001010B=8AH
返回
上一张
下一张
18
八、中断方式的特点
• 1、中断方式消除了CPU在查询方式中的等待 现象,大大提高了CPU的工作效率。
中断方式数据采集系统的设计与实现

中断方式数据采集系统的设计与实现中断方式数据采集系统的设计与实现摘要:本文提出了一种基于中断方式的数据采集系统设计方案,该系统可以实时地采集各种传感器信号并将其存储在外部存储器中。
该系统具有实时性好、稳定性高的特点,能够满足各种数据采集需求。
本文详细介绍了该系统的设计方案以及实现过程,包括硬件设计和软件编程,最后通过实验验证了本方案的有效性。
关键词:数据采集系统;中断方式;硬件设计;软件编程;实验验证1.引言作为现代科技的基础,数据采集已经在各个领域得到了广泛的应用。
传统的数据采集系统通常采用轮询方式,即通过程序循环不停地读取外部设备的数据。
这种方式存在着很多缺点,例如占用系统资源高、实时性差等。
为了解决这些问题,一种新的数据采集方式——中断方式开始逐渐应用于各种数据采集系统中。
中断方式是指外部设备按照一定的条件向处理器发出请求,并让处理器暂停当前任务去执行相应的中断服务程序。
该方式相较于轮询方式有着更高的实时性,因此更加适合于数据采集系统的实现。
本文将介绍一种基于中断方式的数据采集系统设计方案,并通过实验验证其有效性。
2.系统设计本系统包括硬件设计和软件编程两个部分。
2.1 硬件设计硬件设计主要包括传感器模块、单片机模块、存储器模块等。
传感器模块须具备高灵敏度、低噪声、稳定性好等特点。
单片机模块需要选择具有强大计算能力和丰富接口功能的芯片,可以满足信号处理和存储等要求。
本系统采用了STM32F103C8T6单片机,其主频为72MHz,内部存储器为64KB,具有丰富的外部接口方式。
传感器模块使用的是DS18b20数字温度传感器,该传感器具有输出精度高、线性度好、抗干扰能力强等特点。
存储器模块选择了SD 卡作为外部存储器。
2.2 软件编程本系统采用Keil uVision5作为软件编程工具,使用C语言编程,采用中断方式进行数据采集。
具体的编程流程如下:1)初始化:对各个模块进行初始化,包括时钟配置、外部中断配置、GPIO口配置等。
(完整版)微机毕业课程设计之数据采集系统

微机原理及接口技术课程设计书学院:信息与通信工程学院专业:测控技术与仪器班级:xxx学号:xxx姓名:xxx指导教师:xxx目录1、摘要 (2)2、总体方案设计 (2)2.1设计目的 (2)2.2设计任务与要求 (2)2.3设计方案 (3)3、硬件原理图设计设计 (3)3.1总设计图说明 (3)3.2各子硬件图说明 (4)3.2.1原理图所用芯片介绍 (4)3.2.2各子硬件电路说明 (9)4、程序设计 (13)4.1程序流程图 (14)4.2程序设计说明 (14)5、课程设计收获与心得体会 (17)6、参考文献 (18)7、附录 (19)一、摘要本次课程设计,主要是了解可编程外围芯片8255的工作原理,以及学会对ADC0809和8255芯片的应用和设计技术。
对微型计算机基本的系统结构、对微型计算机硬软件的工作原理有个整体的认识。
学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
二、总体设计方案2.1设计目的1)进一步建立微机系统的概念,加深对系统的理解和认识,培养学生应用微型计算机解决实际问题的能力;2)进一步学习和掌握汇编语言程序的编写和应用的方法,通过较大规模程序的编写,提高编写汇编语言程序的水平和学习程序调试方法。
3)进一步熟悉微机最小系统的构成及常用接口芯片的使用,提高系统设计的能力。
2.2设计任务和要求设计内容:以8088cpu为核心设计一个采集系统,系统可以实现一路模拟电压信号进行采集,已知该电压信号的电压范围是0~255mv,选用adc0809作为AD转换器,系统中有三位LED显示器显示所采集到电压的毫伏数。
设计要求:1)画出电路原理图,说明工作原理2)编写一个实现对输入模拟电压进行转换并在LED显示器显示当前采集数据的数字量程序2.3设计方案数据采集系统的设计,要求使用微型计算机的最小系统,且具有1路的输入,输入信号在0—255mV,而且采用数码管显示输入(显示10进制的结果)。
微机原理课程设计 中断技术

中断技术课程设计学生姓名学号指导教师专业南京人口管理干部学院验内容:用DAC0832产生1000Hz正弦波1、采用查表法,用DAC0832产生1000Hz正弦输出模拟信号,用示波器检查波形。
(8253 T0产生定时脉冲,8259 INT0向CPU中断)。
D/A转换是把数字量转换成模拟量的变换,实验台上D/A电路输出的是模拟电压信号。
要实现实验要求,比较简单的方法是产生正弦波形的表格,然后通过查表来实现波形显示。
2、实验程序框图如下:3、D/A转换取值范围为一个周期,采样点越多,精度越高些。
8位D/A转换器的输入数据与输出电压的关系为U=[2.5sin(n*t)+2.5]*1000/20,现以32个点为原始点,通过以上方程得到的结果如下图:4、程序代码:DATA SEGMENTSIN_TABLE DB 125,149,172,194,213,228,240,247DB 250, 247,240,228,213,194,172,149DB 125. 100,77,55,36,21,9,2DB 0,2,9,21,36,55,77,100DATA ENDS;----------------------------------------------------------------------------------------STACK SEGMENT STACK ‘STACK’DB 128 DUP (?)STACK ENDS;-----------------------------------------------------------------------------------------CODE SEGMENTASSUME CS:CODE,DS:DATA,SS;STACKBEGIN: MOV DX,CODEMOV DS,DXMOV DX,OFFSET SIN_DISMOV AL,0FHMOV AL,25HINT 21HMOV AX, DATAMOV DS, AXXOR AX,AXMAIN PROCCLILEA BX,SIN_TABLEIN AL,21HAND AC,01111111BOUT 21H,AL;---------8253初始化------------MOV DX ,283HMOV AL,00100110BOUT DX,ALMOV AX,1000MOV DX,280HOUT DX, ALMOV AL,AHOUT DX,AL;----------------------------------------------- STIA_1: JMP A_1MOV AH,4CHINT 21HMAIN ENDPSIN_DIS PROCMOV AL,[BX]MOV DX,290HOUT DX, ALINC BXCMP BX,32JAE THEN_1JMP NEXT_1THEN_1:MOV BX,0NEXT_1:MOV AL,20HOUT 20H,ALSTIIRETSIN_DIS ENDPCODE ENDSEND BEGIN该程序大概可分为三部分:8253计数部分,8259A中断部分,DAC0832转换部分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理课程设计课设题目:数据采集系统三(中断法)实验者姓名:实验者学号:学院:数据采集系统三(中断法)一、实验目的进一步掌握微机原理知识,了解微机在实时采集过程中的应用,学习、掌握编程和程序调试方法。
二、实验内容1、用中断法,将ADC 0809 通道0 外接0 ~ 5V 电压,转换成数字量后,在七段LED数码管上,以小数点后两位(几十毫伏)的精度,显示其模拟电压的十进值;0809通道0 的数字量以线性控制方式送DAC0832 输出,当通道0的电压为5V 时,0832的OUT 为0V, 当通道0 的电压为0 时,0832的OUT 为2.5V;此模拟电压再送到ADC 0809 通道1,转换后的数字量在CRT 上以十六进制显示。
2、ADC 0809 的CLK 脉冲,由定时器8254的OUT0 提供;ADC 0809 的EOC 信号,用作8259 中断请求信号。
3 、要有较好的人机对话界面;控制程序的运行。
三、总体设计1 、ADC 0809的IN0 采集电位器0 —5V 电压,IN1 采集0832 输出的模拟量。
2 、DAC 0832将ADC 0809的IN0 数字量后重新转换成模拟量输出。
3 、8259用于检测ADC 0809转换是否结束和向CPU发送INTR信号4 、8255 为七段LED数码管显示提供显示驱动信息。
5 、七段LED数码管显示ADC 0809的IN0 的值。
6 、8254提供ADC 0809的采样时钟脉冲。
7、有良好的人—机对话界面。
系统运行时,显示主菜单,开始数据采集, 在数据采集时, 主键盘有键按下, 退出返回DOD 系统。
四、硬件设计因采用了PC机和微机实验箱, 硬件电路设计相对比较简单, 主要利用微机实验箱上的8255 并行口、ADC0809、DAC0832、七段LED数码管单元、8254定时/ 计数器、74LS574输出接口、电位器等单元电路, 就构成了数据采集系统, 硬件电原理框图4-3-1 所示。
1 2 3 4课程设计报告纸XD0-XD7 D0-D7 RfeD/Y2XIOWXD0-XD7XIOWCSWRD0-D7WR08320832Iout12Iout23GATE011441 6ABLM324 511+5V7LM324XIORXA2RDA0 8254 CLK01.8432MHZOUTXA3/Y3A1CSOUT0XD0-XD7 D0-D7 CLKXIOWXIORWRRD 0809ABCIN0X A2XA3XA410K+5VC/Y0 CS I N1 EOCXD0-XD7 D0-D7XIOW WR IR0XIOR RDINTR INTR8259A0 A2 /Y7 CSXD0-XD7 D0-D7XIOWXIORXA2 A0 8255 PA0-PA5 L1-L6数码管键盘单元B XA3 A1PB0-PB7 A,B-G,Dp /Y1 CSXA5 A /Y0XA6 B /Y1XA7 C74138 /Y2 /Y3 /Y4/G /Y5 /Y6 /Y7ATitleSize Number Revision五、软件设计本设计通过软件编程,实现模/ 数转换器0809 分别对IN0 0-5V 直流电压的采样, 和经0832 线性控制后输出电压的IN1 采样,IN0 的值转换成十进制后, 在七段数码管上显示;IN1 的值在显示器上显示。
CPU根据IN0 的值,使八位发光二极管根据题目的要求,指示相应的范围。
1、设计思想数据采集系统分成四个功能模块,分别是主程序模块、量纲转换模块、数码管显示模块、中断服务子程序模块。
(1) 主程序模块根据题目要求,采用中断方式实现数据采集, 因此可把读取IN0 的值并保存, 和此数字量经线性控制后送给0832 输出, 作为0809 IN1 的模拟电压和IN1 的启动、读取以及IN0的BCD码转换, 放在中断服务子程序模块中完成。
所以,在主程序模块上主要实现启动0809 IN0、显示模块的调用、和中断结束部分程序。
(2) 键盘扫描模块设置键盘扫描模块,采用行列反转发,先PC4-PC7输出低电平,然后读入PC0-PC3.再让PC0-PC3输出低电平,读入PC4-PC7.合并扫描值,获得按键值。
(3) 量纲转换模块量纲转换模块在中断服务程序内完成,只要将IN0 的数字量分别除以51, 商存入显示IN0 的个位存储单元; 余数乘以十,再除以51, 商存入十分位存储单元; 余数再乘以十,除以51, 若余数大于25,则商加1, 小于25 则舍去, 这样就达到四舍五入的精度, 再把商存入百分位存储单元; 以供七段数码管显示时调用,BCD码转换模块可参考图10 所示的流程图。
(4) 数码管显示模块数码管显示模块比较简单,自编程序可参考实验指导书图1-6 所示的流程图,也可参考实验8255 并行口中的显示模块,应注意的是在显示个位时, 要加上小数点的显示,这可以在查表获取个位段码后,再加上80H来实现, 注意每一位显示后要适当延迟时间。
(5) 中断服务子程序模块考虑到0832 的输出是0809 IN1 的输入,因此,为防止在执行中断服务子程序时,二次进入中断服务子程序, 故在进入中断服务子程序后,应关闭中断,而在退出中断前开中断,以便下次中断进入。
中断服务子程序模块主要完成对IN0 数据的读取和保存,对IN1 的启动和读取,对IN0 数据的BCD 转换等任务。
1、程序流程图数据采集三主程序流程图如图4-3-2 所示; 中断服务子程序如图4-3-3 所示。
数码管显示子程序流程图如图3-4-7 所示,键盘扫描流程图如图4-3-4 所示。
初始化显示提示信息关中断保存原中断向量表内容设置新的中断向量表保存原中断屏蔽寄存器值允许IRQ2 中断8254 初始化开中断启动0809 IN0FLAG=0FFHIN0 值量纲转换后送显存调用数码管显示子程序将IN1 的值进行ASCII 码转换显示器显示IN1 的值N有键按下吗?Y恢复原中断屏蔽寄存器值恢复原中断向量表内容结束图4-3-2 数据采集三主程序流程图保护现场; 关中断YNFLAG=01H ?读IN0 值, 保存读IN1 值, 保存IN0 值按要求变换后,送0832 输出启动IN1FLAG=0发中断结束命令恢复现场; 开中断返回主程序图4-3-3 中断服务子程序流程图列值为0,读行值,屏蔽高四位后保存行值为0,读列值,屏蔽低四位后保存AL= 合并行列后取反AL=0 ?YSI=键盘扫描码首址,CX=16 ,DL=0NAL=[SI] ?N Y DL+1,SI+1键值=DLCX-1键值缓冲区移位N NCX=0 ?返回图4-3-4 键盘扫描程序流程图六、试验所遇问题及解决方法问题:在转动电位器,始终没有反应,电路也检查多遍。
分析:电路连接可能存在不稳定性,也有可能是机器有些损坏啥的。
解决方法:换了个微机实验机器,然后把线路很稳定的连接,转动电位器终于出现正确的反应。
七、心得体会及建议体会:通过这次微机原理的课程设计,实验制作,让我了解了设计电路的程序,也让我了解了关于数据采集系统三(中断法)的原理和设计理念,加强了自身动手、思考和解决问题的能力。
在此次的数据采集设计过程中,我更进一步的熟悉了机箱的结构及掌握了各芯片的工作原理和其具体的使用方法,巩固和加强了课本知识。
认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。
通过课程设计,我真正领悟到了“苦中作乐”这词的真正含义,设计连接电路确实有些辛苦,但是还是很有乐趣的,当一个一个的问题被自己发现,然后自己一步一步的按照实验原理去解决问题,知道最后完全解决问题之后,一种难以言明的喜悦心情和成就感瞬间充斥整个大脑和身体,我想这也算是课程设计的乐趣所在了。
通过这次课程设计我还知道了,理论与实际相结合是和重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来才能更好的提高我们的能力,更好更全面地发展我们的各项能力,可以说,这次课程设计,我受益匪浅。
建议:1.希望老师们能在上课期间增加必要的试验箱器件知识,同时在课外增加一些汇编语言在生活中应用的相关知识介绍,帮助学生提高工程意识,在后期学习当中有一种将知识运用于实践的思想。
2.希望老师可以提前布置和安排微机原理课设的任务,老师们也知道,一方面;我们也可以多多准备一下,另一方面,随着期末考试的紧逼,后续课程的复习也是大家要付出很多时间的。
以上两点建议希望老师们能接纳,先谢谢老师了。
八、源程序;************* 回车宏定义*********CRLF MACROMOV DL, 0DHMOV AH,02HINT 21H ; 宏定义了回车ENDM;********* 端口地址定义***********Y0 EQU 3000H ; 片选Y0 对应的端口始地址,0809,0832Y2 EQU 3040H ; 片选Y2 对应的端口始地址IN1 EQU Y0+01H*4ADCS EQU Y0 ;AD0809 的端口地址DACS EQU Y2 ;DAC0832 的端口地址Y3 EQU 3060HTIMER0 EQU Y3+00H*4 ;8254计数器0端口地址,8254TIMER1 EQU Y3+01H*4 ;8254计数器1端口地址TIMER2 EQU Y3+02H*4 ;8254计数器2端口地址TCTL EQU Y3+03H*4 ;8254 控制寄存器端口地址Y1 EQU 3020H ; 片选Y1 对应的端口始地址,8255PA55 EQU Y1+00H*4 ;8255 的A 口地址PB55 EQU Y1+01H*4 ;8255的B 口地址PC55 EQU Y1+02H*4 ;8255的C 口地址PCTL EQU Y1+03H*4 ;8255 的控制寄存器地址INTR_IVADD EQU 01C8H ;INTR对应的中断矢量地址,8259INTR_OCW1 EQU 0A1H ;INTR 对应PC机内部8259的OCW1地址INTR_OCW2 EQU 0A0H ;INTR 对应PC机内部8259的OCW2地址INTR_IM EQU 0FBH ;INTR对应的中断屏蔽字Y7 EQU 30E0H ;片选Y7 对应的端口始地址MY8259_ICW1 EQU Y7+00H ;实验系统中8259的ICW1端口地址MY8259_ICW2 EQU Y7+04H ;实验系统中8259的ICW2端口地址MY8259_ICW3 EQU Y7+04H ;实验系统中8259的ICW3端口地址MY8259_ICW4 EQU Y7+04H ;实验系统中8259的ICW4端口地址MY8259_OCW1EQU Y7+04H;实验系统中8259的OCW1端口地址MY8259_OCW2EQU Y7+00H;实验系统中8259的OCW2端口地址MY8259_OCW3EQU Y7+00H;实验系统中8259的OCW3端口地址;********************************* 堆栈段定义****************************************STACK1 SEGMENT S A T C KDW 256 DUP(?)STACK1 ENDS;********* 堆栈段定义*****************************************************************D A TA SEGMENTDCTBL DB 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh数,6F码h管的; 段码表DB 77h,7Ch,39h,5Eh,79h,71h,00HN DB 2IN0IN DB ?IN1OUT DB ?A3 DB ?B DB 3 DUP(?)D1 DB 0AHE1 DB 33HFLAG DB ?MES4 DB 0DH,0AH+,'+++++ WELCOMETO WEI J Y I UAN LI KE SHE: +++++,0+D'H,0AH,$''MES0 DB 0DH,0AH*,'******* DA T A COLECTION SYSTEM ********,'0DH,0AH$,''MES1 DB 0DH,0AH-,'----------- ZUO ZHE :LIU J I A N N G D WANG ZHI MI N G,0'DH,0AH,$''MESS DB 0DH, P'RESS ANYKEY T O ENDTHE SYSTEM,!0'DH,0AH,0DH, 0AH$','MES2 DB 0DH, 'IN1OUT D A TA : $',0DH,$''CS_BAK DW ? ;保存INTR原中断处理程序入口段地址的变量IP_BAK DW ? ;保存INTR原中断处理程序入口偏移地址的变量IM_BAK DB ? ;保存INTR原中断屏蔽字的变量D A TA ENDS;********* 代码段定义***********CODE SEGMENTASSUME CS:CODE,SS:ASCTK1,DS:DATASTART: MOV AX, D A TAMOV DS, AXMOV AL, 10000000B ;8255初始MOV DX, PCTLOUT DX, ALMOV DX, OFFSETMES4MOV AH, 9 ; 显示MES4INT 21HMOV DX, OFFSETMES0MOV AH, 9 ; 显示MES0INT 21HMOV DX, OFFSETMES1MOV AH, 9 ; 显示MES1INT 21HMOV DX, OFFSETMESSMOV AH, 9 ; 显示MESSINT 21HCLI ; 8259 初始MOV AX, 0000HMOV ES, AX ; 替换INTR的中断矢量MOV DI, INTR_IVADD ; 保存INTR原中断处理程序入口偏移地址MOV AX, ES:[DI]MOV IP_BAK,AXMOV AX, OFFSETMYISR ;设置当前中断处理程序入口偏移地址MOV ES:[DI],AXADD DI, 2MOV AX, ES:[DI] ; 保存INTR原中断处理程序入口段地址MOV CS_BAK,AXMOV AX, SEG MYISR ;设置当前中断处理程序入口段地址MOV ES:[DI],AXMOV DX, INTR_OCW1 ;设置中断屏蔽寄存器,打开INTR的屏蔽位IN AL, DX ; 保存INTR原中断屏蔽字MOV IM_BAK,ALAND AL, INTR_IM ; 允许PC机内部8259的IR2中断OUT DX, ALMOV DX, MY8259_ICW1; 初始化实验系统中8259的ICW1 MOV AL, 13H ; 边沿触发、单片8259、需要ICW4 OUT DX, ALMOV DX, MY8259_ICW2MOV AL, 08H ; 初始化实验系统中8259的ICW2 OUT DX, ALMOV DX, MY8259_ICW4 ; 初始化实验系统中8259的ICW4 MOV AL, 01H ; 非自动结束EOIOUT DX, ALMOV DX,MY8259_OCW3MOV AL, 0AHOUT DX, A LMOV DX, MY8259_OCW1 ; 初始化实验系统中8259的OCW1MOV AL, 0FCH ; 打开IR0的屏蔽位OUT DX, ALMOV DX, TCTL ;8254 初始MOV AL, 17HOUT DX, A LMOV DX, TIMER0;MOV AL,2OUT DX,ALSTIS33:MOV AL, 0MOV DX, ADCS ;启动0809 IN0OUT DX, ALMOV FLAG ,0FFHCALL DISPINT0MOV DX, OFFSET M ES2MOV AH, 9 ; 显示MES2INT 21HMOV AL,IN1OUTCALL DISPINT1MOV DL,0FFHMOV AH,6INT 21HJZ S33QUIT: CLIMOV AX, 0000H ;恢复INTR原中断矢量MOV ES, AXMOV DI, INTR_IVADD ; 恢复INTR原中断处理程序入口偏移地址MOV AX, IP_BAKMOV ES:[DI],AXADD DI, 2MOV AX, CS_BAK ;恢复INTR原中断处理程序入口段地址MOV ES:[DI],AXMOV DX, INTR_OCW1MOV AL, IM_BAK ; 恢复INTR原中断屏蔽寄存器的屏蔽字OUT DX, ALSTIEXIT: MOV AH, 4CH ;返回到DOSINT 21H;*********************** 数码管显示INT1****************************DISPINT1 PROCPUSH AXMOV BL,AL ; 屏幕显示AND AL, 0F0HMOV CL, 4 ; 显示高位ROR AL, CLCALL CRT1MOV AL, BLAND AL, 0FH ; 显示低位CALL CRT1CRLFPOP AXRETDISPINT1 ENDPCRT1 PROCADD AL, 30HCMP AL, 39HJBE D0ADD AL, 7 ; 在屏幕上显示一位16进制字符D0: MOV DL, ALMOV AH, 2INT 21HRETCRT1 ENDP;*********************** 数码管显示INT0****************************DISPINT0 PROCPUSH DSPUSH AXMOV AL,IN0IN ; 转换IN0个位十分位百分位MOV AH,0DIV E1MOV SI,OFFSET BMOV [SI],ALMOV AL,AHMOV AH,0MUL D1DIV E1INC SIMOV [SI],ALMOV AL,AHMOV AH,0MUL D1DIV E1INC SICMP AH,19HJNBE S1 1MOV AL,0JMP S2S11: INC ALS2: MOV [SI],ALMOV CL, 8 ; 从最左边开始显示MOV SI, OFFSETBMOV AL, [SI]LEA BX, DCTBLXLA T ; 输出段码ADD AL,80HMOV DX, PB55OUT DX, ALMOV DX, PA55MOV AL, CL ; 输出位码OUT DX, ALCALL DELAYINC SI ; 段码地址+1ROL CL, 1 ; 位码向左移1 位MOV AL, [SI]LEA BX, DCTBLXLA TMOV DX, PB55OUT DX, ALMOV DX, PA55MOV AL, CL ; 输出位码OUT DX, ALCALL DELAYINC SI ; 段码地址+1ROL CL, 1 ; 位码向左移1 位MOV AL, [SI]LEA BX, DCTBLXLA TMOV DX, PB55OUT DX, ALMOV DX, PA55MOV AL, CL ; 输出位码OUT DX, ALCALL DELAY ; 输出三位码MOV SI, OFFSETBMOV A L,[SI]CMP AL,2JB A2MOV DX, PC55MOV AL, 0FFHOUT DX, ALJMP G3A2:MOV DX, PC55MOV AL, 00HOUT DX, ALMOV DX, TCTL ;8254计数器1 控制蜂鸣器MOV AL, 77HOUT DX, ALMOV DX, TIMER1;MOV AL,00OUT DX,ALMOV AL,01OUT DX,ALG3: POP AXPOP DSRETDISPINT0ENDPMYISR PROC NEAR ; 中断处理程序MYISR PUSH AXPUSH DXCLI ; 关中断MOV DX,MY8259_OCW3IN AL,DXAND AL,03HCMP AL,01HJE IROISRJMP OVERIROISR:CMP FLAG ,0FFHJE SMOV DX,IN1IN AL,DXMOV IN1OUT ,AL ; A2 为IN1AD 后的值JMP OVERS: MOV DX,ADCSIN AL, DXMOV IN0IN, AL ; A1 为IN0MOV AH,0DIV N ; IN0 AD 后线性转换给0832的值NEG ALADD AL,80HMOV BL,ALCMP BL,40HJB SS1SUB BL,4SS1: MOV AL,BLMOV A3,ALMOV DX,DACSOUT DX,ALMOV DX,IN1 ; 启动IN1OUT DX,ALMOV AL,0MOV FLAG ,ALOVER: MOV DX,INTR_OCW2 ; 向PC机内部8259发送中断结束命令MOV AL, 20HOUT DX, ALMOV AL, 20HOUT 20H, ALSTIPOP DXPOP AXIRETMYISR ENDPDELAY PROC NEAR ; 延时PUSH CXMOV CX, 0FFFFHLOOP $POP CXRETDELAY ENDPCODE ENDSEND ST ART。