微机原理课设.docx
- 文档编号:18609058
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:29
- 大小:229.88KB
微机原理课设.docx
《微机原理课设.docx》由会员分享,可在线阅读,更多相关《微机原理课设.docx(29页珍藏版)》请在冰点文库上搜索。
微机原理课设
1设计任务描述
1.1课程题目
本课程设计题目是:
模拟投票系统,利用微机原理实验箱,采用LED显示器显示得票数。
1.2设计目的
通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。
通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。
为以后学生结合专业从事微机应用设计奠定基础。
1.3设计的原始资料及依据
查阅可编程并行芯片8255、LED发光二级管等其他相关资料。
用简单的输入输出端口等硬件,结合实际投票过程进行模拟设计。
1.4设计的主要内容及要求
内容:
利用微机原理实验箱,采用LED显示器显示得票数。
要求:
(1)向上拨动开关表示“支持”,向下拨动开关表示“反对”
(2)统计的票数显示在LED显示器上,不读票时LED数码管呈现霓虹灯状态。
2设计原理
2.1设计原理
我们在这次课设选择了模拟投票系统设计,模拟投票系统可以实现现场模拟投票并对票数进行统计。
对于投票的判断以及投票数目的统计我们可以利用可编程并行接口8255A芯片和LED显示器来实现的,以此来达到实验的总体要求。
模拟投票系统利用8255A芯片,PA口作为输入口,在LED显示器侧,利用PB口作为整个显示器的段选,PC口作为整个显示器的位选口,以此来达到在LED显示器上显示出总的投票数目,以及判断是否为“同意”,我通过8255的B口显示LED灯,A口读取开关状态,K0,K1,K2,K3,K4,K5,K6,K7,K8开关向上拨动,表示同意,LED显示器上的数目加1,可以最高达到8人投票。
在进行票数计算与统计的过程中,才有了左移检测,以此作为统计与判断票数的方法,当开关K0向上拨动而其他开关没有向上拨动时,程序判断K0为1,其余开关为0,则在LED显示屏上显示1;当K0和K1向上波动时,程序首先判断K0为1,在显示器上显示1,然后程序左移检测,检测出K1也为1,则向显示器输入1,总计为2,LED显示屏上显示数字即为2。
为了使程序设计更加美观,我对LED显示器上的显示进行了小小的改动,由4号显示屏显示投票数目,1、2、3号显示屏显示投票小组FDB——发电本,来表示我们班级,使投票的人员及组别能明确显示在LED的显示器上,使整个模拟投票系统能更加明了,易懂。
2.2设计环境及设备
PC机一台、windows98系统、实验箱,导线若干。
8255并口:
用做接口芯片,与数码管相连
LED显示器
2.3硬件接线图
硬件接线图如图2.1所示
XD0
XD1
XD2系
XD3统
XD4总
XD5线
XD6
XD7
IOW#
IOR#
IOY3IOY1
XA1
XA2
Clk
+5V
D0PB0
D1PB1
D28
D32
D45
D55
D6芯
D7片
WR
RDPA0
CSPA1
A0
A1PC0
PC1
图2.1硬件接线图
2.4设计流程图
软件流程图如图2.2所示。
图2.2软件流程图
3主要芯片介绍
3.18255介绍
8255A具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。
它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。
8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。
3.1.18255引脚
8255为可编程并行接口芯片,其引脚信号,如图2.3所示。
图2.38255A芯片
8255的引脚功能:
8255采用40条引脚的双列直插式(DIP)封装,其引脚信号有:
⑴PA0~PA7:
为A端口的8条输入/输出引脚。
A口外设双向数据线;
⑵PB0~PB7:
为B端口的8条输入/输出引脚。
B口外设双向数据线;
⑶PC0~PC7:
为C端口的8条输入/输出引脚。
C口外设双向数据线;
⑷D0~D7:
双向数据信号线,用来传送数据和控制字和系统数据总线相连与CPU侧连接的八条双向数据线;
⑸
:
为片选信号线,只有当其
有效时,读出信号
与写入信号
才对8255有效。
(低电平有效)——片选输入信号;
⑹
:
为写信号线,CPU通过OUT指令使其有效,与其他信号线一起实现对8255接口的写操作,将数据或状态信息从CPU中写入8255。
(低电平有效)——写输入信号;
⑺
:
为读出信号线,CPU通过IN指令使其有效,与其他信号线一起实现对8255接口的读操作,将数据或状态信息从8255中读到CPU。
(低电平有效)——读输入信号;
⑻A0,A1:
为端口选择信号线,8255内部有3个数据端口和1个控制端口,共4个端口。
片内寄存器选择输入信号;
3.1.28255外部引线
D0--D7:
双向数据信号线,用来传送数据和控制字。
RD:
为读信号线,与其他信号线一起实现对8255接口的读操作。
通常与系统总线IOR连接。
WR:
为写信号线,与其他信号线一起实现对8255接口的写操作。
通常与系统总线IOW连接。
:
为片选信号线,当它为低电平(有效)时,才能选中该8255芯片,也才能对8255进行操作。
A0,A1:
为地址选择信号线。
8255内部有3个口:
A口,B口,C口,还有一个控制寄存器,它们可由程序寻址。
A0,A1上的不同编码可分别寻址上述3个口和一个控制寄存器,具体规定如下:
A1
A0
选择
0
0
A口
0
1
B口
1
0
C口
1
1
控制寄存器
通常A0,A1分别接系统总线A0和A1,它们与CS一起来决定8255的接口地址。
PA0--PA7:
为口的8条输入输出信号线。
该口的8条线是工作与输入、输出还是双向方式可由软件编程来决定。
PB0~PB7为B口的8条输入输出信号线。
利用软件编程可指定这8条线是输入还是输出。
PC0~PC78条线根据其工作方式可作为数据的输入或输出线,也可以用作控制信号的输出或状态信号的输入线。
3.1.38255控制字
8255有两个控制字:
方式选择控制字和端口C按位置置位、复位控制字。
方式选择控制字的第七位总是1,而端口C按位置置位、复位控制字的第七位总是0,所以称第七位称为区分两个控制字的标识位。
1.工作方式选择控制字
2.C口按位置置位/复位控制字
图2.4方式选择控制字及端口C按位置置位、复位控制字
3.1.48255三种工作方式
8255可编程外围接口芯片是通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:
方式0-基本输入/出方式
方式1—选通输入/出方式
方式2—双向选通工作方式
方式0——基本输入/输出
在此工作方式下,每个口都作为基本的输入输出口,C口的高4位和低4位以及A口和B口都可独立地设置为输入口和输出口(如表1所示)。
在此工作方式下:
输出的数据被锁存,而输入的数据不被锁存。
方式0基本功能是基本输入/输出方式。
其功能如下:
①进行数据传送时不需要联络信号。
②任一设置成方式0的端口均可设置成输入或输出。
③输出具有锁存功能。
④输入没有锁存功能。
⑤每一个8位口和4位口均可设置成方式0。
如果所有的8位口和4位口都设置成方
端口是否具有锁存功能是需要注意的。
如果具有锁存功能,则8255A可作为CPU与外设之间数据传送的中转站。
这时,CPU与外设之间数据传送是异步的。
如果没有锁存功能,则8255A作为数据通道,仅起单向三态门的作用。
这时,CPU与外设之间数据传送是同步的。
序号
控制字
A口
(PA0---PA7)
C口
(PC4---PC7)
B口(PB0---PB7)
C口(PC0---PC3)
1
80H
入
入
入
入
2
81H
入
入
入
出
3
82H
入
入
出
入
4
83H
入
入
出
出
5
88H
入
出
入
入
6
89H
入
出
入
出
7
8AH
入
出
出
入
8
8BH
入
出
出
出
9
90H
出
入
入
入
10
91H
出
入
入
出
11
92H
出
入
出
入
12
93H
出
入
出
出
13
98H
出
出
入
入
14
99H
出
出
入
出
15
9AH
出
出
出
入
16
9BH
出
出
出
出
表18255在方式0下的输入输出组合
方式0的输出具有锁存功能,而输入没有锁存功能
方式1——选通输入/输出
在工作方式下,三个端口分为A、B两组,A、B两个口仍用作数据输入输出口,而C口分成两部分,分别作为A口和B口的联络信号。
在8255A中,联络信号是3位,两个数据口,共用去C口的6位,剩余的两位仍可作为数据位使用。
方式2——双向选通输入/输出
此工作方式只限于A组使用,它用A口的8位数据线,用C口的5位进行联络。
工作时输入输出都能被锁存。
当A口工作在方式2时,B口可以在方式0或方式1工作。
在模拟霓虹灯的设计中只用到了工作方式0,如表3.1所示。
工作方式0:
又称为基本工作方式。
在此方式下,可分别将A口的8条线,B口的8条线,C口高4位对应的4条线和C口的低四位对应的四条线定义为输入或输出。
故它们的输入输出共有16种不同的组合。
8255的数据线、片选信号线、地址线、读写控制线等分别与系统总线相连,其中A、B、C三个端口以排针形式引出,供实验使用。
并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。
3.1.58255内部结构
表2.58255A的内部结构
从图中可以看到,左边的信号与系统总线连接,而右边是与外设相连接的3个口。
3个口均为8为。
其中A口、B口输入、输出都有锁存能力。
C口输出有锁存能力,输入有锁存能力,在使用上要注意这一点。
为了控制方便,将8255的3个口分成A、B两组。
其中A组包括A口的8条线PA0~PA7和C口的高4位PC4~PC7。
B组包括B口的8条线PB0~PB7和C口的低4位PC0~PC3。
A组和B组分别由软件来加以控制。
3.1.68255A的端口地址
信号线
寄存器
编址
IOY3
A口
60H
B口
61H
C口
62H
控制寄存器
63H
3.1.78255A的基本使用方法
8255作为并行接口芯片,有3种工作方式:
方式0,方式1,方式2,方式0相当
于可作无条件输入/输出方式,方式1和方式2将PC口的一些线作为状态线使用,
相当于工作在查询方式或中断方式。
8255的PC口具有位控制功能,可以用指令将
某条线单独置1或清0,利用此功能也可串行接收或发送数据。
注意:
8255有2
条单元选的地址线,有4个端口地址,要能正确地完成与CPU的地址线、数据线、
控制线的连接
3.2LED数码管介绍
3.2.1LED数码管的组成
组成:
LED数码管由7段或8段发光二极管组成,在平面上排成8字型。
3.2.2LED数码管分类
分类:
有共阴极和共阳极两种。
显示原理:
使某些段点亮而另一些段不亮就可以显示0---9,A---F等字型。
使某段点亮必须具备2个条件:
① 共阴极管的公共端接地和共阳极管的公共端接电源。
② 共阴极管的控制端接电源和共阳极管的控制端接地。
3.2.3LED数码管详细介绍
LED数码管(LEDSegmentDisplays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。
LED数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。
位数有半位,1,2,3,4,5,6,8,10位等等....,LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。
图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。
颜色有红,绿,蓝,黄等几种。
LED数码管广泛用于仪表,时钟,车站,家电等场合。
选用时要注意产品尺寸颜色,功耗,亮度,波长等。
下面将介绍常用LED数码管内部引脚图。
3.2.4 LED数码管引脚
图1 这是一个7段两位带小数点 10引脚的LED数码管
图2 引脚定义
每一笔划都是对应一个字母表示 DP是小数点.
数码管分为共阳极的LED数码管、共阴极的LED数码管两种。
下图例举的是共阳极的LED数码管,共阳就是7段的显示字码共用一个电源的正。
led数码管原理图示意:
图3 引脚示意图
从上图可以看出,要是数码管显示数字,有两个条件:
1、是要在VT端(3/8脚)加正电源;2、要使(a,b,c,d,e,f,g,dp)端接低电平或“0”电平。
这样才能显示的。
3.2.5共阴极共阳极详细介绍
共阳极LED数码管的内部结构原理图图4:
图4 共阳极LED数码管的内部结构原理图
共阴极LED数码管的内部结构原理图:
图5 共阴极LED数码管的内部结构原理图
3.2.6二进制电平信号
表1.1 显示数字对应的二进制电平信号
显示 数字
a
b
c
d
e
f
g
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
2
1
1
0
1
1
0
1
3
1
1
1
1
0
0
1
4
0
1
1
0
0
1
1
5
1
0
1
1
0
1
1
6
0
0
1
1
1
1
1
7
1
1
1
0
0
0
0
8
1
1
1
1
1
1
1
9
0
0
0
1
1
0
1
3.2.7 LED驱动电路
LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。
A、静态显示驱动:
静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O口进行驱动,或者使用如BCD码二-十进位转换器进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O口多,如驱动5个数码管静态显示则需要5×8=40根I/O口来驱动,要知道一个89S51单片机可用的I/O口才32个呢。
故实际应用时必须增加驱动器进行驱动,增加了硬体电路的复杂性。
B、动态显示驱动:
数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O口,而且功耗更低。
4具体模块设计
4.1基本数据库
DATASEGMENT
TABDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
后面的程序可以再这个基本的库里选取数据,如LED显示屏的显示
4.2字母F的显示
LEABX,TAB
MOVAX,0FH
MOVDX,0642H
OUTDX,AL
MOVAL,1
MOVDX,0644H
OUTDX,AL
通过此程序,可以在1号显示屏上显示字母F,通过对显示屏的段选和位选进行调控,来显示F
4.3字母D的显示
MOVAX,0DH
ADDBX,AX
MOVDX,0642H
OUTDX,AL
MOVAL,2
MOVDX,0644H
OUTDX,AL
通过此程序段,可以在二号显示屏上显示字母D,通过对显示屏的段选和位选进行调控,来显示D
4.4字母B的显示
MOVAX,07H
ADDBX,AX
MOVDX,0642H
OUTDX,AL
MOVAL,3
MOVDX,0644H
OUTDX,AL
通过此程序段,可以在二号显示屏上显示字母B,通过对显示屏的段选和位选进行调控,来显示B
4.5程序启动、循环以及主要工作原理
START:
MOVAX,DATA
MOVDS,AX
MOVAL,90H
MOVDX,0646H
OUTDX,AL
RP:
MOVBL,0
MOVDX,0640H
INAL,DX
MOVCX,8
LP:
SHLAL,1
JNCNEXT
INCBL
NEXT:
LOOPLP
CALLDISPLAY
JMPRP
DISPLAY:
LEASI,TAB
MOVDX,0642H
MOVAL,3FH
OUTDX,AL
MOVAL,1
MOVDX,0644H
OUTDX,AL
MOVBH,0
ADDSI,BX
MOVAL,[SI]
OUTDX,AL
MOVDX,0644H
MOVAL,1
OUTDX,AL
CALLDELAY
RET
在此程序段中,利用了循环语句,进行了8次的循环,进行左移检测来检测开关状态,向上为“1”,向下为“0”:
START:
MOVAX,DATA
MOVDS,AX
MOVAL,90H
MOVDX,0646H
OUTDX,AL
RP:
MOVBL,0
MOVDX,0640H
INAL,DX
MOVCX,8
每当一个开关向上时,就向LED显示器上输入一个脉冲,记录数字为1,即该投票系统投了1票
具体工作原理:
(1)接通电源,系统复位;
(2)运行程序,所有开关均向下,LED显示为0,此时系统左移检测,没有开关向上开启,则无脉冲1信号给进LED显示器,显示器为0;
(3)拨动任意开关,系统第一次检测,检测开关向上,则产生1脉冲信号送进LED显示器,显示器数值加1,共循环8次,检测K0,K1,K2,K3,K4,K5,K6,K7共8个开关;
(4)检测完毕后,系统停止工作;
(5)在LED显示器上会显示总的投票数以及投票组
4.6延时系统的设计
DELAY:
MOVCX,0FFFFH
NOP
NOP
LOOP$
RET
在程序的组后部分,我加入了一个延时系统,输入延时信号,以达到减少系统时间误差,防止检测时间过长,避免出现N个开关向上后,不能马上进行数据检测,无法在第一时间产生脉冲信号,产生数据延迟。
4.6程序结束
CODEENDS
ENDSTART
程序结束循环,并终止程序。
课程设计总结
本学期微机原理课程即将结束,关于微机课程的心得体会甚多。
初学《微机原理》时,感觉摸不着头绪。
面对着众多的术语、概念及原理性的问题不知道该如何下手。
在了解课程的特点后,我发现,应该以微机的整机概念为突破口,在如何建立整体概念上下功夫。
“麻雀虽小,五脏俱全”,可以通过学习一个模型机的组成和指令执行的过程,了解和熟悉计算机的结构、特点和工作过程。
《微机原理》课程有许多新名词、新专业术语。
透彻理解这些名词、术语的意思,为今后深入学习打下基础。
一个新的名词从首次接触到理解和应用,需要一个反复的过程。
而在众多概念中,真正关键的并不是很多。
比如“中断”概念,既是重点又是难点,如果不懂中断技术,就不能算是搞懂了微机原理。
在学习中凡是遇到这种情况,绝对不轻易放过,要力求真正弄懂,搞懂一个重点,将使一大串概念迎刃而解。
学习过程中,我发现许多概念很相近,为了更好地掌握,将一些容易混淆的概念集中在一起进行分析,比较它们之间的异同点。
比如:
微机原理中,引入了计算机由五大部分组成这一概念;从中央处理器引出微处理器的定义;在引出微型计算机定义时,强调输入/输出接口的重要性;在引出微型计算机系统的定义时,强调计算机软件与计算机硬件的相辅相成的关系。
微处理器是微型计算机的重要组成部分,它与微型计算机、微型计算机系统是完全不同的概念。
三者之间的关系如下图。
微处理器、微型计算机和微型计算机系统
在微机中,最基础的语言是汇编语言。
汇编语言是一个最基础最古老的计算机语言。
语言总是越基础越重要,在重大的编程项目中应用最广泛。
就我的个人理解,汇编是对寄存的地址以及数据单元进行最直接的修改。
而在某些时候,这种方法是最有效,最可靠的。
比如,最近闹得沸沸扬扬的珊瑚虫一案,其软件制作的核心人物就是使用汇编语言来创造闻名遐尔的QQ查IP软件——珊瑚虫,并成立了有名的珊瑚虫工作室,其威力可见一斑。
然而,事物总有两面性,有优点自然缺点也不少。
其中,最重要的一点就是,汇编语言很复杂,对某个数据进行修改时,本来很简单的一个操作会用比较烦琐的语言来解决,而这些语言本身在执行和操作的过程中,占有大量的时间和成本。
在一些讲求效率的场合,并不可取。
汇编语言对学习其他计算机起到一个比较、对照、参考的促进作用。
学习事物总是从最简单基础的开始。
那么学习高级语言也当然应当从汇编开始。
学习汇编语言实际上是培养了学习计算机语言的能力和素养。
个人认为,学习汇编语言对学习其他语言很有促进作用。
汇编语言在本学期微机学习中有核心地位。
本学期微机原理课程内容繁多,还学习了可编程的计数/定时的8253,可编程的外围接口芯片8255A等。
学的都是芯片逻辑器件,而在名字前都标有“可编程”,其核心作用不可低估。
我认为,在学习中要考虑到“学以致用”,不能过分强调课程的系统性和基本理论的完整性,而应该侧重于基本方法和应用实例。
从微机应用系统的应用环境和特点来看,微机系统如何与千变万化的外部设备、外部世界相连,如何与它们交换信息,是微机系统应用中的关键所在,培养一定的微机应用系统的分析能力和初步设计能力才是最终目的
在课程设计中,通过对模拟投票系统的制作,我更加对这么课程产生了深厚的兴趣,在整个设计过程中,通过自己对参考资料的选取,理解,才能深深的体会到微机原理这门课程的博大精深。
在一开始的程序设计中,我只是单单的进行了投票系统的简单设计,利用了8255A和LED显示,简单的制作出模拟投票,后期修改中,为了使这个模拟投票系统更加人性化,我加入了
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理
![提示](https://static.bingdoc.com/images/bang_tan.gif)