当前位置:文档之家› 《微机原理与接口》课程上机操作实验报告

《微机原理与接口》课程上机操作实验报告

《微机原理与接口》课程上机操作实验报告
《微机原理与接口》课程上机操作实验报告

《微机原理与接口》课程上机操作

实验报告

姓名:王自胜

学号: 12212162

指导教师:付文秀

时间: 2014年12月

I/O地址译码与交通灯控制实验

一、实验目的

通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。

二、实验内容

如图5-3,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律燃灭。

十字路口交通灯的变化规律要求:

(1)南北路口的绿灯、东西路口的红灯同时亮3秒左右。

(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。(3)南北路口的红灯、东西路口的绿灯同时亮3秒左右。

(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。

8255动态分配地址:

控制寄存器: 0EC0BH

A口地址: 0EC08H

C口地址: 0EC0AH (5)转(1)重复。

三、程序流程图

四、程序清单

DATA SEGMENT

X DB ?

DATA ENDS

STACK1 SEGMENT STACK

DW 100H DUP(0)

STACK1 ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK1 START: MOV AX,DATA

MOV DS,AX

;---------------INIT---------------- MOV DX,0EC0BH ;写控制字

MOV AL,80H

OUT DX,AL

L3: MOV DX,0EC0AH

MOV AL,24H ;南北绿灯,东西红灯亮

OUT DX,AL

CALL DELAY

CALL DELAY ;长延时,3s左右

CALL DELAY

CALL DELAY

CALL DELAY

CALL DELAY

CALL DELAY

MOV BL,8

MOV AL,04H

L0: XOR AL,40H ;南北黄灯闪,东西红灯亮OUT DX,AL

CALL DELAY ;延时

CALL DELAY

DEC BL ;闪烁几次

JNZ L0

CALL DELAY

MOV AL,81H ;南北红灯亮,东西绿灯亮

OUT DX,AL

CALL DELAY

CALL DELAY

CALL DELAY ;长延时,3s左右

CALL DELAY

CALL DELAY

CALL DELAY

CALL DELAY

MOV BL,9

MOV AL,80H

L1: XOR AL,02H ;南北红灯亮,东西黄灯闪OUT DX,AL

CALL DELAY ;延时

CALL DELAY

DEC BL

JNZ L1 ;闪烁几次

CALL DELAY

MOV DL,0FFH

MOV AH,06H

INT 21H

JZ L3 ;六号功能判断若无字符输入ZF=1继续循环

;------------------------------

MOV AH,4CH

INT 21H

;-----------延时函数------------

DELAY : PUSH CX

PUSH DX

MOV CX,1FFFH

LOP1: MOV DX,0FFFFH

LOP2: DEC DX

JNZ LOP2

LOOP LOP1

POP DX

POP CX

RET

CODE ENDS

END START

可编程定时时钟/计数器(8253)

一、实验目的

掌握8253的基本工作原理和编程方法。

二、实验内容

按图5-1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。

按图5-2连接电图,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。

三、实验原理

8253具有3个独立的计数通道,采用减1计数方式。在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。当计数脉冲是已知周期的时钟信号时,计数就成为定时。作计数器时,要求计数的次数可直接作为计数器的初值预置到减“1”计数器中。

8253中各通道可有6种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能。本实验用到的是方式0—计数结束中断。在写入计数值N之后的第一个CLK的下降沿将N装入计数执行单元,待下一个CLK的下降沿到来且门控信号GATE为高电平时,通道开始启动计数。在计数过程中,OUT一直保持低电平,直到计数达“0”时,OUT输出由低电平变为高电平,并且保持高电平。

四、程序流程图

五、程序清单

DATA SEGMENT

N E QU 0BH ;计数器初值,不大于0FH

CHL DB 0AH,0DH,'$' ;换行

DATA ENDS

STACK1 SEGMENT STACK

DW 100 DUP(0)

STACK1 ENDS

CODE SEGMENT

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

START: MOV AX,DATA

MOV DS,AX

;--------------INIT----------------

MOV DX,0EC03H;控制寄存器地址

MOV AL,10H;计数器0,低字节,方式0,

二进制计数

OUT DX,AL ;写入控制字

MOV DX,0EC00H

MOV AL,N

OUT DX,AL ;写入计数初值

MOV CL,N

L0: ;MOV AL,0 ;计数器0锁存

;MOV DX,IO8253

;OUT DX,AL

MOV DX,0EC00H

IN AL,DX ;读取当前数值

CMP AL,CL

JNE L0;若AL不等于CL,则继续到L0循环

DEC CL ;更改CL值

MOV DL,AL

CMP DL,09H ;是0~9吗?

JLE ASCI

ADD DL,07H ;是A~F

ASCI: ADD DL,30H

MOV AH,02H ;单字符输出计数器当前值

INT 21H

MOV DX,OFFSET CHL;输出字符串换行

MOV AH,09H

INT 21H

CMP CL,0

JNL L0;CL不小于0时,继续循环

;------------------------------

MOV AH,4CH

INT 21H

CODE ENDS

END START

2)

DATA SEGMENT

X DB ?

DATA ENDS

STACK1 SEGMENT STACK

DW 100H DUP(0) STACK1 ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK1 START: MOV AX,DATA

MOV DS,AX

MOV AL,36H

MOV DX,0EC03H ;写计数器0控制字

OUT DX,AL

MOV AX,1000 ;写计数器0初值

MOV DX,0EC00H

OUT DX,AL;先写低字节后写高字节

MOV AL,AH

OUT DX,AL

;------------------------------------- MOV AL,76H

MOV DX,0C403H

OUT DX,AL ;写计数器1控制字

MOV AX,1000 ;写计数器0初值

MOV DX,0C401H

OUT DX,AL

MOV AL,AH ;先写低字节后写高字节

OUT DX,AL

CODE ENDS

END START

串行通讯

一、实验目的

1、进一步了解串行通信的基本原理。

2、掌握串行接口芯片8250的工作原理和编程方法。

3、熟悉PC机串行口的基本连接方法

二、实验内容

1、PC机RS-232串口自发自收。

按照PC机串口自发自收的连接方法连线。编写PC机自发自收串行通信程序,要求:从键盘输入一个字符,将字符通过串口发送出去,再由此串口将字符接收回来并在屏幕上显示,实现自发自收。

2、两台PC机间RS-232串口通信。

按照PC机RS-232串口直接互连的方法连接两台PC机。编写PC机直接互连串行通信程序;要求:由甲机键盘键入字符经串口发送给乙机,再由乙机通过串口接收字符并显示在屏幕上。当键入感叹号“!”,结束收发过程。

三、实验原理

1、异步通信

本实验以字符为单位进行传送,每传送一个字符,以起始位作为开始标志,以停止位作为结束标志。

异步串行通信的工作过程是:传送开始后,接收设备不断地检测传输线是否有起始位到来,当接收到一系列的“1”(空闲或停止位)之后,检测到第一个“0”,说明起始位出现,就开始接收所规定的数据位、奇偶校验位及停止位。经过接收器处理,将停止位去掉,把数据位拼装成一字节数据,并且经奇偶校验无错误,才算是正确地接收到了一个字符。当一个字符接收完毕,接收设备又继续测试传输线,监视“0”电平的到来(下一个字符的开始),直到全部数据接收完毕。

D0 D1… Dn

空闲位

数据位奇

空闲位

2、8250各部分功能说明

8250片内有10个寄存器,其中有几个是共用地址的,其识别由线路控制寄存器(LCR)的最高位DLAB来决定。各寄存器的地址如下:

3、数据发送和接收:

四、程序清单

1.自发自收

CODE SEGMENT

ASSUME CS:CODE

START: MOV AL,10000000B ;8250初始化,设DLAB=1 MOV DX,3FBH

OUT DX,AL

MOV AX,30H ;写入除数低字节

MOV DX,3F8H

OUT DX,AL

MOV AL,AH ;写入除数高字节

MOV DX,3F9H

OUT DX,AL

MOV AL,00001010B ;7位数据,1位停止,奇校验

MOV DX,3FBH

OUT DX,AL ;写入线路控制寄存器

MOV AL,00010000B ;自检控制

MOV DX,3FCH

OUT DX,AL ;写入Modem控制寄存器

MOV AL,0

MOV DX,3F9H

OUT DX,AL ;写中断允许寄存器,屏蔽中断

WAIT_FOR:

MOV DX,3FDH ;读线路状态寄存器

IN AL,DX

TEST AL,00011110B ;出错否

JNZ ERROR ;出错,转ERROR

TEST AL,00000001B ;接收数据就绪否

JNZ RECEIVE ;就绪,转接受

TEST AL,00100000B ;发送寄存器空否,不空,返回等待JZ WAIT_FOR

MOV AH,1

INT 21H ;读键盘

MOV DX,3F8H ;发送

OUT DX,AL

JMP WAIT_FOR ;返回等待

RECEIVE:

PUSH CX

PUSH AX

MOV CX,02000H

T1: MOV AX,0FFFFH

T2: DEC AX

JNZ T2

LOOP T1 ;延时程序

MOV DX,3F8H ;读接收数据

IN AL,DX

AND AL,01111111B ;保留7位数据

CMP AL,03H ;是Ctrl+C?

JNZ CHAR

MOV AH,4CH ;返回DOS

INT 21H

CHAR: PUSH AX

MOV DL,AL

MOV AH,2H ;显示接收字符

INT 21H

POP AX

JMP WAIT_FOR ;返回等待

ERROR: MOV DX,3FDH ;出错则清除线路状态寄存器IN AL,DX

MOV DL,'?' ;显示'?'

MOV AH,02H

INT 21H

JMP WAIT_FOR

CODE ENDS

END START

2.双机通信

(1)发送端:

CODE SEGMENT

ASSUME CS:CODE

START: MOV AL,80H ;8250初始化,设DLAB=1 MOV DX,3FBH

OUT DX,AL

MOV AX,30H

MOV DX,3F8H

OUT DX,AL ;写入除数低字节

MOV AL,AH

INC DX

OUT DX,AL ;写入除数高字节

MOV AL,0AH ;7位数据,1位停止,奇校验

MOV DX,3FBH

OUT DX,AL ;写入线路控制寄存器

MOV AL,03H

MOV DX,3FCH

OUT DX,AL ;写入Modem控制寄存器

MOV AL,0

MOV DX,3F9H

OUT DX,AL ;写中断允许寄存器,屏蔽所有中断

WAIT1: MOV DX,3FDH ;读线路状态寄存器

IN AL,DX

TEST AL,1EH ;出错否

JNZ ERROR

;TEST AL,01H ;接收数据就绪否

;JNZ SEND ;发送

TEST AL,20H ;发送寄存器空否,不空,返回等待

JZ WAIT1

SEND: MOV AH,1

INT 21H ;读键盘

CMP AL,21H ;是'!'?

JZ EXIT ;是,返回操作系统

MOV DX,3F8H ;不是,则发送

OUT DX,AL

JMP WAIT1 ;返回等待

ERROR: MOV DX,3FDH ;出错则清除线路状态寄存器

IN AL,DX

MOV DL,'?' ;显示'?'

MOV AH,02H

INT 21H

JMP WAIT1

EXIT: MOV AH,4CH

INT 21H

CODE ENDS

END START

(2)接收端:

CODE SEGMENT

ASSUME CS:CODE

START: MOV AL,80H ;8250初始化

MOV DX,3FBH

OUT DX,AL

MOV AX,30H ;写除数

MOV DX,3F8H

OUT DX,AL ;写入除数低字节

MOV AL,AH

INC DX

MOV DX,3F9H

OUT DX,AL ;写入除数高字节

MOV AL,0AH

MOV DX,3FBH

OUT DX,AL ;写入线路控制寄存器

MOV AL,03H

MOV DX,3FCH

OUT DX,AL ;写入Modem控制寄存器

MOV AL,0

MOV DX,3F9H

OUT DX,AL ;写中断允许寄存器,屏蔽所有中断

WAIT1: MOV DX,3FDH ;读线路状态寄存器

IN AL,DX

TEST AL,1EH ;出错否

JNZ ERROR

TEST AL,01H ;接收数据就绪否

JNZ RECEIVE ;转接收

;TEST AL,20H ;发送寄存器空否,不空,返回等待

;JZ WAIT1

JMP WAIT1 ;均返回等待

RECEIVE: MOV DX,3F8H ;读接收数据

IN AL,DX

AND AL,01111111B ;保留位数据

CMP AL,21H ;是'!'?

JNZ CHAR

MOV AH,4CH ;返回操作系统

INT 21H

CHAR: PUSH AX

MOV DL,AL

MOV AH,2 ;显示接受字符

INT 21H

POP AX

JMP WAIT1 ;返回等待

ERROR: MOV DX,3FDH ;出错则清除线路状态寄存器 IN AL,DX

MOV DL,'?' ;显示'?'

MOV AH,02H

INT 21H

JMP WAIT1

CODE ENDS

END START

课程综合实验(抢答器)

一、实验目的

1、了解微机化竞赛抢答器的基本原理。

2、进一步学习使用并行接口。

二、实验内容

图5-4为竞赛抢答器(模拟)的原理图,逻辑开关K0~K7代表竞赛抢答按钮0~7号,当某个逻辑电平开关置“1”时,相当某组抢答按钮按下。在七段数码管上将其组号(0~7)显示出来,并使喇叭响一下。从键盘上按空格键开始下一轮抢答,按其它键程序退出。

8255动态分配地址:

控制寄存器: 0EC0BH

A口地址: 0EC08H

C口地址: 0EC0AH 三、程序流程图

四、程序清单

DATA SEGMENT

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

DATA ENDS

STACK1 SEGMENT STACK

DW 100H DUP(0)

STACK1 ENDS

CODE SEGMENT

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

START: MOV AX,DATA

MOV DS,AX

;-------------------------------------------------- MOV DX,0EC0BH

MOV AL,89H

OUT DX,AL ;对8255进行初始化

L0: MOV DX,0EC0AH

IN AL,DX ;读C口状态

CMP AL,0 ;如果为0则循环

JZ L0

MOV BL,0

L1: INC BL

SHR AL,1 ;将AL逻辑右移

JNC L1

DEC BL

MOV AL,BL ;求出组号

MOV BX,OFFSET LIST ; 七段显示代码表的首址送BX AND AX,00FFH ; 屏蔽AX高字节,组号

ADD BX,AX ; 形成显示字符的地址

MOV AL,[BX] ; 取出字符送AL

MOV DX,0EC08H

OUT DX,AL ; 送到A口输出显示

MOV DL,7

MOV AH,2

INT 21H ;响铃功能调用

MOV AH,01H

INT 21H

CMP AL,20H ;当为空格时跳到CLOSE

JZ CLOSE

MOV AH,4CH

INT 21H

CLOSE: MOV AL,0

MOV DX,0EC08H

OUT DX,AL

JMP L0

CODE ENDS

END START

实验总结

做完了微机的实验之后感触很多,实践是检验自己知识掌握程度的最好工具。做实验之前感觉自己这方面的知识点掌握的还是很牢固的,做了试验之后才发现了自己的不足。另外微机实验让我有种学以致用的感觉,通过动手操作也提高了我对微机这门课程的兴趣。最后给实验室一些建议:1:希望能把实验室的电脑整体杀一下毒,我身边有好多同学把程序拷贝到自己电脑时出现了电脑死机,系统崩溃的问题,给学习生活带来了很大的不便。2:实验室里有很多试验箱是有问题的,会影响实验的完成,希望学校能够及时更换。

操作系统-Linux课程实验报告

实验、 Linux Ubuntu的安装、创建新的虚拟机VMWare 实验 Shell编程 1.实验目的与内容 通过本实验,了解Linux系统的shell机制,掌握简单的shell编程技巧。 编制简单的Shell程序,该程序在用户登录时自动执行,显示某些提示信息,如“Welcome to Linux”, 并在命令提示符中包含当前时间、当前目录和当前用户名等基本信息。 2.程序源代码清单 #include<> #include int main(){ printf("Hello Linux\n"); int pid; int state; int pfd[2]; pipe(pfd); if (fork()==0){ printf("In the grep progress\n"); dup2(pfd[0],0); close(pfd[0]); close(pfd[1]); execlp("grep","grep","sh",0); perror("exelp grep error"); } esle if(fork()==0){ printf("In the ps progress\n"); dup2(pfd[1],1); close(pfd[0]); close(pfd[1]); execlp("ps","ps","-ef",0); perror("execlp ps -ef"); }

close(pfd[1]); close(pfd[0]); wait(&state); wait(&state); } 实验内核模块 实验步骤: (1).编写内核模块 文件中主要包含init_clock(),exit_clock(),read_clock()三个函数。其中init_clock(),exit_clock()负责将模块从系统中加载或卸载,以及增加或删除模块在/proc中的入口。read_clock()负责产生/proc/clock被读时的动作。 (2).编译内核模块Makefile文件 # Makefile under ifneq ($(KERNELRELEASE),) #kbuild syntax. dependency relationshsip of files and target modules are listed here. obj-m := else PWD := $(shell pwd) KVER ?= $(shell uname -r) KDIR := /lib/modules/$(KVER)/build all: $(MAKE) -C $(KDIR) M=$(PWD) modules clean: rm -rf .*.cmd *.o *. *.ko .tmp_versions *.symvers *.order endif 编译完成之后生成模块文件。 (3).内核模块源代码 #include #include #include #include #include #include #define MODULE #define MODULE_VERSION "" #define MODULE_NAME "clock" struct proc_dir_entry* my_clock; int read_clock(char* page, char** start, off_t off, int count, int* eof, void* data) { int len; struct timeval xtime;

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

南通大学电子信息学院 微机原理课程设计 报告书 课题名: 班级: 姓名: 学号: 指导老师: 日期: 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,并报警。电压值可在七段数码管显示,点阵广告屏显示或液晶屏显示。报警形式自行设计,

操作系统实验报告--实验一--进程管理

实验一进程管理 一、目的 进程调度是处理机管理的核心内容。本实验要求编写和调试一个简单的进程调度程序。通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。 二、实验内容及要求 1、设计进程控制块PCB的结构(PCB结构通常包括以下信息:进程名(进程ID)、进程优先数、轮转时间片、进程所占用的CPU时间、进程的状态、当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删)。为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的轮转时间数以及进程需运行的时间片数的初始值均由用户给定。 2、系统资源(r1…r w),共有w类,每类数目为r1…r w。随机产生n进程P i(id,s(j,k),t),0<=i<=n,0<=j<=m,0<=k<=dt为总运行时间,在运行过程中,会随机申请新的资源。 3、每个进程可有三个状态(即就绪状态W、运行状态R、等待或阻塞状态B),并假设初始状态为就绪状态。建立进程就绪队列。 4、编制进程调度算法:时间片轮转调度算法 本程序用该算法对n个进程进行调度,进程每执行一次,CPU时间片数加1,进程还需要的时间片数减1。在调度算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了1个单位),这时,CPU时间片数加1,进程还需要的时间片数减1,并排列到就绪队列的尾上。 三、实验环境 操作系统环境:Windows系统。 编程语言:C#。 四、实验思路和设计 1、程序流程图

2、主要程序代码 //PCB结构体 struct pcb { public int id; //进程ID public int ra; //所需资源A的数量 public int rb; //所需资源B的数量 public int rc; //所需资源C的数量 public int ntime; //所需的时间片个数 public int rtime; //已经运行的时间片个数 public char state; //进程状态,W(等待)、R(运行)、B(阻塞) //public int next; } ArrayList hready = new ArrayList(); ArrayList hblock = new ArrayList(); Random random = new Random(); //ArrayList p = new ArrayList(); int m, n, r, a,a1, b,b1, c,c1, h = 0, i = 1, time1Inteval;//m为要模拟的进程个数,n为初始化进程个数 //r为可随机产生的进程数(r=m-n) //a,b,c分别为A,B,C三类资源的总量 //i为进城计数,i=1…n //h为运行的时间片次数,time1Inteval为时间片大小(毫秒) //对进程进行初始化,建立就绪数组、阻塞数组。 public void input()//对进程进行初始化,建立就绪队列、阻塞队列 { m = int.Parse(textBox4.Text); n = int.Parse(textBox5.Text); a = int.Parse(textBox6.Text); b = int.Parse(textBox7.Text); c = int.Parse(textBox8.Text); a1 = a; b1 = b; c1 = c; r = m - n; time1Inteval = int.Parse(textBox9.Text); timer1.Interval = time1Inteval; for (i = 1; i <= n; i++) { pcb jincheng = new pcb(); jincheng.id = i; jincheng.ra = (random.Next(a) + 1); jincheng.rb = (random.Next(b) + 1); jincheng.rc = (random.Next(c) + 1); jincheng.ntime = (random.Next(1, 5)); jincheng.rtime = 0;

计算机操作系统实验课实验报告

实验报告 实验课程: 计算机操作系统学生姓名:XXX 学号:XXXX 专业班级:软件 2014年12月25日

目录 实验一熟悉Windows XP中的进程和线程.. 3实验二进程调度 (7) 实验三死锁避免—银行家算法的实现 (18) 实验四存储管理 (24)

实验一熟悉Windows XP中的进程和线程 一、实验名称 熟悉Windows XP中的进程和线程 二、实验目的 1、熟悉Windows中任务管理器的使用。 2、通过任务管理器识别操作系统中的进程和线程的相关信息。 3、掌握利用spy++.exe来察看Windows中各个任务的更详细信息。 三、实验结果分析 1、启动操作系统自带的任务管理器: 方法:直接按组合键Ctrl+Alt+Del,或者是在点击任务条上的“开始”“运行”,并输入“taskmgr.exe”。

2、调整任务管理器的“查看”中的相关设置,显示关于进程的以下各项信息,并 完成下表: 表一:统计进程的各项主要信息 3、启动办公软件“Word”,在任务管理器中找到该软件的登记,并将其结束掉。再

从任务管理器中分别找到下列程序:winlogon.exe、lsass.exe、csrss.exe、smss.exe,试着结束它们,观察到的反应是任务管理器无法结束进程, 原因是该系统是系统进程。 4、在任务管理器中找到进程“explorer.exe”,将之结束掉,并将桌面上你打开的所 有窗口最小化,看看你的计算机系统起来什么样的变化桌面上图标菜单都消失了、得到的结论explorer.exe是管理桌面图标的文件(说出explorer.exe进程的作用)。 5、运行“spy++.exe”应用软件,点击按钮“”,切换到进程显示栏上,查看进 程“explorer.exe”的各项信息,并填写下表: 进程:explorer.exe 中的各个线程

嵌入式操作系统实验报告

中南大学信息科学与工程学院实验报告 姓名:安磊 班级:计科0901 学号: 0909090310

指导老师:宋虹

目录 课程设计内容 ----------------------------------- 3 uC/OS操作系统简介 ------------------------------------ 3 uC/OS操作系统的组成 ------------------------------ 3 uC/OS操作系统功能作用 ---------------------------- 4 uC/OS文件系统的建立 ---------------------------- 6 文件系统设计的原则 ------------------------------6 文件系统的层次结构和功能模块 ---------------------6 文件系统的详细设计 -------------------------------- 8 文件系统核心代码 --------------------------------- 9 课程设计感想 ------------------------------------- 11 附录-------------------------------------------------- 12

课程设计内容 在uC/OS操作系统中增加一个简单的文件系统。 要求如下: (1)熟悉并分析uc/os操作系统 (2)设计并实现一个简单的文件系统 (3)可以是存放在内存的虚拟文件系统,也可以是存放在磁盘的实际文件系统 (4)编写测试代码,测试对文件的相关操作:建立,读写等 课程设计目的 操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。 本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握操作系统开发的基本技能。 I.uC/OS操作系统简介 μC/OS-II是一种可移植的,可植入ROM的,可裁剪的,抢占式的,实时多任务操作系统内核。它被广泛应用于微处理器、微控制器和数字信号处理器。 μC/OS 和μC/OS-II 是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。用户只要有标准的ANSI 的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS-II嵌入到开发的产品中。μC/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB 。μC/OS-II 已经移植到了几乎所有知名的CPU 上。 严格地说uC/OS-II只是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全 可以由用户自己根据需要分别实现。 uC/OS-II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。 uC/OS操作系统的组成 μC/OS-II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。如下图:

贪吃蛇游戏课程设计实验报告全解

辽宁科技大学课程设计说明书 设计题目:基于C#的贪吃蛇游戏 学院、系:装备制造学院 专业班级:计算机科学与技术 学生姓名:叶佳佳 指导教师:丁宁 成绩: 2015年12月12日

目录 一、概述 (1) 1、用C#实现该设计的方法 (1) 2、贪吃蛇游戏说明 (1) 二、实验目的及设计要求 (1) 1、实验目的 (1) 2、实验要求 (2) 三、课程设计具体实现 (2) 1、概要设计 (2) 1.1、设计思想 (2) 1.2、主模块实现 (2) 1.3、主函数流程图 (4) 2、详细设计 (5) 2.1、设计思想 (5) 2.2、具体模块实现: (5) 四、调试过程及运行结果 (10) 1、调试过程 (10) 2、实验结果 (11) 五、实验心得 (12) 六、参考资料 (13) 七、附录:源代码 (13)

一、概述 1、用C#实现该设计的方法 首先应该了解设计要求,然后按照功能设计出实际模块,每个模块都要完成特定的功能,要实现模块间的高内聚,低耦合。设计模块是一个相当重要的环节,模块的数量不宜太多,也不宜太少,要是每个模块都能比较简单的转换成流程图。模块设计完成后,就该给每个模块绘制流程图。流程图要尽可能的简单且容易理解,多使用中文,补一些过长的代码,增加理解难度。此外,流程图应容易转换成代码。 根据流程图编写好代码后在WindowsXP操作系统,https://www.doczj.com/doc/7e10876512.html,2008开发环境下进行运行测试,检查错误,最终设计出可行的程序。 2、贪吃蛇游戏说明 游戏操作要尽可能的简单,界面要尽可能的美观。 编写程序实现贪吃蛇游戏,贪吃蛇游戏是一个深受人们喜欢的游戏:一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被吃掉,这时蛇的身体长一节,同时计10分;接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁、障碍物或身体交叉(蛇头撞到自己的身体),则游戏结束。游戏结束时输出相应得分。 具体要求有以下几点: (1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理; (2)系统设计要实用,采用模块化程序设计方法,编程简练、可用,功能全面; (3)说明书、流程图要清楚; 二、实验目的及设计要求 1、实验目的 .NET课程设计是教学实践环节中一项重要内容,进行此课程设计旨在掌握基础知识的基础上,进一步加深对VC#.NET技术的理解和掌握; 提高和加强学生的计算机应用及软件开发能力,使学生具备初级程序员的基本素质; 培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新 1

微机课设实验报告

微机课程设计 数字温度计实验报告

一、题目: 上位机:完成界面设计与通讯程序 1、能够显示两个温度值,温度精度0.5度,当超出报警温度阈值时,温度 值后又提示字幕。 2、能够设定报警温度阈值 3、每隔一秒将温度值保存至文件存档。当超出报警温度阈值时,温度值后 面有提示。 4、可以对串口进行设置。 下位机:完成电路设计与控制程序 1、用两个DS18B20测温。 2、通过串口与上位机通信,并传输温度值,接受阈值设置。 3、当超出报警温度阈值时,有相应指示灯提示。 4、将当前温度显示LCD1602液晶屏上,当超出报警温度阈值时,温度值后 有提示。 二、原理 DS18B20是DALLS公司推出的“1—wire”接口的数字温度传感器,可以直接将温度转换为9~12串行信号供单片机处理。由于这种传感器只有一个IO口,是单总线串行接口,单片机可以利用串行通信将数据读出并按照LCD 的协议显示在1602液晶屏上。同时,通过PC机与单片机之间的串行通信,可以用PC机控制温度的警戒值以及记录不同时间测量的温度。 三、原理图 图3.1 LCD、18B20以及串口与单片机最小系统连接图

图3.2电源模块 四、流程图 1、上位机流程图 图4.1.1发送数据流程图图4.1.2 接受数据流程图

2、下位机流程图 图4.2.2读出温度子程序流程图 图4.2.1总流程图 图4.2.4计算温度子程序流程图

图4.2.3 温度转换流程图 图4.2.6温度值显示在LCD1602上 图4.2.5 显示数据刷新子程序 五、源程序 1、上位机程序:见附录1; 2、下位机程序:见附录2; 3、实验结果显示(上位机):见附录3。

实时操作系统报告

实时操作系统课程实验报告 专业:通信1001 学号:3100601025 姓名:陈治州 完成时间:2013年6月11日

实验简易电饭煲的模拟 一.实验目的: 掌握在基于嵌入式实时操作系统μC/OS-II的应用中,基于多任务的模式的编程方法。锻炼综合应用多任务机制,任务间的通信机制,内存管理等的能力。 二.实验要求: 1.按“S”开机,系统进入待机状态,时间区域显示当前北京时间,默认模式“煮饭”; 2.按“C”选择模式,即在“煮饭”、“煮粥”和“煮面”模式中循环选择; 3.按“B”开始执行模式命令,“开始”状态选中,时间区域开始倒计时,倒计时完成后进入“保温”状态,同时该状态显示选中,时间区域显示保温时间; 4.按“Q”取消当前工作状态,系统进入待机状态,时间区域显示北京时间,模式为当前模式; 5.按“X”退出系统,时间区域不显示。 6.煮饭时长为30,煮粥时长为50,煮面时长为40. 三.实验设计: 1.设计思路: 以老师所给的五个程序为基础,看懂每个实验之后,对borlandc的操作有了大概的认识,重点以第五个实验Task_EX为框架,利用其中界面显示与按键扫描以及做出相应的响应,对应实现此次实验所需要的功能。 本次实验分为界面显示、按键查询与响应、切换功能、时钟显示与倒计时模块,综合在一起实验所需功能。 2.模块划分图: (1)界面显示: Main() Taskstart() Taskstartdispinit() 在TaskStartDispInit()函数中,使用PC_DispStr()函数画出界面。

(2)按键查询与响应: Main() Taskstart() 在TaskStart()函数中,用if (PC_GetKey(&key) == TRUE)判断是否有按键输入。然后根据key 的值,判断输入的按键是哪一个;在响应中用switch语句来执行对应按键的响应。 (3)切换功能: l计数“C”按 键的次数 M=l%3 Switch(m) M=0,1,2对应于煮饭,煮粥,煮面,然后使用PC_DispStr()函数在选择的选项前画上“@”指示,同时,在其余两项钱画上“”以“擦出”之前画下的“@”,注意l自增。 四.主要代码: #include "stdio.h" #include "includes.h" #include "time.h" #include "dos.h" #include "sys/types.h" #include "stdlib.h" #define TASK_STK_SIZE 512 #define N_TASKS 2 OS_STK TaskStk[N_TASKS][TASK_STK_SIZE]; OS_STK TaskStartStk[TASK_STK_SIZE]; INT8U TaskData[N_TASKS];

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

校园网的组建与应用 摘要: 本文针对实验室的设备环境,对校园网的组网方式进行了研究和模拟,并最终提出了一套完整的校园网组网方案。 实验中我们对路由器、交换机等组网基础设备进行了认真的研究。关于路由器,我们实现了本地基本配置,并分别使用路由器的串口和以太网口实现了不同网段的网络互联,对路由器静态及动态路由机制进行了探究。关于交换机,我们实现了VLAN的划分以及不同VLAN间的相互通信,对广播风暴现象的产生原理及解决方案进行了特定的实验。综合两者的功能,我们对多种网络拓扑结构进行了分析,讨论和改进。最后通过实验和模拟提出了一套完整的校园网组建方案。 在此方案中,我们在实现了网络互通的情况下,我们进行了IP地址的划分,IP地址利用DHCP进行自动分配。并根据模拟实际,对不同的主机进行VLAN划分,同时保证不同VLAN间的相互访问与特定VLAN的保护与单向访问。同时构建内部防火墙保证校园网与外部的安全访问。构建了完整可靠的网络之后,依据校园网的功能和服务需求,我们搭建了FTP服务器,用于提供基础的网络服务。 限于实验室条件的限制,我们的方案并不是完全能够适用于现实的。但是,通过实验使我们对校园网乃至更大的网络有了更加深刻的了解。

目录

一、前言 随着信息的调整膨胀,全球信息已经进入以计算机网络为核心的时代。作为科技先导的教育行业,计算机校园网已是教育进行科研和现代化管理的重要手段。近几年、校园网已经取得很大的发展,中国教育科研网投入运营,全国多所高校校园网络开通联网。 随着学校教育手段的现代化,很多学校已经逐渐开始将学校的管理和教学过程向电子化方向发展,校园网的有无以及水平的高低也将成为评价学校及学生选择学校的新的标准之一,此时,校园网上的应用系统就显得尤为重要。一方面,学生可以通过它在促进学习的同时掌握丰富的计算机及网络信息知识,毫无疑问,这是学生综合素质中极为重要的一部分;另一方面,基于先进的网络平台和其上的应用系统,将极大的促进学校教育的现代化进程,实现高水平的教学和管理。 学校目前正加紧对信息化教育的规划和建设。开展的校园网络建设,旨在推动学校信息化建设,其最终建设目标是将建设成为一个借助信息化教育和管理手段的高水平的智能化、数字化的教学园区网络,最终完成统一软件资源平台的构建,实现统一网络管理、统一软件资源系统,并保证将来可扩展骨干网络节点互联带宽为10G,为用户提供高速接入网络,并实现网络远程教学、在线服务、教育资源共享等各种应用;利用现代信息技术从事管理、教学和科学研究等工作。最终达到在网络方面,更好的对众多网络使用及数据资源的安全控制,同时具有高性能,高效率,不间断的服务,方便的对网络中所有设备和应用进行有效的时事控制和管理。 二、综述 2.1 概述 从物理意义上来说,校园网就是一种局域网。校园网是各类型网络中一大分支,有着非常广泛的应用及代表性。作为新技术的发祥地,学校、尤其是高等院校,和网络的关系是密不可分的。作为“高新技术孵化器”的高校,是知识、人才的高地,资源十分丰富,比其他行业更渴求网络新技术、网络新应用,

微机原理课程设计报告

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

目录 一、课程设计题目................. 错误!未定义书签。 二、设计目的..................... 错误!未定义书签。 三、设计内容..................... 错误!未定义书签。 四、设计所需器材与工具 (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点阵显示器件一片。

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

中南大学课程设计报告 课程:计算机网络课程设计 题目:基于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/7e10876512.html,work.Arp; UPD 实体类:https://www.doczj.com/doc/7e10876512.html,work.Icmp;

操作系统课程设计实验报告

河北大学工商学院 课程设计 题目:操作系统课程设计 学部信息学部 学科门类电气信息 专业计算机 学号2011482370 姓名耿雪涛 指导教师朱亮 2013 年6月19日

主要内容 一、设计目的 通过模拟操作系统的实现,加深对操作系统工作原理理解,进一步了解操作系统的实现方法,并可练习合作完成系统的团队精神和提高程序设计能力。 二、设计思想 实现一个模拟操作系统,使用VB、VC、CB等windows环境下的程序设计语言,以借助这些语言环境来模拟硬件的一些并行工作。模拟采用多道程序设计方法的单用户操作系统,该操作系统包括进程管理、存储管理、设备管理、文件管理和用户接口四部分。 设计模板如下图: 注:本人主要涉及设备管理模块

三、设计要求 设备管理主要包括设备的分配和回收。 ⑴模拟系统中有A、B、C三种独占型设备,A设备1个,B设备2个,C设备2个。 ⑵采用死锁的预防方法来处理申请独占设备可能造成的死锁。 ⑶屏幕显示 注:屏幕显示要求包括:每个设备是否被使用,哪个进程在使用该设备,哪些进程在等待使用该设备。 设备管理模块详细设计 一、设备管理的任务 I/O设备是按照用户的请求,控制设备的各种操作,用于完成I/O 设备与内存之间的数据交换(包括设备的分配与回收,设备的驱动管理等),最终完成用户的I/O请求,并且I/O设备为用户提供了使用外部设备的接口,可以满足用户的需求。 二、设备管理函数的详细描述 1、检查设备是否可用(主要代码) public bool JudgeDevice(DeviceType type) { bool str = false; switch (type) { case DeviceType.a: {

微机控制技术实验报告

《微机控制技术》课程设计报告 课题:最少拍控制算法研究专业班级:自动化1401 姓名: 学号: 指导老师:朱琳琳 2017年5月21日

目录 1. 实验目的 (3) 2. 控制任务及要求 (3) 3. 控制算法理论分析 (3) 4. 硬件设计 (5) 5. 软件设计 (5) 无纹波 (5) 有纹波 (7) 6. 结果分析 (9) 7. 课程设计体会 (10)

1.实验目的 本次课程设计的目的是让同学们掌握微型计算机控制系统设计的一般步骤,掌握系统总体控制方案的设计方法、控制算法的设计、硬件设计的方法。学习并熟悉最少拍控制器的设计和算法;研究最少拍控制系统输出采样点间纹波的形成;熟悉最少拍无纹波控制系统控制器的设计和实现方法。复习单片机及其他控制器在实际生活中的应用,进一步加深对专业知识的认识和理解,使自己的设计水平、对所学知识的应用能力以及分析问题解决问题的能力得到全面提高。 2.控制任务及要求 1.设计并实现具有一个积分环节的二阶系统的最少拍有纹波控制和无纹波控制。 对象特性G (s )= 采用零阶保持器H 0(s ),采样周期T =,试设计单位阶跃,单位速度输入时的有限拍调节器。 2.用Protel 、Altium Designer 等软件绘制原理图。 3.分别编写有纹波控制的算法程序和无纹波控制的算法程序。 4.绘制最少拍有纹波、无纹波控制时系统输出响应曲线,并分析。 3.控制算法理论分析 在离散控制系统中,通常把一个采样周期称作一拍。最少拍系统,也称为最小调整时间系统或最快响应系统。它是指系统对应于典型的输入具有最快的响应速度,被控量能经过最少采样周期达到设定值,且稳态误差为定值。显然,这样对系统的闭环脉冲传递函数)(z φ提出了较为苛刻的要求,即其极点应位于Z 平面的坐标原点处。 1最少拍控制算法 计算机控制系统的方框图为: 图7-1 最少拍计算机控制原理方框图 根据上述方框图可知,有限拍系统的闭环脉冲传递函数为: ) ()(1)()()()()(z HG z D z HG z D z R z C z +==φ (1) )(1)()(11)()()(1z z HG z D z R z E z e φφ-=+== (2) 由(1) 、(2)解得:

嵌入式实时操作系统实验报告

嵌入式实时操作系统实验报告 任务间通信机制的建立 系别计算机与电子系 专业班级***** 学生姓名****** 指导教师 ****** 提交日期 2012 年 4 月 1 日

一、实验目的 掌握在基于嵌入式实时操作系统μC/OS-II的应用中,任务使用信号量的一般原理。掌握在基于优先级的可抢占嵌入式实时操作系统的应用中,出现优先级反转现象的原理及解决优先级反转的策略——优先级继承的原理。 二、实验内容 1.建立并熟悉Borland C 编译及调试环境。 2.使用课本配套光盘中第五章的例程运行(例5-4,例5-5,例5-6),观察运行结果,掌握信号量的基本原理及使用方法,理解出现优先级反转现象的根本原因并提出解决方案。 3.试编写一个应用程序,采用计数器型信号量(初值为2),有3个用户任务需要此信号量,它们轮流使用此信号量,在同一时刻只有两个任务能使用信号量,当其中一个任务获得信号量时向屏幕打印“TASK N get the signal”。观察程序运行结果并记录。 4. 试编写一个应用程序实现例5-7的内容,即用优先级继承的方法解决优先级反转的问题,观察程序运行结果并记录。 5.在例5-8基础上修改程序增加一个任务HerTask,它和YouTask一样从邮箱Str_Box里取消息并打印出来,打印信息中增加任务标识,即由哪个任务打印的;MyTask发送消息改为当Times为5的倍数时才发送,HerTask接收消息采用无等待方式,如果邮箱为空,则输出“The mailbox is empty”, 观察程序运行结果并记录。 三、实验原理 1. 信号量 μC/OS-II中的信号量由两部分组成:一个是信号量的计数值,它是一个16位的无符号整数(0 到65,535之间);另一个是由等待该信号量的任务组成的等待任务表。用户要在OS_CFG.H中将OS_SEM_EN开关量常数置成1,这样μC/OS-II 才能支持信号量。

网络课程设计实验报告--QQ聊天实现

计算机网络课程设计报告 设计选题网络聊天室 姓名马继鸣 学号 0909090630 完成时间 2012-1-12 一、需求分析

聊天工具大多数由客户端程序和服务器程序外加服务器端,本程序采用客户机/服务器架构模式。通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能。用多线程可完成多点对多点的聊天。 主要有两个应用程序,分别为服务器程序和客户端程序。服务器应用程序主要用于消息转发,以及向所有用户发送系统消息等;客户端应用程序主要用于客户聊天记录的显示和信息输入。采用Client/Server(C/S)体系结构,即客户机/服务器体系结构。聊天服务器专门用于监控用户状态和转发消息,客户端负责接收消息的用户序列和消息文本发送到服务器。该聊天系统实现群聊,用户登陆,退出聊天系统等功能。 二. 设计 1.设计思想: 课程设计中利用JAVA实现基于C/S模式的聊天程序。聊天室共分为服 务器端和客户端两部分,服务器端程序主要负责侦听客户发来的消息,客 户端登录到服务器端才可以实现正常的聊天功能。

2.功能设计 (1)服务器端的主要功能如下。 在特定端口上进行侦听,等待客户端连接。用户可以配置服务端的侦听端口,默认端口为10000. 当停止服务时,断开所有用户连接。 (2)客户端的主要功能如下。 连接到已经开启聊天服务的服务端。 当服务器端开启的话,用户可以随时登录与注销。

用户可以向所有人发送消息。 3.详细设计 聊天室服务器端设计 聊天室服务器中主要的功能文件的功能如下: MyButLis.java 主要用于添加事件侦听和动作处理,具体是服务器按钮中的“终止”“发送”的处理。 public class MyButLis implements ActionListener private MyServe server; private JTextField filed1; public void actionPerformed(ActionEvent e) MyChatSet.java 服务器的线程队列,运行的方法,新增一个用户,则增加一个线程,并可以返回应答消息,给其余用户发送上下线信息,发送聊天信息(群聊私聊虽然已写,但是不知为何没有实现),发送用户列表。关键在于除了线程之外,还定义了传输数据时的协议内容,如何分辨不同的信息,如聊天信息,登陆信息,上下线信息,并把信息完整准确的传递。 public static ArrayList servers=new ArrayList();//线程队列 public static void addThread(MyserThread th) //增加一个服务器线程对象 public static void sendReMess(String type,String state,String s,MyserThread myth)//返回应答信息 public static void SendOSMess(String type,String user)//其他用户上下线信息 public static void SendChatMess(String type,String sender,String reciver,String Mess)//聊天信息 public static void SendList//用户列表 MyCheckTool.java 保存用户的登陆信息,在其中建立一个码表,并且可以判断登陆信息是否合法。 //建立码表,用以保存用户信息 private static Map maps=new HashMap(); public static boolean CheckUser(MyUserInfo user)// 验证用户名

操作系统实验报告

操作系统教程 实 验 指 导 书 姓名: 学号: 班级:软124班 指导老师:郭玉华 2014年12月10日

实验一WINDOWS进程初识 1、实验目的 (1)学会使用VC编写基本的Win32 Consol Application(控制台应用程序)。 (2)掌握WINDOWS API的使用方法。 (3)编写测试程序,理解用户态运行和核心态运行。 2、实验内容和步骤 (1)编写基本的Win32 Consol Application 步骤1:登录进入Windows,启动VC++ 6.0。 步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location”处输入工程目录。创建一个新的控制台应用程序工程。 步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++ Source File”, 然后在“File”处输入C/C++源程序的文件名。 步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。编译成可执行文件。 步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows“命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序: E:\课程\os课\os实验\程序\os11\debug>hello.exe 运行结果 (如果运行不成功,则可能的原因是什么?) : 有可能是因为DOS下路径的问题 (2)计算进程在核心态运行和用户态运行的时间 步骤1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。 步骤2:在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。 步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。 E:\课程\os课\os实验\程序\os12\debug>time TEST.exe 步骤4:运行结果 (如果运行不成功,则可能的原因是什么?) : 因为程序是个死循环程序 步骤5:分别屏蔽While循环中的两个for循环,或调整两个for循环的次数,写出运行结果。 屏蔽i循环: 屏蔽j循环: _______________________________________________________________________________调整循环变量i的循环次数:

微机系统课程设计实验报告---交通信号灯自动控制模拟指示系统[13页].docx

微机系统课程设计实验报告

课题:交通信号灯自动控制模拟指示系统 一、课程设计目的 1.掌握CPU与各芯片管脚连接方法,提高借口扩展硬件电路 的连接能力。 2.加深对定时器、计数器和并行借口芯片的工作方式和编程 方法的理解。 3.掌握交通信号灯自动控制系统的设计思路和实现方法。 二、课程设计内容 设计并实现十字路口通信号自动控制模拟指示系统。设该路口由A、B两条通行相交而成,四个路口各设一组红、黄、绿三色信号灯,用两位数码管作倒计时显示。 三、应用系统设计方案 交通信号灯的亮灭时间及数码管显示时间可以通过8253来控制,8253的时钟源采用时钟信号发生器与分频电路提供,通过计算获得计数初值为1000。按照需要设定工作在方式3. 交通信号灯及数码管可以采用系统提供的相应模块,控制可以通过8255可编程并行借口,PA口控制红黄绿交通灯的亮灭,PB口和PC口控制时间显示数码管的段和位。PC0作为OUT1的输入。

四、系统测试结果 1.基本功能实现 (1)以秒为计时单位,两位数码管以十进制递减计数显示通行剩余时间,在递减计数为零瞬间转换。即南 北的绿灯、东西的红灯同时亮30秒,同时南北路口 数码管递减显示绿灯剩余时间;为0时,南北的黄 灯闪烁5秒钟,同时东西的红灯继续亮;南北的红 灯、东西的绿灯同时亮30秒,同时东西路口数码管 递减显示绿灯剩余时间;为0时,南北红灯继续亮, 同时东西的黄灯闪烁5秒;若不结束,则开始循环。 (2)通过键盘可以对红、黄、绿三色信号灯所亮时间再0~99内任意设定。 (3)十字路口的通行气势状态可自行设定,系统启动后自动运行,按“Q”退出。 2、发挥部分实现 (1)增加人工干预模式,在特殊情况下可通过人工干预,手动控制A、B交通灯的切换时间,并可以随时切 换为自动运行模式。 (2)增加夜间控制功能,交通灯在进入夜间模式后,A、B干道上红、绿灯均不亮,黄灯信号灯闪烁。 (3)增加红灯倒计时显示。

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