文档库 最新最全的文档下载
当前位置:文档库 › 中南大学微机原理课程设计报告.docx

中南大学微机原理课程设计报告.docx

中南大学

微机原理课程设计

实验报告

题目设计电子万年历

专业班级

通信工程

一、设计目的及要求

(1)设计任务:

通过本次课程设计,使学生巩固和加深微型计算机原理理论知识,通过过实践进一步加强学生独立分析问题和解决问题的能力、综合设计及创新能力的培养,同时注意培养学生实事求是、严肃认真的科学作风和良好的实验习惯,为今后工作打下良好的基础。计算机原理与接口课程课程设计结合教学内容,从应用的角度出发,进行三类课程设计,分别分为:汇编语言程序设计、微机标准接口课程设计和接口技术课程设计。

(1)通过设计电子万年历,掌握中断的使用方法。

(2)掌握基本的显存读写技术。

(3)学会在屏幕上以七段数码管的形式显示本机时间的方法。

(4)学会用汇编语言编写一个完整的程序,提高自己的动手操作能力。

(5)学习程序设计的基本思路和方法,培养分析问题、解决问题的能力。

汇编语言是计算机能够提供给用户使用的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。因而,对程序的空间和时间的要求很高的场合,汇编语言的应用是必不可少的。至于很多需要直接控制硬件的应用场合,则更是非用汇编语言不可了。随着科学技术迅速发展, 理工科大学生不仅需要掌握计算机方而的基本理论知识,而且还需要掌握基本的实验技能及一定的科学研究能力。

通过课程设计,使学生巩固和加深微型计算机原理理论知识,通过实践进一步加强学生独立分析问题和解决问题的能力、综合设计及创新能力的培养,同时注意培养学生实事求是、严肃认真的科学作风和良好的实验习惯,为今后工作打下良好的基础。鉴于汇编语言的广泛用途及其在当代计算机界的重要作用,本人利用学的知识,在同学门的帮助下,花费大量时间,完成了关于电子万年历的系统设计。这个系统是应用于电脑中的小应用程序,可是显示电脑中的时间。很多地方都会有个时钟显示,其中大多是应用了类似这样的方法。

关键词:汇编语言微机原理接口技术时钟显示键盘输入

一次性初始化六位

(二)设计功能:

1.电子万年历,具有年、月、日、时、分、秒24小时制的运行,并可以在8位数码管上显示:

2.电子万年历具有启动键、蜂鸣、整点报时、暂停、初始化年、月、日、时、分、秒。

(三)课程设计方式与基本要求:

[1】实验方式:

微机原理与接口技术课程设计共2周,要求学生做出设计方案(硬件线路图、程序框图)并提交指导教师检査确认。然后进行硬件连接、软件调试、得出结果, 由指导教师检查是否达到设计要求,最后撰写报告。根据通信工程专业学生的实际情况,课程设计的指导思想是:对于学习成绩好、动手能力强的学生,让他们有充分发挥的余地:对于大多数学生务必完成设计要求:对于少数学习稍差的学生只需完成基本要求。基于这一原则给出了3〜5个题目,每一个题目的大小、难易可以伸缩,由学生自选。

[2】基本要求:

电子万年历(三星)

设计任务:1.正常计时并显示,默认状态下用8个7段LED数码管作为显示设备,显示:时一分一秒,每秒刷新显示;

2.通过按键,可以切换显示:年(后两位)一月——日;

3.通过按键,可以调整时间:

4.实习整点定时闹铃功能,整点定时输出为音乐信号或语音信号。

扩展:可通过串口通讯来获取电子万年历的时间。其他功能(创新部分)

(四)设计所用元件

设备是武汉恒科电子教学仪器有限公司的超B—3000TB综合实验/仿真系统。配合PC机构成实验环境。

8253定时器:用于产生秒脉冲,计数器2的输出信号作为中断请示信号送

IRQ3 o以及计数器0作为蜂鸣器的输入脉冲使用。

8279接口芯片:实现键盘输入和显示输出。

8259中断控制器:用于产生中断。

8255并行控制器:触发蜂鸣器扬声。

数码管:八个LED用于显示年、月、日,时、分、秒。以格式00-00-00 输出值。

蜂鸣器:扬声报时。

二、设计题目及思想

(一)设计原理:

计算机原理与接口技术是通信工程专业的一门专业基础课程,学生需要掌握RAM扩充、8253计数器/定时器、8255并行口、8251串行口、8259中断控制器、D/A数模转换、A/D模数转换、DMA、LED显示等各个器件的性能和使用方法。课程设计的目地是综合这些基础知识,就具体问题让学生做出软、硬件解决方案并付诸实施,以培养解决实际问题的能力。

本程序的主要设计原理是用主程序完成键盘按键的扫描,实现计时结果的数码管显示,实现时分秒与年月日之间的转换。通过判断键盘按键调用相应功能程序段以实现相应功能,即实现了初始化年月日、初始化时分秒、显示年月日、显示时分秒等功能。通过实验板上的键盘实现一次性对年月日的六位数字或者时分秒的六位数字同时进行初始化的手动设置功能,在本次实验的所有班级中只有我们一组是通过这种方式进行的初始化,这也是我们组的特色所在。

利用8253的左时器功能。8253的四个端口地址为48H, 49H, 4AH, 4BH, 本实验采用8253的计数器2,工作在方式3 (方波发生器方式)输入CLK2为1MHZ O先给8253的初始值0C350H,循环记数。即一次记数完后,自动装入初始值。输出0UT2作为8259的输入脉冲。8259有两个口地址,本实验为20H和21H,其中20H用来写ICW1, 21H用来写ICW2、ICW4,本实验中8259为单片,边沿触发,采用3号中断源,即IR3和8253输出口0UT2相连,每过1/20秒接收到一个中断,向8259发出中断请求信号,如果电平信号不符合要求,则自动

转到7号中断,显示"ERR", CPU响应后,在中断处理程序中,对中断次数进行记数,记满20次,把时间缓冲区中的时间加1,并将其输入到显示缓冲区,这

样便实现了产生一秒钟长短的时间间隔,以作为程序的主要时钟。

计数初值的计算:X=lM/2=50000D=0C350H (用1\【HZ信号产生1/20秒方波)。

(二)主要模块:

【1】系统总体设计:

本系统设计的电子钟以8088微处理器作为CPU, 8253做宦时计数器产生一秒钟的时间间隔用作程序的主要时钟频率,8279做可编程并行接口显示时钟和键盘电路,8259

做中断控制器产生中断。在此系统中,8253的功能是定时,接入8253的CLK信号为周期性时钟信号。8253 采用计数器0和计数器2。计数器2:工作于方式3,使8253的OUTO端输出周期性的负脉冲信号,即每隔20ms, 8253的0UT0端就会输出一个负脉冲的倍号,此信号接8259的IR2,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变化。计数器0 :工作于方式3,使8253 的OUT2作为蜂鸣器的输入倍号,使蜂鸣器产生闹铃。8255的PB0 口与8253的GATE0相连,8255的PB0受程序里而的函数控制,当需要闹铃的时候置1,否则置0。程序由以下模块组成:系统共有6个功能模块,分别为,主控模块,显示模块,定时模块,闹钟模块,中断模块,初始化模块。

Wd-Hv 块

系统总体框團

(2]主控模块:

主控模块是系的核心模块,对8253、8255、8279进行初始化,设置中断向量,主要由软件实现。再由主控模块进入程序菜单,程序菜单的主要功能是调用其它模块对系统工作进行协调,它的主要功能是读小键盘输入键值并执行要做的工作,每当进入菜单就会先调用显示模块SH0W1,显示58-58-58,表示成功进入了菜单。接下来读键值选择相应的功能,如果键值为F 则初始化年月日并置入相应的内存,成功后返回主控模块。如果键值为D则初始化时分秒并置入相应的内存,成功后返回主控模块。如果键值为B则显示年月日内存中的值,成功后等待下次有键输入后返回主控程序。如果健值为9则显示时分秒内存中的值,成功后等待下次有键输入后返回主控程序。并调用显示模块显示。

(3]定时模块:

定时模块是为8259提供中断请求信号的。由一片8253实现,选用定时器0#,工作在方式3,由于时钟应该1秒走动一次,所以输岀值应为1S, 其输出信号可作为8259的中断请求信号。

Al AO :用来选择计数器和疸制字寄存器

方式二:频率发生器方式

【4】中断处理模块:

中断模块实现动态显示的,硬件为一片8259,由于中断请求信号为每秒一 次,中断程序该为时间按秒增加,并显示,只要开中断,便可实现每秒显示时 间增加一秒,从而达到动态显示的效果。

【5】并行模块:

并行模块是8255是数据在多根传输线上一次以8位为单位进行传输。8255

由数据总线缓冲器,读/写控制逻辑、A 组和B 组控制电路以及3个数据端口 (A 口、B 口和C 口)等组成。

) §8

D7D6D5gD3D2DlmKOJTOrEDND

3J Vuc 23职 ZD RK a )cs

2] Al SI AO

3JCLK2 13DUT2 ISGATE2 BJCLK1 DO-D7:三态数据钱.和数据总钱相连 GATE012:门控输人端.对应相同号计数器

CS :片选端.低电平有效. WR :写信号输入端,低电平有效. RD :读信号綸入端,低电平有效. CLKO 1 2:各计数器时钟宿号输入孃. OUT0 1 2:相应计数器输岀端• 8253井有以下几种工作方式:

SGATE1 方氏第:计数结束发生中断 23 DUT1

方式一:可编程单次眯冲方式 L

13 T

9 --

IRO 19 IR1 20

1R2 21 IR3 22 IR4 23

IR5 2$

IR6 25

IR7

IOR ____ U INTR 1厂 IHTA 2―

n

DODlMmMDSIHSMMWRRDDnQnCASCA SCAS

0 12 3 4567 a mm m m

S“EH

口高4位0默 A 口 0输岀

口 1输入 人曲式选择月?

1 0

-坊瞬制9熬冬

賣位嗖位控制字 厅式遠择

D7D6D5D4D3D20iro 丁J 复位1 •位

[6]显示脱:

PA3PA2PA1PA0RD

矗久

PC7PC6PC5PC4PCOPC1PC2PC3P80PB1P82

PA5PA6PA7gREmD1D2D3CMD5D6a

心P87P8SPBSP84PB3 Eg

固丙卫国可卫宓

师隠何油回

5 vggN8

其控制字窑式如下:

D7D6D5D4O3D2D1D0-

“十0镐岀

C 组低4位1舍入

0输出

I 输入

显示模块是将显示缓冲区的数值送到LED显示的功能模块,显示缓冲区是由六个字节构成,分别保存小时的高位和低位,分钟的高位和低位,秒钟的高位和低位。硬件上由六个LED构成,软件上由扫描显示的方法实现。

(三)芯片初始化:

【1】8263A定时7计数:

8253 A既可作左时器又可作计数器:

(1)计数:计数器装入初值后,当GATE为高电平时,可用外部事件作为

CLK脉冲对计数值进行减1计数,每来一个脉冲减1,当计数值减至0时,由OUT端输出一个标志信号。

(2)定时:计数器装入初值后,当GATE为高电平时,由CLK脉冲触发开

始自动计数,当计数到零时,发计数结束左时信号。

除上述典型应用外,8253A 还可作频率发生器、分频器、实时钟、单脉冲

发生器等。

8253A 控制字

7

6

5

4

3

2

1

y 7 Y

(3)

以上为8253计数器2的初始化过程,计数器0的初始化过程类似, 只是计数初值不再

为053C 而改为02,表示把输入的时钟频率二分频,以达到 可以使蜂鸣器报警的效果。 [2] 8259单级中斷控制:

8259A 编程及初始化 写初始化命令字

写初始化命令字ICWl(A0=0),以确宦中断请求信号类型,清除中断屏蔽寄 存器,中断优先级排队和确宦系统用单片还是多片。

中断优先级排队和确立系统用单片还是多片。

00选计数器0 01选计数器1 10选计数器2 11非法

一 00计数器锁存命令 —

01只读/写低8位,高8位口动迓0

—10只读/写高8位,低8位口动宜0

一 11先写低8位,后写高8位

数制控制:0=二进制,1= BCD

工作方式选择:000方式0

001方式I

xlO 方式2 x 】】方式3 100方式4 101方式5

【3】8279显示接口:

8279A 的控制命令 (1)键盘显示器方式设置命令

7

6

数据输入及扫描方式

-00 0组码扫描疑盘输入,2礎互锁♦ -001译码扫描.键盘

侖入.2键互锁 -010编咼扌欢鍵盘输入,多键有效 -011译玛扫捞讎盘输人,多键有效 -100编码扫趙.传感器陈列检测 _ ] 01译码扫崔,传越•器陆列检测 -liots 码扫省港通输入

-111译码扫培逛通输入

* RESET 后,设定为该种方式。 (2)扫描频率控制命令

设置2〜31,对外部时钟CLK 的分频系数,使

fclk-分频系数=100KHZ

[4] 8265 并行: 8255A

控制字 (1)方式选择控制字

\/

PC3〜0:1=输入,0=输出 PB □: 1=输入,0=输出 方式选择:0=方式0,1=方式1

PC7〜4:1冷入,0=输出9 PA 口:1=输入0=输出

7

6 5 4 3 2 1 0

-00 3宇符显示,左端输入* —0 1 16字755^,左谦输入 —1 0 8字符:S 不,右端输入 —1 1 16子符显示,右端縮入

方式标志:1=有效

(四)程序流程图:

【1】主程序流程

图:

闹钟开

进入相应的模块

!

五)硬件接线图:

实验线路连接:

1.8253A芯片的CLK2引出插孔连分频输出插孔Tl (1MHZ)。

2.8259A的IRQ3插孔和8253A的0UT2插孔相连。

3.将8279接口模块上的插座DU(JB51) (a-h)用8芯线连接至数码管模块插座DU (a-h), 8279接口模块上插座BIT(JB53)连接至数码管模块插座BIT。

4.8255的片选CS插孔和8253A的Y2插孔相连,PBO和8253的GATEO相连。

5.lKHz和8253的CLKO相连,8253的OUTO与蜂鸣器相连。

UBO

DO 11 DI 10 D2 9 D3 8 D4 7 D5 6 D6 5 D7 4 AD DO 27 IOW 2 IOR 3半

INTR 17 INTA 26小

13 12

DO 8 DI 7 D2 6 D3 5 D4 4 D5 3 D6 2 D7 1

18 J9

互 至

24 25

IR7

VCC

WR RD INT INTA

CAS2 CAS1 CASO

SHEN

RB02

CS6

0UT2 CLK2 0UT1

GATH >CLK1

8253

UB61

DI 33 D2 32 D3 31 D4 30 D5 29 D6 28 D7 27 IOR 5 IOW 36 ADD0 9 AUDI 8 RST 35

6

DO 34 17 10 11

18

21 CS M BCLK

22 I :? Q 23 IQW

19 ADDO 20 ADDi

----------------------- G )T20UT

o —o

..... lJffiZ

CS 8255

vcc

DO DI D2 D3 D4 D5 D6 D7

PAO n & i

3 PAI n AO 2 PA2 Tl A 7

1 PA3 40 PA4

39 PA5 FA J

38 PA6 FAD nA*? 37 PA7

FA?

RD WR AO Al RESET CS

PBO nx> i

18 PBO

19 PB1

20 PB2 Fl> J 21 PB3 T|T» A 22 PB4 PB4 TiT» V 23 PB J T I T» X 24

■ L J PBu T IP •?

25 PB7

■ Lo PB7

DP n

14 pen ■ FUU DP i 15

FU 1 Tl G C 16

■ l-U FC2 D

广叢 17 PCS D 广&

13 PC5

12

DC* A 11

FUu

PC?

10

RB61 4.7K

8255

三实验调试结果

打开汇编软件DVCC实验系统,设置正确的接口并且联机进入程序汇编界面。

按照电子万年历设计的硬件图把线路一一连接正确。

(下图为正常运行情况下电子万年历的状态)

按照正确接线之后,将实验台与计算机进行联机,再把程序通过DVCC汇编写进去,编译再次链接,然后调试无误,点击运行。数码管会显示初始命令等待58-58-58状态,然后至到下次正确的键入键盘上的值,如果键值为F则初始化年月日并置入相应的内存,成功后返回主控模块。如果键值为D则初始化时分秒并置入相应的内存,成功后返回主控模块。如果键值为B则显示年月日内存中的值,成功后等待下次有键输入后返回主控程序。如果健值为9则显示时分秒内存中的值,成功后等待下次有键输入后返回主控程序。并调用显示模块显示。每当程序运行到XX-OO-XX的时候(XX代表任意数值),蜂鸣器响起,整点报时实现。

四、课程设计总结

(一)遇到问题及解决方案:

在本次设计中我们遇到不少的难题:

我们一开始按照指导书接线,并先导入计算机上本身附带的程序后没有得到相应的效果,这让我十分的疑惑,也认真检査了硬件的接线线路,后来得知是不一立每一个的仪器都能顺利与主机链接上,后来经过多次的多部机子调试后得到能成功运行代码的平台。

然后我们在之前的程序中加入了其他的功能:整点报时、键盘初始化等。在改进设计方案中,加入数字键盘进行时间校对的过程确实遇到了不小的麻烦。在运行原先实验指导书中的CALL KEY (主要功能是从键盘上读入键入的值)函数,在我的程序中总是不能得到正确的键值,这个问题困扰了我们小组很久,于是我们进行了断点调试,在CALL KEY函数中不断的加入8255并行接口的初始化程序,将当前程序运行中的计算结果通过8255输出到小灯上,再通过观察小灯的亮灭状态判断当前断点程序是否正常的在运行。这样,我们调试了整整一天,终

于发现了问题,并且解决了问题。本小组发现实验所用的编译软件存在着缺陷。当数据段的代码过长的时候,程序不能正常的找到数据段的起始地址,CALL KEY函数中的查表指令无法正常进行。我们的改进方案是将原先写在数据段的表写进代码段,通过赋初值给一片内存区域,这样又在程序开头将代码段的初始地址赋给数据段的初始地址,由于程序中代码段的初始地址与数据段的初始地址是相同的所以这次寻找代码段的初始地址便能成功查表,于是也就解决了CALL KEY函数的运行问题。

在整点报时上,融入了8255, 8255由DATA22的数值决上跳转哪种状态,当分钟大于等于0分钟,则是给8253的GATEO高电平,从而使OUTO选通,将一定频率的信号传给蜂鸣器;当分钟小于等于0分钟,则是给8253的GATEO低电平,从而使OUTO不通,不能将一定频率的信号传给蜂鸣器,从而达到整点报时的效果。

还有在我的代码程序里面有通过8279判断是否有键盘输入的部分,如下:

MOV DX,PORT1

IN AL,DX

AND AL,07H

(详情请参考8279的初始化过程)

这个函数若返回AL = 0,则无键盘输入。我将这个函数写在了一个程序的循环之中,并作为循环判断条件,若无键盘输入则循环继续运行,若有键盘输入则跳出循环,但是我发现实际运行的时候它却不停的跳出循环,查了很久的代码还是没有发现原因,最后突然想到有可能是中断返回的时候将AL的改变了, 于是便将程序做了如下修改:

CLI

MOV DX,PORT1

IN AL,DX

AND AL,07H

STI

这次的运行结果才是正确的。

对于其他的部分,我们的实验结果完全正确。

(二)课程设计心得体会

这次的课程设计我深刻的体会到了基础语言编程的不容易,相较于C++来说,汇编语言几乎无封装性可言,也无多态性。这些特点使得我们编程的时候必须逻辑淸晰,稍有差错,程序就不知道会跑到什么地方去了。同时汇编语言语法上来说是十分容易的,但是又由于逻辑上要求十分严谨,这就造成了查错过程难以进行,因为通过编译几乎是不可能报错的,但是实际运行的时候程序也许就和你预期的完全不同,逻辑错误若不细究程序是难以査出的。同时,我也体会到

了程序的模块化真的对于程序的调试有着很大的便利,我也更加熟悉了分模块分段的调试方法,这对于我以后的编程道路也是一次宝贵的经历。

在课程设计过程中,我深刻地体会到:《微机原理与接口技术》这门课程对于我们的要求不仅限于对书本知识的理解,更重要的是对书本知识的运用。除此之外,我们应该在学习过程中充分发挥自己的想象力和创新意识,将对书本知识的理解与我们的创新意识相结合,设计出实用且功能良好的实物。通过本次课程设计,也提髙了我们的编程能力、协作能力和创新能力,为以后的学习打下了良好的基础。另外,我深感能找到一台运行正常的机子对实验的进行真的至关重要!

参考文献

[1]梁健武,《微机原理与接口技术》中国铁道出版社

碌电子万年历软怦码及注释

CODE SEGMENT

ASSUME CS:CODE

INTPORT1 EQU 0020H

INTPORT2 EQU 0021H

INTQ3 EQU INTERUPT3

INTQ7 EQU INTERUPH

DATAPORT EQU 00DEH

CONTPORT EQU 00DFH

PORTO EQU OODEH ;8279 DATA PORT

PORT1 EQU OODFH ;8279 CTRL PORT

微机原理课程设计报告—简易电压表

一、设计题目 简易电压表设计 二、设计目的 通过课程设计达到理论和实际应用相结合,提高对硬件微机结构和软件设计方法的理解。能够根据实际应用初步实现硬件和软件的基本设计,并且对硬件开发有更深层次的认识,为今后的软件开发打下坚实的基础。 三、设计内容及要求 基本内容: 利用STAR ES598PCI实验仪的硬件资源8259中断控制器、8255可编程并行接口芯片和 数码管、电位器和ADC0809设计一个简易电压表,编写响应的程序,使电压表能够正常运行,3位数码管显示电位器的电压,精确度要求小数点两位。 基本任务: 软件查询的方式获取AD转换结束信息 附加任务: 中断方式获取AD转换结束信息 四、设计原理 1、主体思想 ADC0809是逐次逼近型A / D转换器,具有较好的精度和速度,其采集结果为8位二进制数,每采集一次一般需要100μs。设计程序时可采用中断方式读取A / D转换结果数据。在中断方式下,A / D转换结束后会自动产生EOC信号,将其与8259的中断输入端相接即可。电压模拟量可由实验箱上的电位器提供,电压范围0 ~ 5V,其经ADC0809转换得到的数字量范围为0 ~ 255,再将转换的结果通过软件编码得到相应的原始电压值并在LED数码管上显示。

2、实验主要器材 3、设计流程图

4、相关电子元器件及其功能介绍 (1)8255A芯片 a.概述: Intel 8086/8088 系列的可编程外设接口电路(Programmable Peripheral Interface)简称PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。 b.8255A工作方式: ●方式0:基本输入输出方式 适用于无条件传送和查询方式的接口电路 ●方式1:选通输入输出方式 适用于查询和中断方式的接口电路 ●方式2:双向选通传送方式 适用于与双向传送数据的外设 适用于查询和中断方式的接口电路 c.8255A控制字格式: (a)工作方式控制字(b)c口按位置位/复位控制字 (2)8259A芯片 a.概述: 8259A是专门为了对8085A和8086/8088进行中断控制而设计的芯片,它是可以用程序控制的中断控制器。单个的8259A能管理8级向量优先级中断。在不增加其他电路的情况下,最多可以级联成64级的向量优先级中

微机原理课程设计报告

微机原理课程设计报告 课程设计是每一个大学生在大学生涯中都不可或缺的,它使我们在实践中了巩固了所学的知识、在实践中锻炼自己的动手能力,本文就来分享一篇微机原理课程设计报告,希望对大家能有所帮助! 微机原理课程设计报告(一) 以前从没有学过关于汇编语言的知识,起初学起来感觉很有难度。当知道要做课程设计的时候心里面感觉有些害怕和担心,担心自己不会或者做不好。但是当真的要做的时候也只好进自己作大的努力去做,做到自己最好的。 我们在这个过程中有很多自己的感受,我想很多同学都会和我有一样的感受,那就是感觉汇编语言真的是很神奇,很有意思。我们从开始的担心和害怕渐渐变成了享受,享受着汇编带给我们的快乐。看着自己做出来的东西,心里面的感觉真的很好。虽然我们做的东西都还很简单,但是毕竟是我们自己亲手,呵呵,应该是自己亲闹做出来的。很有成就感。 我想微机原理课程设计和其他课程设计有共同的地方,那就是不仅加深和巩固了我们的课本知识,而且增强了我们自己动脑,自己动手的能力。但是我想他也有它的独特指出,那就是让我们进入一个神奇的世界,那就是编程。对于很多学过汇编或者其他的类似程序的同学来说,这不算新奇,但

是对于我来说真的新奇,很有趣,也是我有更多的兴趣学习微机原理和其他的汇编。 微机原理与接口技术是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。讨论某一部分原理时又要涉及到其它部分的工作原理。这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。 学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思维,具体地说,在了解了微处理器各种芯片的功能和外部特性以后,剩下额是如何将它们用于实际系统中,其创造性劳动在于如何用计算机的有关技术和厂家提供的各种芯片,设计实用的电路和系统,再配上相应的应用程序,完成各种实际应用项目。 这次实验并不是很难,主要的困难来自对程序的理解。功夫不负有心人,经过四个人的合作和努力,我们最后对实验的原理有了清晰的认识。虽然实验台上的很多模块单元没有用到,但是就系统功能来说,我觉得我们做的还是不错的。 这次课设却让我们对实验台有了足够的了解,让我们知

微机原理课程设计报告简易计算器的汇编语言程序设计报告

目录 1 总体方案论证 (1) 2 程序流程图及其说明 (2) 2.1程序流程图 (2) 2.2流程图说明 (4) 3 软件设计 (4) 3.1字符输入及存储设计 (4) 3.2加减法运算的判断设计 (5) 3.3加减法运算的设计 (6) 3.3.1 数据的提取 (6) 3.3.2 加法运算 (6) 3.3.3 减法运算 (8) 3.4结果输出设计 (11) 4 程序调试 (11) 5 心得体会 (13) 参考文献 (14) 附录 (14)

简易计算器汇编语言程序设计 1 总体方案论证 该课程设计的任务是做一个简易计算器,可以对两个二位数进行加法和减法运算,例如11+23=34。我们平常的学习中做过给出两个数进行加减法运算的题目,但是这个题目难点在于这两个要做运算的数未知,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个二位数进行运算,而且做的是加法运算还是减法运算也未知,所以我们还要判断这个运算为加法运算还是减法运算。另外运算过程中的进位借位,选择什么方式进行输出,如何实现清屏等也是要解决的问题。 首先我们要解决的是输入时是用INT 21H的10号功能调用还是用INT 21H 的1号功能调用来进行输入。若是用10号功能调用则我们进行多字符输入,可以将输入的字符都存储到一个数据区里面,并调用9号功能调用输出存进去的字符,这种输入和输出的方案是可行的。我选择的是利用1号功能调用来输入,即把单个字符一个个的输入并存储到一个数据区里。我们要做的是两个二位数的运算,先认定输入的格式为ab+cd=或者ab-cd=,当然如果输入不是这样的格式计算出来的结果就不一定是我们想要的结果了。在存储的时候也是有选择的存储,当输入的并非格式里所要求的字符时则报错。 然后我们要判断是做加法运算还是减法运算,即判断输入的运算符是‘+’号还是‘-’号,因为输入的格式固定了,所以只需要把存进数据区的第三个字符拿来和‘+’号进行比较,若相等则进行加法运算,若不等则为减法运算。 在进行运算的过程中会想到到底如何对存进数据区的数据进行提取来作运算,一种方案是将‘+’号或‘-’号之前的两位数提取出来,当然要做一个10a+b 的换算,同理将后两位按照这种方式提取出来,最后进行运算。因为考虑到这种方式在运算时个位或十位进位或者借位的情形比较麻烦,所以我想到了把两个二位数的十位提取出来进行运算存到一个数据区里,个位也同时提取出来进行运算并存到该数据区,在这里把十位和个位拆开来进行运算再考虑进借位时就方便些,并且输出的时候也比较方便。大致地数据提取和运算如图1所示

微机原理课程设计报告

课程设计报告纸 微机原理课程设计报告 一、实验目的 进一步掌握微机原理知识,了解微机在实时采集过程中的应用,学习、掌握编程和程序调试方法。 二、实验内容 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并行口、ADC 0809、DAC 0832、七段LED数码管单元、8254定时/计数器、74LS574输出接口、电位器等单元电路, 就构成了数据采集系统, 硬件电原理框图4-3-1所示。

中南大学微机原理实验报告 信号发生器讲解

微型计算机原理与接口技术 实验课程设计 课程题目:信号发生器 学院:信息科学与工程学院 专业班级:自动化1105 学号:0909112324 姓名:樊文跃 指导老师:王击李志明

目录 一、课程设计概述 二、设计思想与实施方案 三、典型模块与编程分析 四、系统调试 五、课程设计收获与体会 六、参考文件 七、附录

一、课程设计概述 1.1 课程设计目的 《微型计算机原理与接口技术》理论课程是一门专业基础课程,它的主要内容包括微型计算机体系结构、8086 微处理器和指令系统、汇编语言设计以及微型计算机各个组成部分介绍等内容。要求学生对微机原理中的基本概念有较深入的了解,能够系统地掌握微型计算机的结构、8086 微处理器和指令系统、汇编语言程序设计方法、微机系统的接口电路设计及编程方法等,并具有综合运用所学知识分析问题和解决问题的能力。本课程设计,旨在提高同学汇编语言的编程能力以及对外部硬件(8086,DC0832,74LS138,8255,数码管,矩阵键盘)的认识,掌握各芯片的用法,锻炼学生在微机应用方面的实际工作能力,将所学转化为所用。同学们应该充分利用实验室现有资源以及微机原理与接口技术中的相关实验资料,以试验箱或proteus仿真软件为工具,以汇编语言或C语言为开发语言,实现多个模块的结合及软硬结合,独立完成给定的任务。在完成任务的基础上,以提升能力为目标,各位同学可以尝试用其他的编程语言实现给定要求,并开动自己的脑经,完善功能并尽可能多的做到以较简单的方法实现较为困难的问题,以较少的器件实现较多的功能,并琢磨模块间的配合实现。

1.2 课程设计的要求 (1)分别用C语言或汇编语言编程完成硬件接口功能设计; (2)硬件电路基于80x86微机的接口电路; (3)程序功能要求:小键盘给定、数码管(屏幕)显示,并产生对应信号波形(D/A)输出(信号波形包括正弦波、三角波、方波、锯齿波)、输出信号波形幅度、频率可调。(注意:按键数量应尽量少)。(4)实现远程控制 第二章设计思想和实施方案 2.1 功能分析 2.1.1 波形产生 结合微机原理实验中关于波形的显示,在TDPID平台上,因为涉及数字量与模拟量之间的相互转化,所以DAC0832和ADC0809要相互配合使用。在本次课程设计中,由于在PROTEUS中仿真由数字信号转换为模拟信号来产生波形,所以结合一片DAC0832即可实现。通过汇编语言编写各个波形子程序,由于要显示波形,控制每输出一个值,都进行一定时间的延时,然后扫描没有按键按下后再输出下一个值,直到形成一个周期的代码。利用循环,就可产生连续波形代码,再通过8255输出给DAC0832,将数字量转换成模拟量输出,即可得各种波形。

中南大学微机原理课程设计报告.docx

中南大学 微机原理课程设计 实验报告 题目设计电子万年历 专业班级 通信工程

一、设计目的及要求 (1)设计任务: 通过本次课程设计,使学生巩固和加深微型计算机原理理论知识,通过过实践进一步加强学生独立分析问题和解决问题的能力、综合设计及创新能力的培养,同时注意培养学生实事求是、严肃认真的科学作风和良好的实验习惯,为今后工作打下良好的基础。计算机原理与接口课程课程设计结合教学内容,从应用的角度出发,进行三类课程设计,分别分为:汇编语言程序设计、微机标准接口课程设计和接口技术课程设计。 (1)通过设计电子万年历,掌握中断的使用方法。 (2)掌握基本的显存读写技术。 (3)学会在屏幕上以七段数码管的形式显示本机时间的方法。 (4)学会用汇编语言编写一个完整的程序,提高自己的动手操作能力。 (5)学习程序设计的基本思路和方法,培养分析问题、解决问题的能力。 汇编语言是计算机能够提供给用户使用的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。因而,对程序的空间和时间的要求很高的场合,汇编语言的应用是必不可少的。至于很多需要直接控制硬件的应用场合,则更是非用汇编语言不可了。随着科学技术迅速发展, 理工科大学生不仅需要掌握计算机方而的基本理论知识,而且还需要掌握基本的实验技能及一定的科学研究能力。 通过课程设计,使学生巩固和加深微型计算机原理理论知识,通过实践进一步加强学生独立分析问题和解决问题的能力、综合设计及创新能力的培养,同时注意培养学生实事求是、严肃认真的科学作风和良好的实验习惯,为今后工作打下良好的基础。鉴于汇编语言的广泛用途及其在当代计算机界的重要作用,本人利用学的知识,在同学门的帮助下,花费大量时间,完成了关于电子万年历的系统设计。这个系统是应用于电脑中的小应用程序,可是显示电脑中的时间。很多地方都会有个时钟显示,其中大多是应用了类似这样的方法。 关键词:汇编语言微机原理接口技术时钟显示键盘输入 一次性初始化六位 (二)设计功能: 1.电子万年历,具有年、月、日、时、分、秒24小时制的运行,并可以在8位数码管上显示: 2.电子万年历具有启动键、蜂鸣、整点报时、暂停、初始化年、月、日、时、分、秒。

2021年微机原理及应用实验报告中南大学

微机原理及应用试验汇报 班级: 姓名: 学号: 中南大学 机电工程学院精密测控试验室

试验二软件程序设计 1.试验目: 1、掌握MCS-51单片机指令系统及用汇编语言编程技巧; 2、了解和熟悉用MCS-51单片机仿真开发机调试程序方法。 2.试验内容: 1、编写排序程序并上机调试经过。 已知8031内部RAM60H~69H单元中, 依次存放了 FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数, 编程将它们按 递减次序排序, 即最大数放在60H中, 最小数放在69H中。 2.、编写多字节加法程序并上机调试经过。 8031内部RAM20H~22H单元中, 存放了3字节被加数(低字节在前), 在2AH~2CH 单元中存放3字节加数(低字节在前), 求两数之和, 并将结果存入以20H为起始地址区域中(低字节在前)。 3.试验设备名称、型号: 4.画出软件程序步骤图, 写出上机调试经过汇编语言程序清单: 程序1、编写排序程序并上机调试经过。 已知8031内部RAM60H~69H单元中, 依次存放了 FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数, 编程将它们按 递减次序排序, 即最大数放在60H中, 最小数放在69H中。 解: 本设计采取冒泡排序法, 使用双重循环, 并在内循环中进行比较假如合乎从大到小

次序则不动, 不然两两交换, 这么比较下去, 比较9次后, 最小那个数就会沉底, 在下一次比较时将降低一次比较次数。假如一次比较完成, 没有发生交换, 说明已 经根据从大到小次序排列了。则能够退出循环, 结束程序。 程序结构框图和程序代码以下:

微机原理课程设计

微机原理课程设计 一、引言 微机原理课程设计是计算机科学与技术专业的一门重要课程,旨在通过实践项 目的设计与实现,帮助学生巩固和应用所学的微机原理知识,提高他们的计算机系统设计和编程能力。本文将详细介绍微机原理课程设计的标准格式,包括任务背景、设计目标、设计内容、设计步骤、设计结果和总结等部分。 二、任务背景 本次微机原理课程设计的任务背景是设计一个简单的计算器程序,该程序能够 实现基本的四则运算功能,并具备一定的错误处理能力。通过该设计任务,学生将深入理解微机原理中的指令系统、寄存器和存储器等相关知识,并能够将其应用于实际的程序设计中。 三、设计目标 本次微机原理课程设计的设计目标如下: 1. 熟悉并理解微机原理中的指令系统、寄存器和存储器等基本概念; 2. 能够使用汇编语言编写简单的计算器程序,并实现基本的四则运算功能; 3. 具备一定的错误处理能力,能够对非法输入进行合理的处理和提示。 四、设计内容 本次微机原理课程设计的设计内容包括以下几个方面: 1. 硬件平台的选择:根据实际需求选择合适的硬件平台,如Intel 8086微处理器; 2. 开发环境的搭建:选择合适的开发工具和汇编语言编译器,如MASM;

3. 程序设计:根据设计目标,编写汇编语言程序,实现计算器的基本功能; 4. 错误处理:设计合理的错误处理机制,对非法输入进行处理和提示。 五、设计步骤 本次微机原理课程设计的设计步骤如下: 1. 硬件平台的选择:根据实际需求选择合适的硬件平台,如Intel 8086微处理器,并搭建相应的开发环境; 2. 学习和理解指令系统:深入学习和理解所选择硬件平台的指令系统,包括指 令的格式、寻址方式和功能等; 3. 程序设计:根据设计目标,编写汇编语言程序,实现计算器的基本功能,包 括输入数字、选择运算符、进行运算和输出结果等; 4. 错误处理:设计合理的错误处理机制,对非法输入进行处理和提示,如输入 非数字字符或除数为零等; 5. 调试和测试:对设计的程序进行调试和测试,确保其能够正确运行并满足设 计要求。 六、设计结果 经过以上的设计步骤,最终得到了一个基于Intel 8086微处理器的计算器程序。该程序能够实现基本的四则运算功能,并具备一定的错误处理能力。经过测试,该程序能够正确地对输入进行处理,并给出正确的计算结果。 七、总结 微机原理课程设计是计算机科学与技术专业的一门重要课程,通过实践项目的 设计与实现,帮助学生巩固和应用所学的微机原理知识。本文详细介绍了微机原理课程设计的标准格式,包括任务背景、设计目标、设计内容、设计步骤、设计结果

微机原理与应用课程设计

微机原理与应用课程设计 1. 课程设计概述 微机原理与应用是一门专门讲解微型计算机的工作原理、指令系统、I/O系统、存储器系统、中断处理、编程方法、实时操作系统及应用等方面内容的课程。这门课程的学习需要结合实际操作,加深对微机原理及应用的理解和掌握。本次微机原理与应用课程设计主要是针对一些应用场景设计相应的程序来实现特定的功能。 2. 设计目的 本次课程设计目的在于让学生能够将所学的微机原理知识应用到实践中,充分 理解微机在实际中的工作原理和应用价值。同时,学生通过课程设计能够提升自己的编程技能,锻炼自己的分析和解决问题的能力。 3. 设计内容 本次课程设计分为两个部分: 3.1 基本应用实现 该部分要求学生掌握微机编程的基本技巧和方法,能够完成基本的数据输入输出、计算、判断等操作。具体内容包括: - 编写程序实现两个数的相加 - 编写程序实现字符串的长度计算 - 编写程序实现简单的猜数字游戏 3.2 综合应用实现 该部分要求学生通过综合应用的实现,掌握微机编程在日常工作和生活中的应用。具体内容包括: - 编写程序实现学生成绩的输入、存储和显示,能够判断成 绩属于优、良、中、及格、不及格五个等级中的哪一级。 - 编写程序实现水电气 抄表系统,输入上月和本月的抄表数,计算出本月应交费用并进行显示。 - 编写 程序实现餐厅点餐系统,能够实现菜品的显示、点餐、结账等功能。

4. 程序设计要求 为确保程序的实用和可行性,本次课程设计要求学生按照以下规范进行程序编写: - 程序代码必须符合规范,结构清晰、易懂,变量、函数命名规范化。 - 程序必须考虑到特殊情况,能够做到尽可能全面的测试,保证程序的正确性。 - 程序应该具有可扩展性,方便日后对程序功能的修改和扩充。 5. 总结 微机原理与应用课程设计是学生学习微机原理和应用的重要环节,是将理论和实践相结合的重要途径。通过课程设计的实践操作,学生不仅能够加深对微机原理的理解,还能提高自己的编程能力和解决问题的能力。通过本次课程设计,学生可以更深入地了解微机原理及应用,为日后的工作和生活奠定坚实的基础。

微机课程设计报告-波形发生器

南京信息工程大学 《微机原理与接口技术I 综合实验》设计报告 设计课题:波形发生器 专业班级:09测控(1)班 学生姓名:** 学生学号:*********** 指导教师:*** 成绩: 二○一二年五月十日

波形发生器 一、设计目的 1.微机原理与接口技术是一门实践性很强的课程。课程设计教学环节十分重要。通过课程设计,使用微处理器芯片及其它典型的接口芯片,设计微处理器应用的典型接口电路,加深对微处理器、典型接口芯片特性的理解,掌握微处理器接口电路设计的初步方法,并进行一定的编程训练,加强微机应用的工程实践能力; 2.掌握波形发生器的逻辑功能和工作原理,设计出电路图,分析并设计硬件连接图,掌握波形发生器的设计方法。并对各种元器件的功能和应用有所了解,对其在电路中的作用进行分析,充分掌握电路设计流程以及电路设计过程中应注意的事项。 二、设计要求 1.设计出的波形发生器能够产生方波,通过键盘控制可以改变输出信号的频率和幅度,输出信号在0~5v连续可调。 2.使用8086处理器以及8255A,DAC0832两个芯片。8255A作为主机与DAC0832之间的接口,8255A的A口作为数据输出口,在工作方式0输出。DAC0832 作为数据转换接口将数字信号变成模拟信号输出,DAC0832的CS-,WR1- ,,WR2- , ,XFER - 均接地,ILE接高电平即工作在直通方式。 DAC0832 DAC0832是8位分辨率D/A转换集成芯片,与处理器完全兼容,具有价格低廉,接口简单,转换控制容易等优点,在微机应用系统中得到广泛的应用。 D/A转换器由八位输入锁存器、八位DAC寄存器、八位D/A转换电路以及转换电路构成。 DAC0832输出是电流型的,但实际应用中往往需要电压输出信号,所以还必须一个外接的运算放大器转换称电压。其引脚如下图1所示:

微机原理课程设计报告-软件部分

微机原理课程设计报告 一、设计题目 Pc机实时时钟的设计 二、设计内容及功能 设计内容:利用PC机现有的硬件和软件资源设计程序,以实现在显示器上显示XX(时):XX(分):XX(秒)。 设计功能: 按下任意键开始显示数据区中存放的时间值,并且每秒更新一次。 运行中按下空格键则停止运行并返回DOS。 运行过程中按下回车键则依次提示输入时,分,秒的值,输入完毕后时钟自动按照设置的时间工作。 程序中应保护原系统的08H中断矢量以便退出时恢复原系统的设置。 三、设计思想及原理 设计基本思想:PC机系统板上使用一片8253,其地址为40H—43H,其通道0以方式3工作,每55ms向中断控制器8259A IRQ0端发一次中断请求。本设计题要求借用原有电路,重新设置8253的计数器0每10ms产生一次中断,100次中断后加1秒,然后调整时、分、秒并显示在屏幕上。 设计原理:100次中断给秒针的个位加1秒,秒针个位加1产生进位时,高位加1,低位回0.依此类推。 设置时间时,将输入的6个数字依此送入时钟高位开始的时间字符显示区,再显示即可 四、模块划分及程序流程图 模块划分:本程序分为几大模块 1.时钟显示模块display 使用09H字符串显示DOS功能调用完成时钟字符显示区的字符显示(即时间显示),这种显示在无其他有效指令的情况下不停进行,完成对时钟字符显示区的扫描显示,字符区有任何变化均会显示在屏幕上。对本程序,用户会看到正在工作的时钟。

2.时钟设置模块SET 当按下回车键ENTER即进入设置程序段SET。 利用使用09H字符串显示DOS功能调用进行提示语的显示input the value of hour[00-23]: 使用两次AH=01H字符输入显示DOS功能调用完成对时钟小时值的设定。 同理完成分和秒的输入提示及值设定 3.程序退出模块exit 当按下空格键SPACE即进入退出程序段,退出程序先写初始状态8253计数器的控制字00110110B(通道0,先读低8位,再读高8位,工作方式3,计数值2进制格式),再将计数初值0000H送入通道0,完成了对8253设置的恢复,接着完成保护原系统的08H中断矢量以便退出后恢复原系统的设置。 4.中断程序模块int_ret 先关中断 将分钟和秒钟高低位通过and 0fh (高四位置0,低四位值不改变)及or30h (高四位置0011,低四位值不变)转化为字符。 通过mov al,20h Out 20h,al 发出中断结束命令 再开中断 5.计时子程序timer 计时子程序,先将count 的值设为100,使用dec count 指令,如果count不为0,则进入中断程序段,100次中断后count的值为0,秒针低位+1,再将count 值置为100. 当秒针低位加1产生进位时,低位置0,高位加1. 秒针高位为6时,将秒针高位置0,分钟低位加1 分钟,时针与秒针类似

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

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

2关键字 (1) 3摘要 (1) 4综合实验目的 (1) 5引言 (1) 5.1.1使用各个芯片的作用及工作原理 (2) 5.1.2 8253可编程外围芯片介绍 (3) 5.1.3锁存器74ls273 (4) 5.1.4译码器74154 (7) 5.1.5七段数码管显示 (8) 6程序流程图 (10) 7程序源程序 (11) 8程序及硬件调试图 (15) 9设计心得 (17) 10参考文献 (18) 可任意启动/停止的电子秒表 一、电子秒表课程设计要求 6位LED数码显示,计时单位为1/100秒。利用功能键进行启/停控制。其功能为:上电后计时器清0,当第一次(或奇数次)按下启/停键时开始计数。第2次(或偶数次)按下该键时停止计时,再一次按启/停键时清零后重新开始计时。 二、关键字 8086 8255 8253 控制字 三、摘要 用汇编语言设计数字秒表,用PROTUES仿真软件搭建的硬件电路上正确显示,并且具有开始停止清零功能。用8086作为处理器,8253做定时功能产生0.01S的脉冲,8255具备锁存和并行输出功能,驱动7段数码管正确显示,并且具有足够高的精度。。

四、综合实验目的: 通常,学习知识是由浅入深、由此及彼,一点点的学习和积累的,而应用知识则是综合运用所积累的知识来分析和解决实际问题、从知识的系统性来检验对各层次知识的掌握程度。 综合实验的目的是让学生把理论学习和实验教学阶段所掌握的知识通过一个设计实例,经历一次理论和实践结合、软件和硬件结合的综合训练,也是一次工程实践能力的检验。这次综合实验大家应当把它作为毕业设计的预演。 锻炼通过各种媒体和途径主动获取知识的能力。 五、引言 使用8253的通道0 工作在方式0计数,,并选用二进制技术,控制字36H,计数初值500,对1MHZ的CLK计数产生2000HZ的输出脉冲给1,2通道的CLK,通道一选用二进制计数即计数结束中断方式0,初值20产生非屏蔽中断0.01S非屏蔽中断送给8086的NMI产生中断的脉冲,8086开始计数即毫秒位计数并显示,并与10比较,等于给分秒位加一,毫秒位置清零,分秒位与6比较若相等清零秒各位加一,秒个位与10比较若等于清零秒十位加一,秒十位与6比较若等于清零分个位加1,分个位与10比较若等于清零分十位加一,分十位与6比较若等于全部清零。 1、使用各芯片的作用及工作原理 1)定时器/计数器8253 用系统8253定时器提供的1MHZ定时单位,设计秒表定时程序。 有关系统定时方法:PC机系统中的8253定时器0工作于方式3,外部提供一个时钟作为CLK信号, 频率:f=1MHz。 定时器0输出方波的频率:2000 Hz。 定时器1输出方波100HZ,输出方波周期Tout=1/100=1ms。8253A每隔1ms引起一次中断,作为定时信号。可用1ms作基本计时单位。 253的引脚图及硬件连接图如下图示:

微机原理课设报告

中南大学 微机原理课程设计报告

一、课程设计目的 通过本次课程设计要掌握8088,8255,0809,0832,8279 等多种芯片使用的方法,灵活运用课本知识,加深所学的知识,对所学的相关芯片的原理、内部结构、使用方法等有更加深刻的了解,学会利用课本知识联系实际应用及编程。同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。 二、课程设计任务 本次课设选题为“模拟电压采集,直流电机控制”。 根据我自己对这个课题的理解,我认为这个课题应该实现以下的要求:基本要求: 1、对模拟电压进行采集转换为数字信号,并实时显示。 2、用转换的到的数字信号再经数模转换,对直流电机进行控制。 拓展要求: 1、通过发光二极管作为信号指示灯,实时的指示直流电机的工作状态 是否正常。 2、建立报警电路,对电机非正常工作情况以及反转工作情况下进行报 警。 三、设计思想与原理 1、设计思想 本次课设选题为“模拟电压采集,直流电机控制”,基本分为两大部分:模拟量采集的模数转换部分,以及电机控制中的数模转换部分。而为了让模拟量的采集结果更加明显可察,将加入数码管显示模块,实时显示模拟量采集的大小情况。与此同时,在选题基础上添加了直流电机工作状态指示灯电路和报警电路。

2、设计原理 根据试验箱相关配置,取电位器0~5V 可调电压为模拟量输出模块,可线性调节输出。取芯片ADC 0809 对采集到的模拟信号进行模数转换,将0~5V 的电压信号转为00~FF 的数字信号,并通过8279 键盘扫描输出模块进行相应的显示输出。得到转换后的数字量之后,使用DAC0832 数模转换芯片进行数模转换,并将所得模拟量输出到直流电机控制端,进行电机驱动。 对于添加的模块,主要通过8255 芯片来实现,取8255 的PA0 口作为输出端口,连接试验箱上的开关量输入显示区的发光二极管。对A口分别赋值01H (直流电机正向非正常工作)、02H(直流电机正常工作)、04H(直流电机反向非正常工作)并输入给开关量输入显示区的发光二极管,驱动前三个二极管在电机的三种工作状态下分别发光,从而实现指示灯电路。对于报警电路,只要从开关量输入显示区取得相应电平变化量输送给电子音响驱动控制区的信号输入端,即完成报警电路的设计。 四、具体模块设计 1、概述 本系统设计以8088 微处理器作为CPU,用ADC0809 进行模数转换,DAC0832 进行数模转换,8255 进行电机选择及步进电机控制,8279 进行显示输出,即主要包括四大模块:A/D 模块,8255 控制模块,D/A 模块以及显示模块,通过中央8088 全局调制,如下图Fig.1。

微机课程设计报告

摘要 汇编语言实质就是机器语言的一个高级的形式。《微机原理与接口技术》课程要求掌握汇编语言编辑,调试技术及接口芯片的编程与使用。作为自动化专业的学生这门课更是必须掌握的,是我们学习更深层次的专业知识的基础。 本次课程设计利用汇编语言的特点,编写程序,通过键盘输入一个16进制数,通过屏幕提示菜单选择转换成2进制,8进制或者10进制数并显示。程序设计由一个输入16进制数的子程序、输出2进制的子程序、输出8进制的子程序、输出10进制的子程序,然后利用CALL指令及DOS指令编写出主程序及将结果在屏幕上显示出来。编写程序的过程,包括程序功能分析、划分程序模块、设计程序流程图、编写程序、调试程序和结果分析。 通过此课程设计的汇编语言练习,可以熟悉汇编语言的寻址方式和指令系统,BIOS和DOS系统功能调用,程序设计方法并熟悉汇编的编程环境。 关键字: 汇编语言数制转换 DOS调用程序调试

数制转换程序设计 1 设计意义及要求 1.1 设计意义 通过课程设计,能够对所学知识有更进一步的理解,并能掌握学习理论时没有注意的细节。调试程序,排除故障有助于提高分析问题、解决问题的能力。课程设计中碰到的挫折,有助于养成良好的学习习惯、严谨的工作作风。 通过此课程设计的汇编语言练习,可以熟悉汇编语言的寻址方式和指令系统,BIOS和DOS系统功能调用,程序设计方法并熟悉汇编的编程环境。 1.2 设计要求 设计内容:编写程序,通过键盘输入一个16进制数,通过屏幕提示菜单选择转换成2进制,8进制或者10进制数并显示。 设计要求: 1)按屏幕提示要求输入,从屏幕上获得正确结果。 2)了解汇编语言的设计方法,熟悉汇编语言的寻址方式、指令系统和DOS 系统功能调用画出流程图,按照自己目的编写源程序,并以模块化方式注释源程序。 3)画出流程图,按照自己目的编写源程序,并以模块化方式注释源程序。 4)撰写实验报告,认真完成报告。报告内容包括:软件思想,流程图,源程序及程序注释调试记录及结果分析;总结;参考资料;附录:芯片资料或程序清单。 附加设计要求:若输入的16进制不是0至F间的数字,则显示出错信息,并要求重新输入。

中南大学汇编课程设计报告

中南大学 微机原理课程设计报告——信号发生器功能程序设计

目录 第一章设计题目、要求及目的 (3) 1.设计题目要求 (3) 2.设计目的 (3) 第二章总体设计方案 (3) 1.设计思想 (3) 2.设计方案 (4) 3.总体设计流程图 (5) 第三章硬件设计 (5) 1.硬件环境要求 (5) 2.所用芯片及其功能说明 (6) 3.硬件接线图 (9) 第四章程序设计 (10) 1.流程图 (10) 2.典型程序模块及典型编程技巧分析··13 3.课程设计中遇到的问题及解决方法··14 4.程序清单和程序注释 (15) 第五章收获与体会 (33) 第六章参考文献 (33)

第一章设计题目、要求及目的 1.设计题目及要求 设计题目:信号功能发生器设计 设计要求: (1)、编程语言为C语言和汇编语言; (2)、硬件电路基于80x86微机的接口电路; (3)、程序功能要求:小键盘给定、数码管(屏幕)显示,并产生对应信号波形(D/A)输出(信号波形包括正弦波、三角波、方波、锯齿波)、输出信号波形幅度、频率可调。(注意:按键数量应尽量少)。 2.设计目的 (1)、熟练掌握汇编语言和C语言,并用它们实现对硬件的操作,实现设计要求。 (2)、学会调试程序,可以通过编译(masm)、链接(link)、运行(run)可以看到汇编程序的运行结果,更多的是要通过Debug来调试以发现程序的逻辑问题,熟练运用Debug可以解决很多问题,如Debug的T命令可以查看单步运行的结果。 (3)、对硬件加深了解,特别是此实验要用到的8255及小键盘等 (4)、本课程设计,要求对微机系统有一个较全面的理解,对典型数字接口电路的应用技术有一个较深入的掌握,并对应用系统进行硬件原理和软件编程进行分析、设计和调试,达到基本掌握简单微型计算机应用系统软硬件的设计方法,提高项目开发能力的目的。 第二章总体设计方案 1.设计思想 该课题要求实现信号功能发生器,首先通过小键盘给定一个按键,并将此信息送入计算机中,由计算机内部根据此信息去实现特定的功能,比如产生正弦波。计算机在获得小键盘给定的信息之后,送出一个信息到产生波形的芯片0832,由其去实现波形的产生。要实现数码管显示,则需要将显示的信息通过输入输出端口芯片送到数码管端口。实现调频和调幅是跟据波形产生的原理改变产生波形的参数即可实现。从外设送数据进入CPU是通过8255A芯片实现的,波形的产生

相关文档
相关文档 最新文档