微机原理及应用温度显示课程设计报告

时间:2024.3.19

1 设计思路

1.1   设计原理

本次课程设计的内容为模拟热水器温度控制系统设计与实现。利用AD0809芯片将模拟量的温度转换为数字量,然后将AD采样到的结果进行制式的转换并将结果显示在数码管上。采样的结果与设定的温度限值进行比较,若超温了则让超温指示灯亮。根据需要,需选择的芯片有AD0809 A/D变换芯片,8255可编程并行接口。

通过应用模数转换器ADC0809将从模拟电阻上采集的数据通过端口IN0输入,在A/D的转换下,获得8位二进制的数字量(D7—D0),然后输入到8088系统总线上,进而输入到可编程并行接口8255上,选择工作方式0方式,把数据输入到七段数码管上,然后显示出数字信息。同时应用比较程序,设定温度值。

如果在小于30值时则使8255C输出00FH值信号让显示灯始终,显示绿色,表示温度过低。

如果温度超过100值则使8255C口输出0F0H值信号让显示灯提示,显示红色灯,表示温度过高。

如果温度在30至100以内则使8255C口无输出信号让显示灯熄灭,表示温度在正常范围内。

1.2 设计环境及设备

PC机一台、windows 98系统、实验箱,导线若干。

8255并口:用做接口芯片,与数码管相连。

ADC0809:用于将模拟量转化为数字量。

数码管:三个LED用于分别显示百十个位的温度值。

LED:用作警报灯,大体表示是否当前值在安全范围内。

1.3 设计框图

图1.1 设计系统框图

2 设计流程图

2.1 主程序流程图

图2.1 主程序流程图

2.2 主要程序流程图

图2.2 分离并显示百十个位程序流程图

3 设计所用芯片

3.1 8086简介

由于此系统最终要在西安唐都科教仪器出品的32位微机教学实验系统TD-PITE/PITC上进行实验,故设计硬件配置时采用Intel8086,整个实验的硬件配置都以此为原则进行设计选用。Intel8086是16位的微处理器(理论学习中为8088,其内部总线为16位,外部总线为8位,故称为准16位微处理器),它采用HMOS工艺40条引脚封装。8086工作时使用5V电源,时钟频率5MHz(8086-1为10MHz,8086-2为8MHz)它有20根地址线,故可寻址的内存空间为1MB。

3.1.1 8086主要特性

Intel8086/8088CPU是Intel公司推出的高性能的微处理器,具体如下主要特性:

(1) 8086CPU数据总线为16位,8088CUP数据总线为8位。

(2) 地址总线都是20位,低16位用于数据总线复用,可直接寻址为1MB的存储空间。

(3) 有16位的端口地址,可以寻址64KB的I/O端口。

(4) 有99条基本指令,指令功能强大。

(5) 有9种基本寻址方式。

(6) 可以处理内部和外部中断,外部中断源多达256个。

(7) 兼容性好,与80*86,8085在源程序一级兼容。

(8) 8086/8088标准主频为5MHz,8086/8088-2主频为8MH。

(9)支持单处理器或多处理器系统工作。

3.1.2 8086CPU寄存器结构

8086CPU中有14个16位的寄存器,其中有4个16位的通用寄存器,2个16位指针寄存器,2个16位变址寄存器,1个16位指令指针及1个16位标志寄存器。

通用寄存器包括累加器AX,基址寄存器BX,计数寄存器CX,数据寄存器DX四个寄存器,位于CPU的EU中,每个数据寄存器可存放16位操作数,也可拆成两个8位寄存器,用来存放8位操作数。

指针和变址寄存器包括:堆栈指针SP、基址指针BP、源变址寄存器SI、和目的变址寄存器DI四个16位寄存器,可以来存放数据和地址。段寄存器包括:代码段寄存器CS,数据段寄存器DS,附加段寄存器ES,堆栈段寄存器SS。

3.2 8255简介

8255 可编程外围接口芯片是 Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU 和接口之间 的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。用+5V 单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。8255的内部结构及引脚如图6-4所示:

 

图3.1 8255内部结构及引脚

具体的各引脚功能如下:

D0~D7为双向数据信号线,用来传送数据和控制字。

RD为读信号线,与其它信号线一起实现对8255接口的读操作通常接系统总线的IOR信号。

WR为写信号线,与其它信号一起实现对8255的写操作,通常接系统总线的IOW。

CS为片选信号线,当它为低电平(有效)时,才能选中该8255芯片,也才能对8255进行操作。

A0,A1为口地址选择信号线。8255内部有3个口;A口,B口,C 口,还有一个控制寄存器,它们可由程序寻址。A0,A1上的不同编码可分别寻址上述3个口和一个控制寄存器,具体规定如下:

表3.1 8255的寻址方式

通常 A0,A1分别接系统总线A0和 A1,它们与CS一起来决定8255的接口地址。

RESET为复位输入信号。此端上的高电平可使8255复位。复位后,8255的A口,B口,C 口均被定为输入状态。

PA0~PA7为A口的8条输入输出信号线。

PB0~PB7为B口的8条输入输出信号线。

PC0~PC78条线根据其工作方式可作为数据的输入或输出线,也可以用作控制信号的输出或状态信号的输入线。

8255 可编程外围接口芯片是 InTEL 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU 和接口之间 的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。用+5V 单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。

8255 工作方式控制字和C口按位置位/复位控制字格式如图3.2所示:

图3.2 置位/复位控制字格式

8255的寻址:8255占外设编址的4个地址,即A口,B口,C口和控制寄存器各占一个外设接口地址。对同一个地址分别可以进行读写操作。例如,读A口可将A口的数据读出;写A口可将CPU的数据写入A口并输出

表 3.2  在方式0下,8255的16种输入输出组合

3.3 ADC0809主要功能

ADC0809具有8个通道的模拟输入线(IN0~IN7),可在程序控制下对任意通道进行A/D转换,获得8位二进制数字量(D7~D0)。模拟输入部分有8路多路开关,可由3位地址输入ADDA、ADDB、ADDC的不同组合来选择,ALE为地址锁存信号,高电平有效,锁存这三条地址输入信号。主体部分是采用逐次逼近式的A/D转换电路,由CLK控制的内部电路的工作,START为启动命令,高电平有效,启动ADC0809内部的A/D转换,当转换完成,输出信号EOC有效,OE为输出允许信号,高电平有效,打开输出三态缓冲器,把转换后的结果送DB。ADC0809的内部结构和引脚如图3.3所示:

图3.3 内部结构和引脚

ADC0809的一个显著特点是,其芯片内部集成了一个8选1的模拟门,且利用ADDA~ADDC 三个信号的编码来选择相应的模拟输入。由于ADC0809输出数字信号是经由OE控制的三态门完成的,故ADC0809可以直接与系统总线连接,占用8个接口地址。它也可以像AD574那样经可编程并行接口8255与总线连接。工作过程:

1、当模拟量送至某一输入通道INi后,CPU将标识该通道编码的三位地址信号经数据线或地址线输入到ADDC、ADDB、ADDA引脚上。

2、地址锁存允许ALE锁存这三位地址信号,启动命令START启动A/D转换。

3、转换开始,EOC变低电平,转换结束,EOC变为高电平。EOC可作为中断请求信号。转换结束后,可通过执行IN指令,设法在输出允许OE脚上形成一个正脉冲,打开三态缓冲器把转换的结果输入到DB,一次A/D转换便完成了。

3.4 七段LED显示器及其接口

 

七段LED显示器:由七个发光段构成,每段均为1个LED二极管。通过控制不同段的点亮和熄灭,显示出16进制数字或字符。
 七段LED显示器有共阳极和共阴极两种结构,如图6-3所示的七段LED实际上包含8个LED(7段字形加上小数点DP)。
  1位LED显示器有1根位选线和8根段选线,段选线控制字符的选择,位选线控制显示位的亮和暗。

 

图3.4七段LED显示器



4 模拟热水器温控系统硬件接线图

图4.1 模拟热水器硬件接线图

5 源程序清单及注释

MY8255_A      EQU  0600H

MY8255_B      EQU  0602H

MY8255_C      EQU  0604H

MY8255_CON    EQU  0606H

SSTACK SEGMENT STACK

         DW 16 DUP(?)

SSTACK  ENDS     

DATA   SEGMENT

DTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H

         DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H

VALUE   DB ?

DATA   ENDS

CODE    SEGMENT

       ASSUME CS:CODE,DS:DATA,SS:SSTACK

START: 

        MOV AX,DATA           ;初始化数据段

         MOV DS,AX

         MOV AL,80H            ;确定A,B端口输出

         MOV DX,MY8255_CON     ;初始化8255

         OUT DX,AL

       

LP:     MOV DX, 640H          ;ADC0809采集数据

         OUT DX, AL

         CALL ADDLY            ;调用ADDLY函数

         IN  AL, DX          

         MOV VALUE, AL

         MOV SI,1000           ;

         MOV AH,00H

         MOV BL,100            ;分离百位数

         DIV BL                ;数字量除以100

         MOV [SI],AL           ;获得百位数

         

         MOV AL,AH

         MOV AH,00H

         MOV BL,10               ;分离十位数

         DIV BL                  ;得到的余数除以十

         MOV [SI+1],AL           ;获得十位数

         MOV [SI+2],AH           ;获得个位数

        MOV BX,OFFSET DTABLE    ;显示部分

        MOV DI,0000H

        MOV AL,[SI]            ;百位数的显示

        AND AX,00FFH

        ADD BX,AX               ;百位数在16位键盘上偏移

         MOV AL,[BX]

         MOV DX,MY8255_A

         OUT DX,AL

         MOV AL,0FBH

         MOV DX,MY8255_B

         OUT DX,AL

         CALL DISPDLY

        MOV BX,OFFSET DTABLE       

         MOV AL,[SI+1]        ;十位数的显示

         AND AX,00FFH

        ADD BX,AX               

         MOV AL,[BX]

        MOV DX,MY8255_A

         OUT DX,AL

         MOV AL,0FDH

         MOV DX,MY8255_B

         OUT DX,AL

         CALL DISPDLY

       

         MOV BX,OFFSET DTABLE

        MOV AL,[SI+2]        ;个位数的显示

        AND AX,00FFH

        ADD BX,AX

         MOV AL,[BX]

         MOV DX,MY8255_A

         OUT DX,AL

         MOV AL,0FEH

         MOV DX,MY8255_B

         OUT DX,AL

         CALL DISPDLY

        MOV AL,value       ;报警部分

        CMP AL,64H         ;设定高温为100℃

        JNC A5             ;启动子程序A5,LED红灯亮

        MOV  BX,00h

        MOV AX,BX

        MOV DX,MY8255_C

        OUT  DX,AX

        MOV AL,VALUE

        CMP AL,1Eh          ;设定低温为30℃

        JL B1              ;启动子程序B1,LED绿灯亮

        JMP LP

A5:     MOV DX,MY8255_C   ;大于100度报警

        MOV BX,0Fh       ;设定LED亮灯地址

        MOV AX,BX

       OUT DX,AX

       JMP LP

B1:    MOV DX,MY8255_C  ;小于30度报警

       MOV BX,0F0h

       MOV AX,BX

       OUT DX,AX

       JMP LP    

ADDLY: PUSH CX       ;延迟部分

         PUSH AX

         MOV CX, 050H

A6:     MOV AX, 050H

A7:     DEC AX          ;AX自减一

         JNZ A7

         LOOP A6

         POP AX

         POP CX

         RET

DISPDLY:  PUSH CX

        MOV CX,000AH

T1:     MOV AX,00FFH

T2:     DEC AX

         JNZ T2

         LOOP T1

         POP CX

         RET

CODE    ENDS

END     START

总 结

               

课程设计是培养学生动手和动脑能力的一种重要方式。在设计中发现,提出,分析和解决实际问题,也是对学生对所学的书本知识的一种检验,以及对实际工作能力的具体训练和考察过程。在当今社会,计算机已变得无处不在,能够熟练地运用计算机将是为自己将来的工作加重了一个不可限量的砝码,因此作为新世纪的大学来说掌握计算机技术将是十分重要的。

回顾这一周的课程设计,我感慨颇多,从拿到题目到完成整个编程,从理论到实践,在一周的时间里,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。在设计过程中,我曾经遇到过很大的困难,不得不认真查找问题的所在,但经过多次地调试与运行后终于成功地解决了问题。这次课程设计的成果要感谢老师悉心的指导和同学们的帮助,我们每个人都尽心尽力完成自己的任务,遇到不懂的问题及时讨论,最终都能将自己不懂的问题搞懂,每个人都得到了不同程度的提高。通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。在设计的过程中还发现了自己的不足之处,那就是对一些学过的知识理解得不够深刻,掌握得不够牢固。在我的课设题目中要求做到将30-80℃分成8个档在LED上显示,但是因为我本人的知识还不够丰富,能力还不够强,我只能做到当温度超出额定值时发出警报。而这美中不足更让我对微机原理这门课有了更深的求知欲。

通过这一周的课程设计使我更加明确了日后的学习目标,那就是学东西一定要扎实,绝不能一知半解。这次课程设计使我受益匪浅,它所教会我的东西必将积极地影响我今后的学习。

致 谢

这一周的课程设计在忙碌中结束了,在这一周我要感谢我的指导老师曲老师和踪老师,因为两位老师的谆谆教导和答疑解惑,我才能顺利的完成这次设计。设计中遇到的各种疑难问题老师都对我进行了一一解答,通过老师的讲解我更深刻的了解了所学的知识,使我能更好的了解微机原理课程设计的步骤与方法,最终完成此次课程设计。

同时我还要感谢我们本组的同学,在设计中她也给了我还大的帮助。在我的设计出现问题时,她会及时的指出我的问题所在,并且在一起讨论最后找出解决方法;同时我们还一起讨论问题,互相交流心得,完成最后目标。

再次对给过我帮助的所有老师和同学们再次给予最由衷的感谢!

参考文献

[1] 王慧中. 微机原理及其应用. 武汉:武汉大学出版社,2011

[2] 邹逢兴. 微型计算机原理与接口技术实验指导. 北京:清华大学出版社,2009

[3] 赵全利,吕建平,邹雪艳. 微型计算机原理及接口技术. 北京:机械工业出版社,2009

[4] 何宏. 微型计算机原理与接口技术. 陕西:西安电子科技大学出版社,2009


目 录

摘要……………………..…………………………………………………………………………I

1 设计思路..................................................................................................................................... 1

1.1 设计原理........................................................................................................................... 1

1.2 设计环境及设备............................................................................................................... 1

1.3 设计框图........................................................................................................................... 2

2 设计流程图................................................................................................................................. 3

2.1 主程序流程图................................................................................................................... 3

2.2 主要程序流程图............................................................................................................... 4

3 设计所用芯片............................................................................................................................. 5

3.1 8086简介........................................................................................................................... 5

3.1.1 8086主要特性......................................................................................................... 5

3.1.2 8086CPU寄存器结构............................................................................................. 5

3.2 8255简介........................................................................................................................... 6

3.3 ADC0809主要功能.......................................................................................................... 8

3.4 七段LED显示器及其接口............................................................................................. 9

4 模拟热水器温控系统硬件接线图........................................................................................... 11

5 源程序清单及注释................................................................................................................... 12

总 结............................................................................................................................................. 16

致 谢............................................................................................................................................. 17

参考文献....................................................................................................................................... 18

更多相关推荐:
微机原理课程设计报告

微机原理课程设计设计报告姓名朱文斋班级学号30905020xx教师张荣标20xx年1月5日微机原理课程设计一目的结合微型计算机原理课程的学习进一步巩固已学的知识同时针对计算机原理知识的具体应用学会对系统中DOS...

微机原理课程设计实验报告

河北科技大学课程设计报告学生姓名学号专业班级课程名称学年学期指导教师年月课程设计成绩评定表目录一课程设计的目的1二设计题目1三设计内容要求2四设计成员及分工2五课程设计的主要步骤2六课程设计原理及方案3七实现方...

数字钟_接口课设报告_8086微机原理与接口技术课程设计

接口技术基础实验报告学院计算机科学与技术学院班级计091学号09130220xx姓名曹恒楼指导老师顾晖时间20xx616接口技术课程设计目录数字钟的设计31设计需求分析与解决方案311设计需求分析3111题目要...

微机原理课程设计报告

微机原理课程设计报告设计名称:LED七段数码管数字钟学院:电子信息学院班级:电科091提交时间:20##年6月15日一:设计内容设计的电路功能是实现时钟的24进制计时并显示在数码管上,通过按键可对时钟的时、分、…

微机原理课程设计总结

南京航空航天大学微机原理课程设计数据采集系统中断法微机原理课程设计数据采集系统中断法南京航空航天大学微机原理课程设计数据采集系统中断法一课设目的进一步掌握微机原理知识了解微机在实时采集数据的应用学习掌握编程和程...

微机原理课程设计报告

课程设计报告纸数据采集系统三中断法一实验目的进一步掌握微机原理知识了解微机在实时采集过程中的应用学习掌握编程和程序调试方法二实验内容1用中断法将ADC0809通道0外接05V电压转换成数字量后在七段LED数码管...

微机原理课程设计报告(电子时钟)

微机原理课程设计报告1设计目的培养和锻炼在学习完本门课后综合应用所学理论知识解决实际工程设计和应用问题的能力通过课程设计要求熟悉和掌握微机系统的软件硬件设计的方法设计步骤得到微机开发应用方面的初步训练掌握825...

微机原理课程设计报告

沈阳工程学院课程设计课程设计题目简单电子钟设计系别信息工程系班级学生姓名学号指导教师职称起止日期20xx年11月20日起至20xx年11月25日止沈阳工程学院课程设计任务书课程设计题目简单电子钟设计系别信息工程...

微机原理课程设计报告-数字时钟的实现(附代码)

合肥工业大学计算机与信息学院课程设计课程微机原理与接口技术设计专业班级计算机科学与技术x班学号姓名一设计题目及要求课题6数字时钟1通过8253定时器作产生秒脉冲定时中断在中断服务程序中实现秒分小时的进位24小时...

江苏大学微机原理课程设计报告

微机原理课程设计一课程设计目的结合微型计算机原理课程的学习进一步巩固已学的知识同时针对微型计算机原理知识的具体应用学会对系统中DOS和BIOS的使用学会使用全屏幕编辑程序PE弄懂汇编程序的上机过程以及如何运用D...

微机原理课程设计报告

并行接口芯片8255A的应用键盘与数码管一设计内容8255A是通用的可编程并行接口芯片可以直接与8066CPU连接使用在微机系统中应用较为广泛它有三个并行输入输出端口可通过编程为端口设置多种工作方式以及规定端口...

微机原理课程设计报告(电子秒表)

微机原理课程设计报告电子与控制工程学院计算机原理与接口技术课程设计姓名高强强学号320xx00232专业建筑设施智能技术设计题目可任意启动停止的电子秒表指导老师傅攀峰目录微机原理课程设计报告1电子秒表课程设计要...

微机原理课程设计报告(35篇)