当前位置:文档之家› 中南大学微机原理课程设计报告.docx

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

中南大学微机原理课程设计报告.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

中南大学计算机体系结构实验报告

计算机体系结构实验报告 学院:信息科学与工程学院 专业班级:高赛文的小仙女 指导老师:雷向东 姓名:igot7

目录 实验 1 对指令操作码进行霍夫曼编码 (3) 一、实验目的 (3) 二、实验内容 (3) 三、实验过程 (3) 四、实验结果 (14) 实验 2 使用 LRU 方法更新 Cache (15) 一、实验目的 (15) 二、实验内容 (15) 三、实验过程 (15) 四、实验结果 (18) 实验 3 通道处理过程模拟 (20) 一、实验目的 (20) 二、实验内容 (20) 三、实验过程 (21) 四、实验结果 (22) 实验 4 单功能流水线调度机构模拟 (23) 一、实验目的 (23) 二、实验内容 (23) 三、实验过程 (23) 四、运行结果 (24) 实验总结 (24)

实验 1 对指令操作码进行霍夫曼编码 一、实验目的 1.了解和掌握指令编码的基本要求和基本原理 二、实验内容 1.使用编程工具编写一个程序,对一组指令进行霍夫曼编码,并输出最后的编码结果以及对 指令码的长度进行评价。与扩展操作码和等长编码进行比较。 问题描述以及问题分析: 我们举例说明此问题,例如: 有一组指令的操作码共分七类,它们出现概率如 下表所示: P1 P2 P3 P4 P5 P6 P7 0.45 0.30 0.15 0.05 0.03 0.01 0.01 对此组指令进行HUFFMAN 编码正如下图所示: 最后得到的HUFFMAN 编码如下表所示: 最短编码长度为: H=0.45*1+0.30*2+0.15*3+0.05*4+0.03*5+0.01*6+0.01*6=-1.95. 要对指令的操作码进行HUFFMAN 编码,只要根据指令的各类操作码的出现概率构造HUFFMAN 树再进行HUFFAM 编码。此过程的难点构造HUFFMAN 树,进行HUFFAM 编码只要对你所生成的HUFFMAN 树进行中序遍历即可完成编码工作。 三、实验过程 观察上图 1,不难看出构造 HUFFMAN 树所要做的工作:

中南大学微机课程设计报告交通灯课案

微机课程设计报告

目录 一、需求分析 1、系统设计的意义 (3) 2、设计内容 (3) 3、设计目的 (3) 4、设计要求 (3) 5、系统功能 (4) 二、总体设计 1、交通灯工作过程 (4) 三、设计仿真图、设计流程图 1、系统仿真图 (5) 2、流程图 (6) 3、8253、8255A结构及功能 (8) 四、系统程序分析 (10) 五、总结与体会 (13) 六、参考文献 (13)

一、需求分析 1系统设计的意义: 随着社会经济的发展,城市问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据检测、交通信号灯控制与交通疏通的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。 随着城市机动车量的不断增加,组多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速通道,在高速道路建设完成的初期,它们也曾有效地改善了交通状况。然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速通道,缓解主干道与匝道、城市同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通灯的控制方式很多,本系统采用可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现本系统的各种功能。同时,本系统实用性强,操作简单。 2、设计内容 采用8255A设计交通灯控制的接口方案,根据设计的方案搭建电路,画出程序流程图,并编写程序进行调试 3、设计目的 综合运用《微机原理与应用》课程知识,利用集成电路设计实现一些中小规模电子电路或者完成一定功能的程序,以复习巩固课堂所学的理论知识,提高程序设计能力及实现系统、绘制系统电路图的能力,为实际应用奠定一定的基础。针对此次课程设计主要是运用本课程的理论知识进行交通灯控制分析及设计,掌握8255A方式0的使用与编程方法,通从而复习巩固了课堂所学的理论知识,提高了对所学知识的综合应用能力。 4、设计要求: (1)、分别用C语言和汇编语言编程完成硬件接口功能设计; (2)、硬件电路基于80x86微机接口;

微机原理课程设计电压报警器实验报告

南通大学电子信息学院 微机原理课程设计 报告书 课题名: 班级: 姓名: 学号: 指导老师: 日期: xxx

目录 1.设计目的 (2) 2.设计内容 (2) 3.设计要求 (2) 4.设计原理 (3) 5.硬件电路图 (3) 6.程序代码 (5) 7.程序及硬件系统调试情况 (19) 8.设计总结与体会 (19)

一、设计目的 课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力的重要教学环节。它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一个重要教学环节。 通过课程设计,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。 通过课程设计实践,不仅要培养学生事实求是和严肃认真的工作态度,培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅资料,撰写设计报告表达设计思想和结果的能力。 二、设计内容 设计一个电压报警器,要求采集实验箱提供的0~5V的电压,当输入电压在3V以内,显示电压值,如2.42。当输入电压超过3V,显示ERR,并报警。电压值可在七段数码管显示,点阵广告屏显示或液晶屏显示。报警形式自行设计,

计算机图形学实验报告 (2)

中南大学信息科学与工程学院 实验报告实验名称 实验地点科技楼四楼 实验日期2014年6月 指导教师 学生班级 学生姓名 学生学号 提交日期2014年6月

实验一Window图形编程基础 一、实验类型:验证型实验 二、实验目的 1、熟练使用实验主要开发平台VC6.0; 2、掌握如何在编译平台下编辑、编译、连接和运行一个简单的Windows图形应用程序; 3、掌握Window图形编程的基本方法; 4、学会使用基本绘图函数和Window GDI对象; 三、实验内容 创建基于MFC的Single Document应用程序(Win32应用程序也可,同学们可根据自己的喜好决定),程序可以实现以下要求: 1、用户可以通过菜单选择绘图颜色; 2、用户点击菜单选择绘图形状时,能在视图中绘制指定形状的图形; 四、实验要求与指导 1、建立名为“颜色”的菜单,该菜单下有四个菜单项:红、绿、蓝、黄。用户通过点击不同的菜单项,可以选择不同的颜色进行绘图。 2、建立名为“绘图”的菜单,该菜单下有三个菜单项:直线、曲线、矩形 其中“曲线”项有级联菜单,包括:圆、椭圆。 3、用户通过点击“绘图”中不同的菜单项,弹出对话框,让用户输入绘图位置,在指定位置进行绘图。

五、实验结果: 六、实验主要代码 1、画直线:CClientDC *m_pDC;再在OnDraw函数里给变量初始化m_pDC=new CClientDC(this); 在OnDraw函数中添加: m_pDC=new CClientDC(this); m_pDC->MoveTo(10,10); m_pDC->LineTo(100,100); m_pDC->SetPixel(100,200,RGB(0,0,0)); m_pDC->TextOut(100,100); 2、画圆: void CMyCG::LineDDA2(int xa, int ya, int xb, int yb, CDC *pDC) { int dx = xb - xa; int dy = yb - ya; int Steps, k; float xIncrement,yIncrement; float x = xa,y= ya; if(abs(dx)>abs(dy))

中南大学JAVA实验报告

中南大学 《JAVA语言与系统设计》 实验报告 题目运用运用JavaFx画时钟运用JavaFx实现时钟动画学生姓名 指导教师 学院信息科学与工程学院 专业班级 完成时间

目录 第一章绪论............................................................................................... 1.1实验背景............................................................................................... 1.2实验意义.............................................................................................. 1.3JavaFX介绍......................................................................................... 第二章需求分析..................................................................................... 2.1题目描述............................................................................................. 2.1.1 实验一.................................................................................... 2.1.2 实验二.................................................................................... 2.2 概要设计........................................................................................... 2.2.1 实验一.................................................................................... 2.2.2 实验二.................................................................................... 2.3 程序清单........................................................................................... 2.3.1 实验一代码............................................................................ 2.3.2 实验二代码............................................................................ 第三章调试分析.................................................................................... 3.1 结果分析......................................................................................... 3.1.1 实验一结果............................................................................ 3.1.2 实验二结果............................................................................ 3.2 调试报告........................................................................................ 心得体会.................................................................................................

计算机网络课程设计实验报告

中南大学课程设计报告 课程:计算机网络课程设计 题目:基于Winpcap的网络流量统计分析 指导教师:张伟 目录 第一章总体设计 一、实体类设计 --------P3 二、功能类设计 --------P3 三、界面设计 --------P3

第二章详细设计 一、实体类实现 --------P4 二、功能类实现 --------P4 三、界面实现 --------P5 第三章源代码清单及说明 一、CaptureUtil.java --------P7 二、MyPcapPacketHandler.java --------P9 三、PacketMatch.java --------P9 四、Windows.java --------P13 第四章运行结果 --------P19 第五章心得体会 --------P21 第一章总体设计 一、实体类设计 TCP、UPD、ICMP、ARP、广播数据包五个包的数据结构设计 二、功能类设计 (1)网卡获取 (2)包的抓捕

(3)包的处理 三、界面设计 (1)布局 (2)按钮功能连接 第二章第二章详细设计 一、实体类实现 TCP、UPD、ICMP、ARP、广播数据包五个包的数据结构设计。 本程序采用Java编写,基于win10pcap。Win10pcap是winpcap在win10系统上的适用版本。Java对于winpcap使用jnetpcap进行支持。对于TCP、UPD、ICMP、ARP、广播数据包五种类型的包,在jnetpcap的jar包中大部分已经封装好了相关的实体类型。对应如下:ARP 实体类:https://www.doczj.com/doc/f96176780.html,work.Arp; UPD 实体类:https://www.doczj.com/doc/f96176780.html,work.Icmp;

微机原理课程设计报告交通灯

WORD格式微机原理课程设计 设计题目交通灯的设计 实验课程名称微机原理 姓名王培培 学号080309069 专业09自动化班级2 指导教师张朝龙 开课学期2011至2012学年上学期

一、实验设计方案 实验名称:交通灯的设计实验时间:2011/12/23 小组合作:是□否?小组成员:无 1、实验目的: 分析实际的十字路口交通灯的亮灭过程,用实验箱上的8255实现交通灯的控制。(红,黄,绿三色灯) 2、实验设备及材料: 微机原理和接口技术实验室的实验箱和电脑设备等。 3、理论依据: 此设计是通过并行接口芯片8255A和8086计算机的硬件连接,以及通过8253延时的方法,来实现十字路口交通灯的模拟控制。 如硬件连接图所示(在后),红灯(RLED),黄灯(YLEDD)和绿灯(GLED)分别接在8255 的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接1,2,3,4(南东北西)路口的红灯,B,C口类推。8086工作在最小模式,低八位端口AD0~AD7接到8255和8253的D0~D7,AD8~AD15通过地址锁存器8282,接到三八译码器,译码后分别连到8255和8253的CS片选端。8253的 三个门控端接+5V,CLOCK0接由分频器产生的1MHZ的时钟脉冲,OUT0接到CLOCK1和CLOCK,2 OUT1接到8086的AD18,8086通过检测此端口是否有高电平来判断是否30s定时到。OUT2产生 1MHZ方波通过或门和8255的B口共同控制黄灯的闪烁。8255三个口全部工作在方式0既基本 输入输出方式,红绿灯的转换由软件编程实现。

4、实验方法步骤及注意事项: ○1设计思路 红,黄,绿灯可分别接在8255的A口,B口和C口上,灯的亮灭可直接由8086输出0,1 控制。 设8253各口地址分别为:设8253基地址即通道0地址为04A0H,通道1为04A2H,通道2 为04A4H,命令控制口为04A6H。 黄灯闪烁的频率为1HZ,所以想到由8253产生一个1HZ的方波,8255控制或门打开的时 间,在或门打开的时间内,8253将方波信号输入或门使黄灯闪烁。 由于计数值最大为65535,1MHZ/65536的值远大于2HZ,所以采用两个计数器级联的方 式,8253通道0的clock0输入由分频器产生的1MHZ时钟脉冲,工作在方式3即方波发生器方 式,理论设计输出周期为0.01s的方波。1MHZ的时钟脉冲其重复周期为T=1/1MHZ=1s,因此 通道0的计数初值为10000=2710H。由此方波分别作为clock1和clock2的输入时钟脉冲,所以 通道1和通道2的输入时钟频率为100HZ,通道1作计数器工作在方式1,计数初值3000=BB8H 既30s,计数到则输出一个高电平到8255的PA7口,8255将A口数据输入到8086,8086检测 到高电平既完成30s定时。通道2工作在方式3需输出一个1HZ的方波,通过一个或门和8086 共同控制黄灯的闪烁,因此也是工作在方波发生器方式,其计数初值为100=64H,将黄灯的状态 反馈到8055的端口PB7和PC7,同样输入到8086,8086通过两次检测端口状态可知黄灯的状态 变化,计9次状态变化可完成5次闪烁。 三个通道的门控信号都未用,均接+5V即可。 ○ 2硬件原理及电路图 由于8255A与8086CPU是以低八位数据线相连接的,所以应该是8255A的A1、A 0 线分别与 8086CPU的A2、A线相连,而将8086的 1 A 0 线作为选通信号。如果是按8255A内部地址来看, 则在图中它的地址是PA口地址即(CS+000H),PB口地址为(CS+001H),PC口地址为(CS+002H),

操作系统实验报告-中南大学

操作系统原理试验报告 班级: 学号: 姓名:

实验一:CPU调度 一、实验内容 选择一个调度算法,实现处理机调度。 二、实验目的 多道系统中,当就绪进程数大于处理机数时,须按照某种策略决定哪些进程优先占用处理机。本实验模拟实现处理机调度,以加深了解处理机调度的工作。 三、实验题目 1、设计一个按优先权调度算法实现处理机调度的程序; 2、设计按时间片轮转实现处理机调度的程序。 四、实验要求 PCB内容: 进程名/PID; 要求运行时间(单位时间); 优先权; 状态: PCB指针; 1、可随机输入若干进程,并按优先权排序; 2、从就绪队首选进程运行:优先权-1/要求运行时间-1 要求运行时间=0时,撤销该进程 3、重新排序,进行下轮调度 4、最好采用图形界面; 5、可随时增加进程; 6、规定道数,设置后备队列和挂起状态。若内存中进程少于规定道数,可自动从后备 队列调度一作业进入。被挂起进程入挂起队列,设置解挂功能用于将指定挂起进程解挂入就绪队列。 7、每次调度后,显示各进程状态。 实验二:内存管理 一、实验内容 主存储器空间的分配和回收 二、实验目的 帮助了解在不同的存储管理方式下,应怎样实现主存空间的分配和回收。 三、实验题目 在可变分区管理方式下,采用最先适应算法实现主存空间的分配和回收。

四、实验要求 1、自行假设主存空间大小,预设操作系统所占大小并构造未分分区表; 表目内容:起址、长度、状态(未分/空表目) 2、结合实验一,PCB增加为: {PID,要求运行时间,优先权,状态,所需主存大小,主存起始位置,PCB指针} 3、采用最先适应算法分配主存空间; 4、进程完成后,回收主存,并与相邻空闲分区合并 .1、Vo类说明(数据存储结构) 进程控制块PCB的结构: Public class PCB{ //进程控制块PCB,代表一个进程 //进程名,作为进程的标识; private String name; //要求运行时间,假设进程运行的单位时间数; private int time; //赋予进程的优先权,调度时总是选取优先数小的进程先执行; private int priority; //状态,假设有“就绪”状态(ready)、“运行”状态(running)、 //“后备”状态(waiting)、“挂起”状态(handup) private String state; //进程存放在table中的位置 private int start; //进程的大小 private int length; //进程是否进入内存,1为进入,0为未进入 private int isIn; //进程在内存中的起始位置 private int base; //进程的大小 private int limit; //一些get和set方法以及构造器省略… };

中南大学程序设计语言C++(课程设计2015级) - 副本

智能15级《程序设计语言(C++)》 课程设计任务书 一、课程设计目的 本课程设计是智能科学与技术专业的重要实践性课程。是学习完《计算机与程序设计语言基础》课程后进行的一次全面的综合练习。通过课程设计,一方面可以结合课程的教学内容循序渐进地进行设计方面的实践训练,另一方面,在参与一系列综合项目的实践过程中,还能提高如何综合运用所学知识解决实际问题的能力,以及获得相关项目管理和团队合作等众多方面的具体经验。为后续课程面向对象程序设计等课程奠定必要的实践基础。 设计目的如下: 1.进一步培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。 2.针对C++语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。 3.掌握C++语言的编程技巧和上机调试程序的方法。 4.掌握程序设计中的常用算法。 为了使学生从课程设计中尽可能取得比较大的收获,对课程设计题目分成二类,一类为基础训练题目,从中学习到程序设计的常用算法,另一类为综合题目。学生可根据自己的能力和兴趣从两类中各选择一个设计题完成。 二、课程设计内容 分组形式:可2-4人组队 题目要求:A类题目必须全部完成,B类题目3题内选择2题完成 A组题型:基本知识单项训练() 设计题1、数据连接 编写函数实现两个字符单向链表的连接。函数以对两个链表头的引用作为参数,把第二个链表连接到第一个链表后面。 设计题2、字符处理 设计函数,实现英文字符的大小写转换并去除其他字符。要求:字符串中的小写字

符自动变换成对应的大写字符,而大写字符则变换成对应的小写字符。另,如果字符串中存在除英文大小写之外的字符请去除掉。 设计题3、数据统计 求数组中离平均数最近的那个数。假定函数int mid(int a[], int len); 计算数组a中所有数的平均值,并返回数组中离该平均值最近的那个数。 设计题4、抓交通肇事犯 一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号中后4位数字的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。满足上述要求的车牌号只有一个。请根据以上线索求出该车号后4位数字。 B组题型:综合训练类 设计题5、投票管理系统 设计一个如图1所示的投票管理系统界面 图1投票管理系统界面 要求输入候选人名单后,点击确认按钮实现使用选择框代表候选人,计选择框的名字就是候选人的名字。点击取消按钮候选人输入框为空,重新输入候选人名单。选中候选人的选择框时,表示给该候选人投一票。点击确定按钮时表示产生一张选票。点击刷新

学生成绩管理系统_课程设计报告

中南大学 《C语言程序设计》 课程设计报告课题名称:学生成绩管理系统 专业电气信息 学生姓名舒畅 班级0914 学号0909091424 指导教师穆帅 完成日期2010年7月10日 信息科学与工程学院

目录 1 课程设计的目的 (1) 2 设计内容与要求 (1) 3 主要技术指标及特点 (2) 3.1 登录界面显示 (2) 3.2登记学生资料 (4) 3.3保存学生资料 (5) 3.4 删除学生资料 (6) 3.5修改学生资料 (7) 3.6 查询学生资料 (8) 3.6统计学生资料(自加功能) (8) 3.8对学生资料进行排序 (9) 3.9程序主要代码 (9) 4 设计小结 (31)

成绩管理系统 1 课程设计的目的 1.加深对《C语言程序设计》课程知识的理解,掌握C语言应用程序的开发方法和步骤; 2.进一步掌握和利用C语言进行程设计的能力; 3.进一步理解和运用结构化程序设计的思想和方法; 4.初步掌握开发一个小型实用系统的基本方法; 5.学会调试一个较长程序的基本方法; 6.学会利用流程图或N-S图表示算法; 7.掌握书写程设计开发文档的能力(书写课程设计报告)。 2 设计内容与要求 设计内容:成绩管理系统 现有学生成绩信息,内容如下: 姓名学号 C 数学英语 shuchang 12 99 98 99 jiutian 32 87 68 87 changzi 33 98 89 99 jiutia 13 7 43 45 设计要求: ?封面(参见任务书最后一页) ?系统描述:分析和描述系统的基本要求和内容; ?功能模块结构:包括如何划分功能模块,各功能模块之间的结构图,以及各模块 的功能描述; ?数据结构设计:设计数据结构以满足系统的功能要求,并加以注释说明; ?主要模块的算法说明:即实现该模块的思路; ?运行结果:包括典型的界面、输入和输出数据等; ?总结:包括C语言程序设计实践中遇到的问题,解决问题的过程及体会、收获、

微机原理课程设计报告

微型计算机技术课程设计 指导教师: 班级: 姓名: 学号: 班内序号: 课设日期: _________________________

目录 一、课程设计题目................. 错误!未定义书签。 二、设计目的..................... 错误!未定义书签。 三、设计内容..................... 错误!未定义书签。 四、设计所需器材与工具 (3) 五、设计思路..................... 错误!未定义书签。 六、设计步骤(含流程图和代码) ..... 错误!未定义书签。 七、课程设计小结 (36)

一、课程设计题目:点阵显示系统电路及程序设计 利用《汇编语言与微型计算机技术》课程中所学的可编程接口芯片8253、8255A、8259设计一个基于微机控制的点阵显示系统。 二、设计目的 1.通过本设计,使学生综合运用《汇编语言与微型计算机技术》、《数字电子技术》等课程的内容,为今后从事计算机检测与控制工作奠定一定的基础。 2.掌握接口芯片8253、8255A、8259等可编程器件、译码器74LS138、8路同相三态双向总线收发器74LS245、点阵显示器件的使用。 3.学会用汇编语言编写一个较完整的实用程序。 4.掌握微型计算机技术应用开发的全过程,包括需求分析、原理图设计、元器件选用、布线、编程、调试、撰写报告等步骤。 三、设计内容 1.点阵显示系统启动后的初始状态 在计算机显示器上出现菜单: dot matrix display system 1.←left shift display 2.↑up shift display 3.s stop 4.Esc Exit 2.点阵显示系统运行状态 按计算机光标←键,点阵逐列向左移动并显示:“微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓”。 按计算机光标↑键,点阵逐行向上移动并显示:“微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓”。 按计算机光标s键,点阵停止移动并显示当前字符。 3.结束程序运行状态 按计算机Esc键,结束点阵显示系统运行状态并显示“停”。 四.设计所需器材与工具 1.一块实验面包板(内含时钟信号1MHz或2MHz)。 2.可编程芯片8253、8255、74LS245、74LS138各一片,16×16点阵显示器件一片。

微机原理及应用实验报告

微机原理及应用实验报告 班级:机械1301班 姓名:黄佳清 学号:0801130117 座位号: 中南大学机电工程学院

实验一单片机仿真开发机操作和MCS-51指令系统应用 一.实验目的 1、熟悉MCS-51单片机仿真开发机和开发调试软件的操作使用和调整; 2、学会编写和输入汇编语言源程序、对输入的源程序进行汇编; 3、掌握程序的调试和运行的各种方法。 三.实验内容及步骤(完成分值:60分) 本实验秩序运行Keil uVersion2程序,设置为keil为纯软件仿真 1.新建工程项目 2.设置工程文件参数 3.编写新程序事例 4.调试程序直至能够运行出结果。 四.实验程序 AJMP MAIN ORG 0030H MAIN: MOV R0,#20H MOV R2,#0FH MOV A,#00H A1: MOV @R0,A INC R0 INC A DJNZ R2,A1 MOV R0,#20H ;暂停,观察并记录! MOV DPTR,#7000H MOV R2,#0FH A2: MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R2,A2 MOV R0,#030H ;断点,观察并记录! MOV DPTR,#7000H MOV R2,#0FH A3: MOVX A,@DPTR MOVX @R0,A INC R0 INC DPTR DJNZ R2,A3 DO: LJMP DO END ;内部存储器数据块赋值,搬运数据块到外部存储器,再搬运回内部数据存储器。 五、附加题 1.将光标移到想要暂停的地方,MOV R0,#20H所在行,选择“执行到光

中南大学C语言课程设计-学生成绩管理系统

中南大学 二○一三~二○一四学年第一学期 信息科学与工程学院 程序设计基础实践 设计报告 课程名称:程序设计基础实践 班级:2013级物联网工程1302班学号:0919130205 姓名:X晨 指导教师:杨希

二○一三年十二月 目录/Contet 课程设计题目 (1) 题目初步分析 (1) 程序总体设计 (2) 程序具体设计……………………………………………………… 10 程序调试测试……………………………………………………… 12 心得与体会………………………………………………………… 33 源代码……………………………………………………………… 33

课程设计题目 学生成绩管理系统 学生信息为:学号、XX、年龄、性别、出生年月、地址、、各科成绩等,试设计一个学生信息管理系统,使之能提供以下功能。 1.学生信息录入; 2.学生信息浏览; 3.按学号、XX查询; 4.学生成绩排序; 5.学生信息修改与删除。 6.综合信息输出。 题目初步分析 对对象的处理 1.由于每一个对象都包括多个成属性,所以要考虑数据的存储形式要用结构体类型来实现。 2.假如以数组的方式来存储,当然可以,但是定义一个数组,首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。 3.由于题目中的数据需要长期保存,用普通的函数来写已经不可以满足要求了,所以需要用到文件来存储。 对过程的处理 1.输入学生信息(设计一个生成链表程序,并将链表中的数据保存到一个数据文件中); 2.插入(修改)学生信息(设计一个从数据文件中读数据的程序并将数据存放在链表中进行操作,最后将处理后链表中的数据再次保存到一个数据文件中); 3.删除学生信息(设计一个从数据文件中读数据的程序并将数据存放在链表中进行操作,最后按照要求将链表中的某个数据删除后再次保存到一个数据文件中);

中南大学C++课程设计实践报告!

中南大学 本科生课程设计(实践)任务书、设计报告 (C++程序设计) 题目学生成绩管理系统 学生姓名 指导教师 学院 专业班级 学生学号 计算机基础教学实验中心 年月日

学生成绩管理系统 关键字:学生成绩 MFC 编写系统 内容:定义一个结构体,存放下列信息: 学号、姓名、性别、系名、班级名、成绩等 1.学生成绩管理系统开发设计思想 要求: 一:数据输入:输入学生的相关信息,若用户输入数据或信息不正确,给出“错误”信息显示,重复刚才的操作;至少要输入10个学生的数据;可以随时插入学生信息记录; 二:每个学生数据能够进行修改并进行保存; 三:可以根据学号或者姓名删除某学生数据; 四:查询模块要求能按学号,按姓名,按班级等条件进行查询; 五:界面要求美观,提示信息准确,所有功能可以反复使用。 学生成绩管理程序从总体设计方面来看,基本的功能包括主控模块,数据输入模块,数据修改模块,数据查询模块等。 设计模块图:

2.系统功能及系统设计介绍 详细设计: 对于总体设计说明的软件模块,进一步细化,要说明各个模块的逻辑实现方法。下面逐个说明。 主控模块:主要完成初始化工作,包括屏幕的初始化,显示初始操作界面。初始界面中主要包括功能的菜单选择项。 输入处理:利用链表技术输入多名学生的数据,直到输入学生的学号以“@”开头,则结束数据的输入。程序运行流程图如下:删除处理:利用链表技术删除某学号的学生成绩信息,如果找到该学号则进行删除,否则输出“未找到”的信息。程序运行流程图略。 查找处理:利用链表技术根据学生学号或姓名等方式查找某学号

的学生成绩信息,其程序流程图略。 排序处理:利用链表技术根据学生学号对学生数据进行排序,其 部分源代码如下:/***********xuesheng.c***********/ /******头文件(.h)***********/ #include "stdio.h" /*I/O函数*/ #include "stdlib.h" /*其它说明*/ #include "string.h" /*字符串函数*/ #include "conio.h" /*屏幕操作函数*/ #include "mem.h" /*内存操作函数*/ #include "ctype.h" /*字符操作函数*/ #include "alloc.h" /*动态地址分配函数*/ #define N 3 /*定义常数*/ typedef struct z1 /*定义数据结构*/ { char no[11]; char name[15]; char sex[5]; char major[15]; char class[15];

汇编与微机原理课程设计报告

微机接口课程设计报告 (题目:模拟自动门) 指导老师郭兰英 班级2015240204

目录 一概述 (1) 1.1 课程设计名称 (1) 1.2 课程设计要求 (1) 1.3 课程设计目的 (1) 二设计思想 (1) 三实施方案 (2) 3.1 获得传感器和“门”的状态 (2) 3.2 驱动步进电机和点阵模块 (2) 3.3 实现硬件延时 (3) 四硬件原理 (3) 4.1 中断控制器8259 (4) 4.2并行接口8255 (4) 4.3 定时/计数器8254 (5) 4.4 点阵LED显示屏 (5) 4.5 步进电机 (6) 4.6 红外距离传感器 (7) 五软件流程 (8) 六程序运行结果及分析 (11) 6.1 开门状态 (11) 6.2 关门状态 (12) 6.3 关门操作进行时中断到开门操作 (14)

6.4特殊状态 (15) 七个人感想 (16) 八附录 (18)

一、概述 1.1课程设计名称 模拟自动门 1.2课程设计要求 1)用汇编语言编程完成硬件接口功能设计。 2)硬件电路基于80x86微机接口。 3)程序功能包含:步进电机转动、点阵显示开关门、传感器检测是否有人、8254延时。 4)传感器检测有人时开门,门全开后延时几秒关门,若关门时检测到有人,立刻开门。 1.3课程设计目的 通过本课程设计,让学生对微机系统有一个较面的理解,对典型数字接口电路的应用技术有一个较深入的掌握,并对应用系统进行硬件原理和软件编程进行分析、设计和调试,达到基本掌握简单微型计算机应用系统软硬件的设计方法,提高项目开发能力的目的。要求同学分组完成课题,写出课程设计说明书,画出电路原理图,说明工作原理,编写设计程序及程序流程图。 二、设计思想 本程序主要功能是模拟商场等公共场所的自动门,实现有物体靠近并被传感器检测到时发生一系列变化的效果,模拟实现开门关门的功能。 为了尽量模拟真实场景下的自动门状态变化,本程序主要可以实现以下功能: 1、当传感器可检测范围内检测到物体,并且“门”为“关”的状态,立即“打开门”,即用一系列的硬件动作模拟自动门打开的动作和状态。 2、当“门”完全打开后一段时间后,传感器范围内检测不到物体时,立即“关闭门”, 用一系列的硬件动作模拟自动门关闭的动作和状态。

中南大学制造系统自动化技术实验报告整理

制造系统自动化技术 实验报告 学院:机电工程学院 班级:机制**** 姓名:张** 学号: *********** 指导教师:李** 时间: 2018-11-12 实验一柔性自动化制造系统运行实验 1.实验目的 (1)通过操作MES终端软件,实现对柔性制造系统的任务下达和控制加工,让学生

了解智能制造的特征及优势。 (2)通过创意性的实验让学生了解自动化系统总体方案的构思。 (3)通过总体方案的构思让学生了解该系统的工作原理,并学会绘制控制系统流程图,掌握物料流、信息流、能量流的流动路径。 (4)通过总体方案的构思让学生掌握各机械零部件、传感器、控制元器件的工作原理及性能。 (5)通过实验系统运行让学生了解运行的可靠性、安全性是采用何种元器件来实现的,促进学生进行深层次的思考和实践。 2.实验内容 (1)仔细观察柔性自动化制造系统的实现,了解柔性自动化制造系统的各个模块,熟悉各个模块的机械结构。 (2)了解各种典型传动机构的组装、工作原理、以及如何实现运动方向和速度的改变; (3)学习多种传感器的工作原理、性能和使用方法; (4)了解典型驱动装置的工作原理、驱动方式和性能; (5)理解柔性制造系统的工作原理,完成柔性制造系统的设计、组装; (6)实现对柔性制造系统的控制与检测,完成工件抓取、传输和加工。

3.实验步骤 (1)柔性制造系统的总体方案设计; (2)进行检测单元的设计; (3)进行控制系统的设计; (4)上下料机构的组装与检测控制; (5)物料传输机构的组装与实现; (6)柔性制造系统各组成模块的连接与控制; (7)柔性制造系统各组成单元的状态与工件状态位置的检测; (8)对机器人手动操作,实现对工件的抓取、传输。 4. 实验报告 ①该柔性自动化制造系统由哪几个主要的部分组成; 主要由:总控室工作站、AGV小车输送物料机构、安川机器人上下料工作站、法那科机器人上下料工作站、ABB机器人组装工作站、视觉检测及传送工作站、激光打标工作站、堆垛机及立体仓储工作站。 ②画出该柔性自动化制造系统的物料传输系统结构简图;

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

合肥工业大学 计算机与信息学院 课程设计 课程:微机原理与接口技术设计专业班级:计算机科学与技术x班学号: 姓名:

一、设计题目及要求: 【课题6】数字时钟 1.通过8253 定时器作产生秒脉冲定时中断。在中断服务程序中实现秒、分、小时的进位(24小时制)。 2.在七段数码管上显示当前的时分秒(例如,12 点10 分40 秒显示为121040)。 3.按“C”可设置时钟的时间当前值(对准时间)。 二、设计思想: 总体思想: 1、功能概述: 实验箱连线: 本实验建立在Dais实验箱基础上完成的基本连线及程序如下: 138译码器: A,B,C,D,分别连接A2,A3,A4,GS; y0连接8253的CS片选信号; y1连接8259的CS片选信号; 8253连线: 分频信号T2接8253的CLK0; 8253的OUT0接8259的IR7; 8253的gate信号接+5V; 8259连线: 8259的数据线接入数据总线;

本程序包括显示模块,键盘扫描模块,时间计数模块,设置模块等几个模块, (1)程序运行后,LED显示000000初始值,并且开始计数 (2)按C键进行设置初始时间,考虑到第一个数只能是0,1,2,当第一个数显示2时第二个数只能显示0~4,同理下面各位应满足时钟数值的合理的取值; (3)在手动输入初始值时,按D键进行回退1位修改已设置值,连续按D键可以全部进行删除修改。 2、主程序设计 主程序中完成通过调用子程序完成对8253及8259的初始化,对8259进行中断设置。主要在显示子程序和键盘子处理程序之间不断循环,8253每一秒给8259一个刺激,当8259接受到刺激后会给CPU一个中断请求,CPU会转去执行中断子程序,而中断子程序设置成时间计数加,即完成电子表的整体设计。详细流程图见图三-1。 3、LED显示子程序设计 本程序显示部分用了6个共阳极LED作为显示管,显示程序要做到每送一次段码就送一次位码,每送一次位码后,将位码中的0右移1位作为下次的位码,从而可以实现从左到右使6个LED依次显示出相应的数字。虽然CPU每隔一定时间便执行显示程序,但只要这个时间段不太长,由于人眼的视觉作用,就可以在6个LED上同时见到数字显示。 4、键盘扫描子程序设计 本程序需要用键盘对时间的初始值进行设置,因此对键盘扫描的子程序需要满足的功能如下: 判断是否是C键,若不是就返回至主程序,若是C键就开始对时间初始值进行设置,同时因注意到第一个值不可以超过2,第一个数是2时第二数不能超过4,余下的同理要满足时间数值的取值范围呢,若不是合法输入不予反应继续等待输入。当遇到输入数值错误时可以按下D键进行删除一位重新设置;当6位初始值全部设置成功后,电子表将自动开始走表。 5、时间运算子程序设计 该子程序的主要功能是对时、分、秒的运算,并把运算出的最终结果存到事先已经开辟

相关主题
文本预览
相关文档 最新文档