文档库 最新最全的文档下载
当前位置:文档库 › 微机接口技术与应用实验报告

微机接口技术与应用实验报告

微机接口技术与应用实验报告
微机接口技术与应用实验报告

微机接口技术与应用课程设计

学校名称:

院系:

班级:

小组成员:

一.实验名称

交通灯设计

二.实验目的

用软件模拟交通灯并在硬件设备实现。

三.实验环境

四.实验说明

交通灯分南北向和东西,一边三个,分别是绿红黄,红绿黄灯交替有四种情况,依次为:0--东西绿灯,南北红灯1--东西黄灯,南北红灯2--东西红灯,南北绿灯3--东西红的,南北黄灯。当有黄灯亮时停顿1000s,其余的停顿2000s。

五.连接试验箱

8255与280~28f连接,PA0,PA1,PA2,PA3,PA4,PA5口分别与L0,L1,L2,5,L6,L7相连接。

六.实验代码

#include

#include

#include "ApiExusb.h"

#pragma comment(lib,"ApiExusb.lib")

#include

// 回调函数声明

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);

// 初始化窗口类声明

BOOL InitWindowsClass(HINSTANCE hInstance, char *lpszClassName);

// 初始化窗口声明

BOOL InitWindows(HINSTANCE hInstance, int nCmdShow, char *lpszClassName, char *lpTitle);

WNDCLASS wndclass; // 定义一个窗口类

HWND hwnd; // 定义一个窗口句柄

int nNum=0; // 为灯的状态赋初值,记录交通灯的状态,0--东西绿灯,南北红灯1--东西黄灯,南北红灯

//2--东西红灯,南北绿灯3--东西红的,南北黄灯

int status[4]={0x21,0x11,0x0c,0x0a}; //控制试验箱灯的状态

POINT pt[6]={{20,20},{80,20},{140,20},

{20,80},{80,80},{140,80}}; //六盏灯的圆心坐标上面为东西,下面为南北,从左到右依次为绿黄红

int WINAPI WinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR lpCmdLine,

int nCmdShow)

{

MSG Msg; // 定义消息

char lpszClassName[] = "交通灯"; // 窗口的类名

char lpTitle[] = "基本绘图-交通灯"; // 窗口标题名

if(!Startup()) /*打开设备*/

{

//printf("ERROR: Open Device Error!\n");

return 0;

//exit(0);

}

printf("Enter any key will return:\n");

PortWriteByte(0x28b,0x80); //向控制口写命令,控制c口输出

// 初始化窗口类

if (!InitWindowsClass(hInstance, lpszClassName))

{

return FALSE;

}

// 初始化窗口

if (!InitWindows(hInstance, nCmdShow, lpszClassName, lpTitle))

{

return FALSE;

}

//消息循环

while(GetMessage(&Msg, NULL, 0, 0))

{

TranslateMessage(&Msg);

DispatchMessage(&Msg);

}

Cleanup(); /*关闭设备*/

return Msg.wParam; // 程序终止时将信息返回系统

}

// 初始化窗口类定义

BOOL InitWindowsClass(HINSTANCE hInstance, char *lpszClassName)

{

//1、窗口类定义

wndclass.style = 0; // 窗口类型为默认类型

wndclass.lpfnWndProc = WndProc; // 窗口处理函数为WNDPROC

wndclass.cbClsExtra = 0; // 窗口类无扩展

wndclass.cbWndExtra = 0; // 窗口实例无扩展

wndclass.hInstance = hInstance; // 当前实例句柄

wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); // 窗口的最小化图标为默认图标

wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); // 窗口采用箭头光标

wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); // 窗口采用白色背景

wndclass.lpszMenuName = NULL; // 窗口中无菜单

wndclass.lpszClassName = lpszClassName; //类名为lpClassName

//2、注册窗口类

if (!RegisterClass(&wndclass))

{ // 如果注册失败则发出警告声音

MessageBeep(0);

return FALSE;

}

return TRUE;

}

// 初始化窗口声明

BOOL InitWindows(HINSTANCE hInstance, int nCmdShow, char *lpszClassName, char *lpTitle)

//3、创建窗口

hwnd = CreateWindow(

lpszClassName,

lpTitle,

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,

0,

600,

450,

NULL,

NULL,

hInstance,

NULL

);

//4、显示窗口

ShowWindow(hwnd, nCmdShow);

UpdateWindow(hwnd);

return TRUE;

}

// 回调函数定义

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)

{

HDC hDC; // 定义设备环境句柄

HPEN hPen; // 定义画笔句柄

HBRUSH hBrush; // 定义画刷句柄

PAINTSTRUCT PtStr; // 定义包含绘制信息的结构体变量

int R = 10;// 定义圆的半径

switch(message)

{

case WM_KEYDOWN: //响应按键消息

//----未完待续

break;

case WM_PAINT:

{ // 处理绘图消息

hDC = BeginPaint(hwnd, &PtStr); // 得到设备句柄

SetMapMode(hDC, MM_ANISOTROPIC); // 设置映像模式

SetWindowExtEx(hDC, 400, 300, NULL); // 设置窗口区域(逻辑单位)400,300

SetViewportExtEx(hDC, 600, 450, NULL); // 设置视口区域(物理单位)

SetViewportOrgEx(hDC, 200, 200, NULL); // 设置视口原点坐标为(300,200)

hPen = (HPEN)GetStockObject(BLACK_PEN);

SelectObject(hDC, hPen);

// 绘制六盏交通灯外圆

int i=0;

if(status[nNum]&0x20)

hBrush = CreateSolidBrush(RGB(0, 255, 0)); //东西为绿灯else

hBrush = CreateSolidBrush(RGB(255, 255, 255));

SelectObject(hDC, hBrush);

Ellipse(hDC,pt[i].x-R,pt[i].y-R,pt[i].x+R,pt[i].y+R);

i++;

//东西为黄灯

if(status[nNum]&0x10)

hBrush = CreateSolidBrush(RGB(255, 255, 0));

else

hBrush = CreateSolidBrush(RGB(255, 255, 255));

SelectObject(hDC, hBrush);

Ellipse(hDC,pt[i].x-R,pt[i].y-R,pt[i].x+R,pt[i].y+R);

i++;

//东西为红灯

if(status[nNum]&0x08)

hBrush = CreateSolidBrush(RGB(255, 0, 0));

else

hBrush = CreateSolidBrush(RGB(255, 255, 255));

SelectObject(hDC, hBrush);

Ellipse(hDC,pt[i].x-R,pt[i].y-R,pt[i].x+R,pt[i].y+R);

i++;

//南北为绿灯

if(status[nNum]&0x04)

hBrush = CreateSolidBrush(RGB(0, 255, 0));

else

hBrush = CreateSolidBrush(RGB(255, 255, 255));

SelectObject(hDC, hBrush);

Ellipse(hDC,pt[i].x-R,pt[i].y-R,pt[i].x+R,pt[i].y+R);

i++;

//南北为黄灯

if(status[nNum]&0x02)

hBrush = CreateSolidBrush(RGB(255, 255, 0));

else

hBrush = CreateSolidBrush(RGB(255, 255, 255));

SelectObject(hDC, hBrush);

Ellipse(hDC,pt[i].x-R,pt[i].y-R,pt[i].x+R,pt[i].y+R);

i++;

//南北为红灯

if(status[nNum]&0x01)

hBrush = CreateSolidBrush(RGB(255, 0, 0));

else

hBrush = CreateSolidBrush(RGB(255, 255, 255));

SelectObject(hDC, hBrush);

Ellipse(hDC,pt[i].x-R,pt[i].y-R,pt[i].x+R,pt[i].y+R);

i++;

PortWriteByte(0x28a,status[nNum]);

if(kbhit())

exit(0);

if((status[nNum]&0x02)||(status[nNum]&0x10)) //有黄灯亮,则睡1000,否则睡2000

Sleep(1000);

else

Sleep(2000);

nNum=(++nNum)%4; //控制交通灯循环

InvalidateRect(hwnd, NULL, 1); // 重绘窗口区域

DeleteObject(hPen);

DeleteObject(hBrush);

EndPaint(hwnd, &PtStr);

break;

}

case WM_DESTROY:

{

PostQuitMessage(0);

}

default:

{

return DefWindowProc(hwnd, message, wParam, lParam);

}

}

return 0;

}

七.实验现象

试验箱上红绿灯与Win32执行出来的图形界面上的模拟红绿灯交替亮现象是同步的。

八.实验总结

在实验的过程中,出现头文件不存在的情况,解决的方法是在options->directory添加文件API_C的路径,试验箱启动不成功,检查连接情况,usb是否连接好,连线是否插紧或线是否是好的,一步步纠正了错误之后得到了想要结果,如实验现象中所描述的。进过此次实验,更加认识到基础知识的重要性,还有就是一定要经常动手,将所学的基础知识应用于实践中。以后会继续学习接口技术和嵌入式编程,以期取得更大的进步。

出师表

两汉:诸葛亮

先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。

宫中府中,俱为一体;陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理;不宜偏私,使内外异法也。

侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下:愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。

将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰“能”,是以众议举宠为督:愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。

亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之、信之,则汉室之隆,可计日而待也。

臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。

先帝知臣谨慎,故临崩寄臣以大事也。受命以来,夙夜忧叹,恐托付不效,以伤先帝之明;故五月渡泸,深入不毛。今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。此臣所以报先帝而忠陛下之职分也。至于斟酌损益,进尽忠言,则攸之、祎、允之任也。

愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨诹善道,察纳雅言,深追先帝遗诏。臣不胜受恩感激。

今当远离,临表涕零,不知所言。

微机原理与接口技术实验报告

微机原理与接口技术实验报告 班级:自动化(铁道信号) 姓名: ***** 学号: 1121**** 授课教师:福恩

目录 1.实验一 (3) 2. 实验二 (8) 3.实验三 (13) 4.实验四 (22) 5.实验五 (26) 6.实验六 (33) 7.参考文献 (38)

实验一交通灯控制实验 一.实验目的 通过应用接口技术设计十字路口、复杂路口交通灯控制系统,学会应用“微机原理与接口技术”课程所学的X86汇编语言和接口技术掌握可编程并行接口芯片的硬件设计、软件编程,实现十字路口交通灯的模拟控制并思考计算机如何应用在各种控制系统中。 (1)掌握利用X86汇编语言技巧 (2)掌握X86微处理器与可编程并行接口芯片8255A硬件电路设计 (3)熟悉模拟交通灯控制的实现方法并思考如何应用在实际中。 二.实验容 设计一个交通控制系统,该控制系统工作后,交通灯按照如下规律变化: (1)南北路口的绿灯、东西路口的红灯同时亮3秒左右。 (2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。 (3)南北路口的红、东西路口的绿灯同时亮3秒。 (4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。 (5)返回(1)依次循环。 三.实验电路 如下图,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律燃灭。 8255动态分配地址: 控制寄存器:0EC0BH A口地址: 0EC08H C口地址: 0EC0AH

红黄绿红黄绿 图1-1 交通灯实验电路图四.程序流程图 五.源程序 CODE SEGMENT ASSUME CS:CODE ;********************************** 工作状态控制字设置 START: MOV DX,0EC0BH ;写控制端口,地址0EC0BH MOV AL,10010000B ;C口方式0输出 OUT DX,AL

微机原理与接口技术实验报告

新疆农业大学机械交通学院 实习(实验)报告纸 班级:机制072 学号: 073731234 姓名:唐伟 课程名称:微机原理及接口技术实习(实验)名称: DEBUG软件的使用 实验时间: 6.22 指导教师签字:成绩: —、实验目的 1.学习DEBUG软件的基本使用方法。 2.掌握8088/8086的寻址方式。 3.掌握数据传送、算术运算逻辑运算等类指令的基本操作。 二、实验内容与步骤 实验内容: 修改并调试以下程序,使之完成30000H开始的内存单元中存入31个先自然递增然后有自然递减的数据(00H~0F~00H)的功能。程序从CS:0100H开始存放。调试完成后程序命名为PCS.EXE并存盘。 实验步骤: (1)用A命令输入程序; (2)用反汇编U命令显示程序及目标码; 存盘程序命令为PCS1.EXE;

三、思考题 1.EXE文件程序的第一条可执行指令的IP等于多少? 答:EXE文件程序的第一条可执行指令的IP等于0010 。 2.在DEBUG环境下显示的程序和数字是什么形式?标号又是什么形式? 答: DEBUG把所有数据都作为字节序列处理。因此它可以读任何类型的文件。DEB UG可以识别两种数据: 十六进制数据和ASCⅡ码字符。它的显示格式是各个字节的十六进制值以及值在32与126之间的字节的相应ASCⅡ码字符。DEBUG总是用四位十六进制数表示地址。用两位数表示十六进制数据。不支持标号。 3.试述本次实验中你学会的DEBUG命令? 答:本次试验我学会了汇编命令(A命令)、.反汇编命令(U命令)、显示当前环境和寄存器内容(R命令、以十六进制和ASCII码形式显示内存单元内容(D命令)

微机原理与接口技术实验报告

微机原理与接口技术实验报告

2

3

实验一:数据传送 实验学时:2 实验类型:验证 实验要求:必修 一.实验目的 1.学习程序设计的基本方法和技能,掌握用汇编语言设计、编写、调试和运行程序的方法; 学习用全屏幕编辑软件QEDIT.EXE建立源程序(.ASM文件); 学习用汇编软件MASM.EXE对源文件汇编产生目标文件(.OBJ文件); 学习用连接程序LINK.EXE对目标文件产生可执行文件(.EXE文件); 学习用调试软件TD.EXE调试可执行文件; 2.掌握各种寻址方法以及简单指令的执行过程。 二.实验器材 PC机 三.实验组织运行要求 1.利用堆栈实现AX的内容与BX的内容进行交换。堆栈指针SP=2000H,AX=3000H,BX=5000H; 2.汇编、调试、观察、记录结果; ⑴用QEDIT.EXE软件输入汇编语言源程序,以.ASM格式文件存盘; ⑵用MASM对源程序进行汇编产生二进制目标文件(.OBJ文件),再用连接程序LINK产生可执行文件(.EXE文件); ⑶用调试软件TD调试、运行程序,观察、记录结果。 四.实验步骤 1.进入子目录E:>\SY86后,利用QEDIT.EXE(简称Q)送入以下汇编语言源程序,并以M1.ASM文件存盘 ⑴汇编语言程序的上机过程 ①进入\SY86子目录 E:>CD\SY86 E:\SY86> ②进入QEDIT.EXE 编辑界面 E:\SY86> Q ③输入文件名*.ASM(如M1.ASM)后,输入源程序 源程序 DATA SEGMENT PARA PUBLIC’DATA’ ;数据段定义 DB 512 DUP(0) DATA ENDS STACK SEGMENT PARA STACK’STACK’ ;堆栈段定义 DB 512 DUP( ?) 4

微机原理及接口技术实验报告

实验一 DEBUG命令及其基本操作 一.实验目的: 1.熟练掌握DEBUG的常用命令,学会用DEBUG来调试程序。 2.深入了解数据在存储器中的存取方法,了解堆栈中数据的压入与弹出方法。 3.掌握各种寻址方法,了解简单指令的执行过程。 二、实验容: 1.打开计算机,在WINXP操作系统下,点击“开始”,选择“运行”,在“打开”一栏中输入“debug”,运行DEBUG应用程序,将出现DEBUG的提示符“-”。 2.在DEBUG提示符后键入字母“-a100”,回车后,屏幕上就会出现下面类似的容: (具体到每个计算机所产生的段地址和偏移地址可能有所不同) 这表示在地址1383:0100处,DEBUG等待用户键入程序助记符,下面键入程序: 3.在DEBUG的提示符后键入G,这是执行程序的命令,然后回车,就可以看到结果了。 4.现在让我们用“d”命令来看一下存储器 在100H~107H这8个单元,程序覆盖了原来的容,右边的字符是组成程序的ASCII码等价字符,圆点表示不可显示字符。 5.下面我们用反汇编命令来查看一下所键入的程序。“U”命令的格式是“U起始地址,终止地址”,即把起始地址到终止地址之间的十六进制码反汇编成汇编语言助记符语句。键入: 大家在屏幕上不仅可以看到地址和助记符,而且还可以看到与汇编语言等价的机器语言。6.现在我们修改存储单元的容,看看显示情况和变化。 我们看到显示的结果发生了变化,这是因为DOS的2号功能调用是显示输入数据的ASCII 码字符。 7.下面我们给程序命名并存盘。在键入“n”后紧跟程序名及扩展名

因为文件的字节数必须事先放在BX和CX中,其中BX保存高16位,CX保存低16位,整个32位的数保存文件的字节数,一般来说,BX设置为0,因为CX可存放的字节数为64K,对于一般的程序已足够了。 8.结束后可用Q命令退出DEBUG程序。 三、实验习题 1.写出完成下列功能的指令序列 (1)传送20H到AL寄存器 (2)将(AL)*2 (3)传送25H到BL寄存器 (4)(AL)*(BL) 问最后的结果(AX)=? 单步执行结果: 2.分别写出完成下列指令要求的指令: (1)将BX的低4位清零; (2)将AX的高4位置1; (3)将DX的低4位取反; (4)将CX的中间八位清零; (5)将AX中与BX中的对应位不相同的位均置1.

8086软硬件实验报告(微机原理与接口技术上机实验)

实验一实验环境熟悉与简单程序设计 实验目的 (1)掌握DEBUG调试程序的使用方法。 (2)掌握简单程序的设计方法。 实验内容 编程将BH中的数分成高半字节和低半字节两部分,把其中的高半字节放到DH中的低4位(高4位补零),把其中的低半字节放到DL中的低4位(高4位补零)。如: BH=10110010B 则运行程序后 DH=00001011B DL=00000010B 实验准备 (1)熟练掌握所学过的指令。 (2)根据实验内容,要求预先编好程序。 实验步骤 (1)利用DEBUG程序输入、调试程序。 (2)按下表要求不断地修改BH的内容,然后记录下DX的内容。 实验报告 (1)给出程序清单。 (2)详细说明程序调试过程。

程序: CODE SEGMENT START : MOV BH,00111111B MOV AL,BH MOV CL,4 SHR AL,CL MOV DH,AL MOV AL,BH AND AL,00001111B MOV DL,AL MOV CL,0 CODE ENDS END START

实验二简单程序设计 实验目的 (3)掌握DEBUG调试程序的使用方法。 (4)掌握简单程序的设计方法。 实验内容 试编写一个汇编语言程序,要求实现功能:在屏幕上显示:Hello world My name is Li Jianguo 参考程序如下:(有错) data segment out1 db 'Hello world' ax db 'My name is Li Jianguo' data ens code segment assume cs:code;ds:data lea dx,out1 mov ah,2 int 21h mov dl,0ah mov ah,2

微机接口实验二(实验报告)

实验二 循环和分支程序设计 学号 201316122 姓名 黄成楠 专业 通信工程 成绩 【实验目的】 (1) 熟悉上机实验流程、调试及查看实验结果。 (2) 熟悉汇编语言编程环境,DOS 调用应用; (3) 编写循环和分支程序,并调试; 【实验内容及步骤】 1、 实验要求: 从键盘输入一系列字符, 以回车符结束,编程统计其中数字字符的个数(不超过100个) 提示: 程序首先调用DOS 功能的1号功能,从键盘输入字符。为得到字符串,可以采用循环结构,连续输入。在输入的过程中通过判断是否是回车来结束输入。其中回车的ASII 码(0DH )。数字的0的ASII 码(30H )9的(39H ) 流程图: Next1函数: Next 函数:

Exit函数: 2、实验内容: DSEG SEGMENT DATA1 DB 100 DUP(?) DATA2 DB 'please input:','$' DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG, DS:DSEG START: MOV AX, DSEG MOV DS, AX MOV BX,0 LEA DX,DATA2 MOV AH,09H INT 21H NEXT2: MOV AH,1 INT 21H CMP AL,0DH JE EXIT CMP AL,30H JAE NEXT3 JMP NEXT2 NEXT3: CMP AL,39H JBE NEXT4 JMP NEXT2 NEXT4: INC BX JMP NEXT2 EXIT: MOV AX,BX MOV CL,10 DIV CL

微机原理与接口实验报告1

微机原理与接口实验报告计算机与信息工程学院11级通信工程20111105438 李楠 2.4 分支程序设计实验 一、实验目的 1. 掌握分支程序的结构。 2. 掌握分支程序的设计、调试方法。 二、实验设备 PC机一台,TD-PITE实验装置或TD-PITC实验装置一套。 三、实验内容 设计一数据块间的搬移程序。设计思想:程序要求把内存中一数据区(称为源数据块)传送到另一存储区(成为目的数据块)。源数据块和目的数据块在存储中可能有三种情况. 实验程序清单(例程文件名为:A4-1.ASM) SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: MOV CX, 0010H MOV SI, 3100H MOV DI, 3200H CMP SI, DI JA A2 ADD SI, CX ADD DI, CX DEC SI DEC DI A1: MOV AL, [SI]

MOV [DI], AL DEC SI DEC DI DEC CX JNE A1 JMP A3 A2: MOV AL, [SI] MOV [DI], AL INC SI INC DI DEC CX JNE A2 A3: MOV AX,4C00H INT 21H ;程序终止 CODE ENDS END START 四、实验步骤 1. 按流程图编写实验程序,经编译、链接无误后装入系统。 2. 用E命令在以SI为起始地址的单元中填入16个数。 3. 运行程序,待程序运行停止。 4. 通过D命令查看DI为起始地址的单元中的数据是否与SI单元中数据相同。 5. 通过改变SI、DI的值,观察在三种不同的数据块情况下程序的运行情况,并验证程序的功能。

微机原理与接口技术_课程设计实验报告

课程设计实验报告 课程:现代微机原理与接口技术题目:键盘扫描实验

班级:数字媒体 1004 学号: 0305100417 学生:海洋 指导老师:天天 日期: 2012.6.18 一、实验目的 (1)掌握键盘扫描的应用及编程 (2)掌握LED的应用 二、实验设备 PC计算机一台,TD-PIT + 实验系统一套。 三、实验原理 (1)8255芯片:8255具有3个带锁存或缓冲的数据端口,它的并行数据宽度为8位。可与外设并行进行数据交换。A口和B口具有中断控制逻辑,在外设与CPU之间可用中断方式进行信息交换。把8255并口和键盘,组成一个键盘装置。通过cpu对8255的控制最总达到键扫的目的。每一个键对应一个ASCII 码字符,通过8255的输入和输出,最终显示在屏幕上。 (2)LED数码显示原理:数码管的 7 个段及小数点都是由 LED 块组成的,显示方式分为静态显示和动态显示两种。数码管在静态显示方式时,其共阳管的位选信号均为低电平,四个数码管的共用段选线 a、b、c、d、e、f、g、dp 分别与单片机的 8 根 I/O 口线相连,显示数字时只要给相应的段选线送低电平。数码管在动态显示方式时,在某一时刻只能有一个数码管被点亮显示数字,其余的处于非选通状态,位选码端口的信号改变时,段选码端口的信号也要做相应的改变,每位显示字符停留显示的时间一般为1-5ms,利用人眼睛的视觉惯性,在数码管上就能看到相当稳定的数字显示。 (3)键盘扫描原理:第一步,使行线为编程的输入线,列线是输出线,拉低所有的列线,判断行线的变化,如果有按键按下,按键按下的对应行线被拉低,否则所有的行

微机原理与接口技术软件实验报告

第一篇软件实验 实验一存储器块操作实验 一、实验目的 1. 熟悉KEIL集成调试环境和汇编程序的调试方法。 2. 掌握存储器读写方法; 3. 了解内存块的移动方法; 二、实验说明 实验1 指定某存储器的其实地址和长度,要求能将其内容赋值。通过该实验学生可以了解单片机读写存储器的方法,同时也可以了解单片机编程、调试方法。 块移动是单片机常用操作之一,多用于大量的数据复制和图像操作。例程2给出起始地址,用地址加1方法移动块,将指定源地址和长度的存储块移到指定目标为起始地址的单元中去。移动3000H起始的256个字节到4000H起始的256个字节。 三、实验内容 1. 试编程将片内RAM中的数据依次复制到片外RAM。假设源数据区的首地址为40H,目的数据区的首地址为1000H,数据块长度为10H。 流程图: 程序:

运行结果: Memory显示,片内RAM中40H开始数据为03 00 29 00 00 00 71 00 AB 00 00 00 1E 00 00 FF,说明测试数据已经成功输入片内RAM。从片外RAM中1000H位置开始记录为03 00 29 00 00 00 71 00 AB 00 00 00 1E 00 00 FF,说明片内RAM从40H开始的数据已经成功复制到片外从1000H开始的地址。 2. 两个16位无符号二进制数分别存放在片外RAM首址为2000H和2002H单元内,将它们相加,结果存入RAM 30H(低8位)、31H(高8位)。 程序(以0506H+CDEFH为例):

0506H和CDEFH已存入片外单元,运算结果D2F5已存入30H和31H中。 四、思考题 1. 如何将存储块的内容置成某固定值(例全填充为0FFH)?请用户修改程序,完成此操作。答:将源程序中的MOV A, #01H 改为MOV A,#0FFH即可。 2. 若源块地址和目标地址有重叠,该如何避免? 答:先执行一次数据转移操作将源块地址中的数据先暂存入一块地址与目标地址和源块地址均不重叠的存储区,再执行一次数据转移操作将暂存区的数据移入目标地址区域。 五、心得体会 本次实验我学会了数据块的移动和赋值。片内数据的移动和计算比较简便,涉及到片外数据的计算时要增加移动到片内的步骤。当数据需要进行保护时可以设定数据暂存区。 本实验微机原理的第一个实验,刚开始编程时有一点困难。我体会到了汇编语言的特点。与其他语言相比,它不仅要求良好的逻辑能力,而且要求编程者有较好的硬件知识。比如本次实验中,一开始我的编译一直报错,原来是将MOVX A,@DPTR指令错写成了MOV A,@DPTR。MOV指令用于内部RAM数据传送,而MOV用于外部数据传送。我体会到只有充分了解单片机的硬件结构,才能使用正确的指令,让编程正确无误的进行。这也是我今后要加强学习的重点。 实验二数值转换实验 一、实验目的

微机原理与接口技术 实验报告

微机原理与接口技术 实验报告 学院:计算机与通信工程学院 专业:计算机科学与技术 班级: 学号: 姓名:

实验一8259中断控制器应用实验 一、实验目的 1.掌握PC机中断处理系统的基本原理。 2. 掌握可编程中断控制器8259的应用编程方法。 二、实验内容 1.PC机内中断实验。使用单次脉冲模拟中断产生。验证中断处理程序,在显示器屏幕上显示一行预设定的字符串。 2.PC机内中断嵌套实验。使用单次脉冲模拟两个中断源的中断产生,填写中断处理程序,体会中断嵌套的过程。 3.扩展多中断源查询方式应用实验。利用实验平台上8259控制器作为中断扩展源,编写程序对8259控制器的中断请求进行处理。 三、实验步骤 1.实验1-1:PC机内中断应用实验 (1)按接线图连好接线,调用程序源代码8259-1.asm,观察实验现象,屏幕显示结果截图如下: (2)自设计实验。改变接线方式,将单次脉冲连到USB核心板上的IRQ10插孔上,参考本实验代码,编程实现IRQ10中断。(注意:考虑PC机内中断级联的方式,参看前面的原理说明),代码如下: DA TA SEGMENT MESS DB 'IRQ10 ',0DH,0AH, '$' DA TA ENDS

CODE SEGMENT ASSUME CS:CODE, DS:DA TA START: MOV AX, CS MOV DS, AX MOV DX,OFFSET INT10 MOV AX,2572H ;设置IRQ10对应的中断向量 INT 21H IN AL,21H ;读取中断屏蔽寄存器 AND AL,0F3H ;开放IRQ3中断和从片 OUT 21H,AL IN AL,0A1H ;从片的中断屏蔽寄存器 AND AL,0FBH ;开放IRQ10中断 OUT 0A1H,AL MOV CX,10 STI WAIT: JMP W AIT INT10: MOV AX, DATA ;中断服务程序 MOV DS, AX MOV DX, OFFSET MESS MOV AH, 09 ;在屏幕上显示每次中断的提示信息 INT 21H MOV AL, 20H ; 发出EOI结束中断到PC内主片的地址20H OUT 20H, AL LOOP NEXT IN AL, 21H ;读中断屏蔽寄存器,获取中断屏蔽字 OR AL, 08H ;关闭IRQ3中断 OUT 21H, AL ;将中断屏蔽字送到中断屏蔽寄存器 STI ;置中断标志位 MOV AH, 4CH ;返回DOS INT 21H NEXT: IRET ;中断返回 CODE ENDS END START 调用程序代码,观察实验现象,屏幕显示截图如下:

北邮微机原理与接口技术硬件实验报告

微原硬件实验报告 班级:07118 班 学号:070547 班内序号:26 姓名:杨帆

实验一熟悉实验环境及IO的使用 一,实验目的 1. 通过实验了解和熟悉实验台的结构,功能及使用方法。 2. 通过实验掌握直接使用Debug 的I、O 命令来读写IO 端口。 3. 学会Debug 的使用及编写汇编程序 二,实验内容 1. 学习使用Debug 命令,并用I、O 命令直接对端口进行读写操作, 2.用汇编语言编写跑马灯程序。(使用EDIT 编辑工具)实现功能 A.通过读入端口状态(ON 为低电平),选择工作模式(灯的闪烁方式、速度 等)。 B.通过输出端口控制灯的工作状态(低电平灯亮) 三,实验步骤 1.实验板的IO 端口地址为EEE0H 在Debug 下, I 是读命令。(即读输入端口的状态---拨码开关的状态) O 是写命令。(即向端口输出数据---通过发光管来查看) 进入Debug 后, 读端口拨动实验台上八位拨码开关 输入I 端口地址回车 屏幕显示xx 表示从端口读出的内容,即八位开关的状态ON 是0,OFF 是 1 写端口 输入O 端口地址xx (xx 表示要向端口输出的内容)回车 查看实验台上的发光二极管状态,0 是灯亮,1 是灯灭。 2. 在Debug 环境下,用a 命令录入程序,用g 命令运行 C>Debug -a mov dx, 端口地址 mov al,输出内容 out dx, al

mov ah, 0bh int 21h or al, al jz 0100 int 20h -g 运行查看结果,修改输出内容 再运行查看结果 分析 mov ah, 0bh int 21h or al, al jz 0100 int 20h 该段程序的作用 3.利用EDIT 工具编写汇编写跑马灯程序程序 实现功能 A.通过读入端口状态(ON 为低电平),选择工作模式(灯的闪烁方式、速度等)。 B.通过输出端口控制灯的工作状态(低电平灯亮) C>EDIT 文件名.asm 录入程序 按Alt 键打开菜单进行存盘或退出 编译文件 C>MASM 文件名.asm 连接文件 C>LINK 文件名.obj 运行文件或用Debug 进行调试。 四,程序流程图

微机原理与接口技术实验报告

微机原理与接口技术课程设计报告题目:继电器控制实验设计 学院电子与信息工程学院 专业通信工程年级 10级 学生姓名 xx 学号 _ xxxxxxxx 指导教师 xx 完成时间 2012/11/9 二O一二年十一月

目录 摘要 (3) 一.实验目的 (4) 二.实验原理 (4) 1 实验基本原理 (4) 2.1继电器结构原理图 (5) 2.2继电器工作原理 (5) 3.1 8255A组成 (6) 3.2 8255A结构框图 (7) 3.3 8255A工作方式 (7) 三.实验内容 (11) 四.程序设计 (12) 4.1程序流程图 (12) 4.2程序代码 (12) 五.实验小结........................................................ 错误!未定义书签。 六.参考文献 ......................................................... 错误!未定义书签。

摘要 现代自动控制设备中,都存在一个电子电路与电气电路的互相连接问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件,另一方面又要为电子线路的电气电路提供良好的电气隔离,以保护电子电路和人身的安全。继电器便能完成这一桥梁作用。 本课程设计主要采用了控制继电器和8255A芯片来完成。电路的控制端为高电平时,继电器工作常开触点吸合,连触点的LED灯被点亮。当控制端为低电平时,继电器不工作。执行时,对应的LED将随继电器的开关而亮灭。 关键词:控制继电器 8255A芯片

一.实验目的 1、进一步熟悉汇编语言的设计编写 2、掌握继电器控制的基本原理 3、掌握继电器控制编程方法 4、掌握8255芯片的应用 二.实验原理 1、利用8255A PA0输出高低电平,控制继电器的开合,以实现对外部装置的控制。 硬件线路原理图接线如下: 2、继电器 在现代工业中,人员和电子电路安全保障一直是首要考虑的问题,尤其在一些高危恶劣环境下,如高温高压等,如何在保障操作人员和电子电路安全的前提下对电路进行良好地控制便成为了工业进步不可回避的问题。一方面要使电子电路的控制信号能够控制电气电路的执行元件,另一方面又要为电子线路的电气电路提供良好的电气隔离,以保护电子电路和人身的安全,符合这种需求的元件便是继电器。 控制继电器是一种自动电子控制器件,它适用于远距离接通和分断交、直流小容量控制电路, 它具有控制系统和被控制系统,通常应用于自动控制电路中,

计算机接口技术实验报告

实验一无条件输出端口的构成与地址译码 【地址译码电路】 【实验板的线路接法】 将电路图上的A1-A7端口依次PIN到PIN_3、PIN_4、PIN_7、PIN_8 、PIN_9、PIN_24、PIN_25,再用八股导线连接到实验箱中的XA1-XA7上; 将电路图上的IOW端口PIN到PIN_17,通过转换单元连接到实验箱上的IOW端口; 将电路图上的D1-D8端口依次PIN到PIN_27、PIN_28、PIN_30、PIN_31 、PIN_32、PIN_40、PIN_41、PIN_42,再用八股导线连接到实验箱中的XD1-XD7上; 将电路图上的OUT1-OUT8端口依次PIN到PIN_43、PIN_44、PIN_45、PIN_47 、PIN_48、PIN_51、PIN_52、PIN_53,再用八股导线连接到实验板上二极管对应的的D0-D7上。 最后,给实验板接上电源线和地线。 【输出数据至端口的程序段】 #include #include #include #include #include #include void main() { outp( 0x3000, 0x00 ); } 【Led规律性变化的程序段】 #include #include #include #include #include #include void main()

微机原理与接口技术实验报告

微机原理与接口技术》 上机报告 学院:机电学院指导教师:胡勇学号:631424210229 姓名:鞠其林

实验一初级程序的编写与调试实验 、实验目的 1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序. 2、深入了解数据在存储器中的存取方法, 及堆栈中数据的压入与弹出 3、掌握各种寻址方法以及简单指令的执行过程. 二、实验内容 1、设堆栈指针SP=2000H,AX=3000H,BX=5000H请, 编一程序段将AX的内容和BX 的内容进行交换. 请用堆栈作为两寄存器交换内容的中间存储单元, 用DEBUG调试程序进行汇编与调试. 程序: MOV AX,3000 MOV BX,5000 MOV SP,2000 PUSH AX PUSH BX POP AX POP BX HLT

2、设AX=0002H,编一个程序段将AX的内容乘10, 要求用移位的方法完成程序: MOV AX,0002 MOV BX,AX MOV CL,2 SHL AX,CL ADD AX,BX MOV CL,1 SHL AX,CL HLT

三、心得体会 从这个程序的编辑过程中我感受到了汇编语言的强大,很直观的就可以读懂程 序的含义,但代码比较难记,而且语法严谨,我调试的过程中犯了一点错误, 修改的次数较多,希望我以后可以不再犯同样的错误,也是因为我练的比较的 少,还很生疏,我以后一定多加练习,把汇编学好 实验二 加法及判断程序的编写与调试 、实验目的 1、熟练掌握编写汇编语言源程序的基本方法和基本框架 2、学会编写顺序结构 , 分支结构和循环结构的汇编程序

3、掌握程序中数据的产生与输入输出的方法. 二、实验内容 1、用汇编语言编写一个加法程序: 1325+9839 请用ASCII 码的形式将加数与被加数存放在数据区DATA1和DATA2中, 并将相加结果显示输出. 程序: DATA SEGMENT DATA1 DB '5','2','3','1' DATA2 DB '9','3','8','9' DATA ENDS STACK SEGMENT PARA STACK 'STACK' DB 200 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX LEA SI,DATA1 LEA DI,DATA2 MOV CX,4 MOV AH,0 NEXT: MOV AL,[SI] ADC AL,[DI] ADC AL,AH MOV AH,0 AAA ADD AL,30H MOV [DI],AL INC DI INC SI LOOP NEXT MOV CX,5 ADD AH,30H MOV [DI],AH NEXT1:MOV DL,[DI] MOV AH,02 INT 21H DEC DI

微机接口实验报告

微机接口实验报告

实验一:I/O地址译码 一、实验目的 掌握I/O 地址译码电路的工作原理。 二、实验原理和内容 实验电路如图(1)所示,其中74LS74 为D 触发器,可直接使用实验台上数字电路实验区的D 触发器,74LS138 为地址译码器。译码输出端Y0~Y7 在实验台上I/O 地址输出端引出,每个输出端包含8 个地址,Y0:280H~287H,Y1:288H~28FH,……当CPU 执行I/ O 指令且地址在280H~2BFH 范围内,译码器选中,必有一根译码线输出负脉冲。 例如:执行下面两条指令 Y4 输出一个负脉冲,执行下面两条指令 MOV DX, 2A0H OUT DX,AL(或IN AL,DX) Y5 输出一个负脉冲。 MOV DX,2A8H OUT DX,AL(或IN AL,DX) 利用这个负脉冲控制L7 闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。

三、实验程序 L1: MOV DX, 2A0H//选通74LS138的11口 OUT DX, AL//使端口A输出,给D触发器一个时钟信号 LOOP $//延时 LOOP $//延时 MOV DX, 2A8H//选用74LS138的10口 OUT DX, AL//使D触发器清零 LOOP $//延时 LOOP $//延时 MOV AH, 11//十一号功能调用 INT 21H//如果有键按下 INC AL//AL加一,退出循环 JNZ L1// 如果没键按下,则继续循环 四、总结 第一次实验比较简单、主要是学会了通过程序控制芯片及其端口的选通,其方法是根据芯片外围搭建的电路使DX进行写或读的操作、例如本实验里,要想选通74LS138的11口操作8255的端口A,则需要使A9A8A7A6A5A4A3A2A1A0=1010100000=2A0H,同理操作10口时,则使DX=2A8H,再加上延时DELAY功能,即可使LED灯循环亮灭。但是如果不给芯片断电,则LED灯会一直循环,不能进进行人为的控制,所以又在后面加上了11号功能调用,只要当AL=0,循环结束。

微机原理与接口技术实验报告

微机原理与接口技术实验报告 班级: 通信1309 姓名: 张哲熙 学号: 13212171

指导教师: 周永华 实验一交通信号灯模拟控制 一.实验目的 交通信号灯模拟控制是一个基于实际工程原理, 结合文献、现实十字路口交通等得研究, 对工程问题进行确定、表述和建模分析, 获得最优设计方案, 理解并在工程实践中遵守工程职业道德规范, 根据实验室实验环境限定条件确定实验方案。所有知识涵盖本课程中的并行接口芯片、汇编语言程序设计、算法分析、接口地址的确定、外围设备的控制等。经过此实验能够理解微机系统中接口电路的作用, 掌握软件硬件协同工作原理, 熟悉微机原理与接口技术的综合应用。最终达到如下实验目的: ( 1) 掌握可编程并行接口 8255 芯片的工作原理 ( 2) 掌握利用并行接口芯片 8255 实现信号灯控制的硬件设计和软件设计 ( 3) 掌握接口电路及汇编语言程序设计的调试方法 ( 4) 了解 PC 机和实验系统板的连接原理, 理解系统机扩

展原理 ( 5) 了解并行接口芯片在工程实践中的典型应用及实现方式。 二.实验内容 设计利用 TPC- A 实验系统提供的 8255 芯片和信号灯设计实现十字路口交通灯的模拟控制的硬件连接和程序设计。 1.设计要求 (1)经过实际调研了解十字路口交通灯原理, 确定实现的算法流程。 (2)利用实验系统设计硬件电路, 明确 8255 芯片端口地址。(3)编程实现并调试完成交通信号灯的模拟控制。 (4)分析设计方案并比较和实际交通信号灯的技术性能差别。 2.设计目标和性能指标 ( 1) 考察一个实际十字交通等路口交通控制, 模拟在实验室实现。 ( 2) 扩展功能: 用 LED 应倒计时方式显示各路口灯亮时间。( 3) 对于复杂多路口应该如何设计。例如结合车流、人流等多方

微机原理与接口技术B实验报告

重庆交通大学 学生实验报告 实验课程名称微机原理与接口技术B 开课实验室机电自动控制实验室 学院年级专业班 学生姓名学号 开课时间2017 至2018 学年第 1 学期 注:实验成果考核方式采用非实验报告形式的,可自行制定

实验二 Protues软件使用 一.实验目的: 掌握单片机仿真软件。 二.实验器材: PC 机一台 三.实验内容: 任务A:闪烁灯 1、任务要求:如图2.1所示,在P1.0 端口上接一个发光二极管D1,使D1 在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。 2、电路原理图: 图2.1电路原理图 任务B:模拟开关灯 1、任务要求:如图2.2所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。 2、电路原理图:

图2.2电路原理图 任务C:多路开关状态指示 1、任务要求:如图2.3所示,AT89S51单片机的P1.0-P1.3接四个发光二极管L1-L4,P1.4-P1.7接了四个开关K1-K4,编程将开关的状态反映到发光二极管上。(开关闭合,对应的灯亮,开关断开,对应的灯灭)。 2、电路原理图: 图2.3电路原理图

四.实验代码: 任务A: ORG 0 //起始地址为00H START: CLR P1.0 //p1.0置零,开关灯亮 LCALL DELAY //延时0.2s SETB P1.0 //p1.0置1,开关灭 LCALL DELAY //延时0.2s LJMP START //主程序为死循环 DELAY: MOV R5,#20 //延时子程序,延时0.2秒 D1: MOV R6,#20 //赋值R6为20 D2: MOV R7,#248 //赋值R7为248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET //子程序返回 END //程序结束 任务B: ORG 00H START: JB P3.0,LIG // JB 指定位1转移 CLR P1.0 //开关按下,把p1.0置零,灯亮 SJMP START //主程序为判断开关状态,点亮灯的死循环LIG: SETB P1.0 //开关未按下,把p1.0置1,灯灭 SJMP START //跳转至主程序 END //程序结束 任务C: ORG 00H START: MOV A,P1 //一次把p1端口的状态全部读入 ANL A,#0F0H //取高四位状态来显示 RR A //右循环 RR A

微机原理与接口技术实验报告

. ... 目录 实验一数据传送 (2) 实验二算术运算 (7) 实验三代码转换 (14) 实验四程序的基本结构练习 (20) 实验五存储器(RAM 6264)扩展................ 错误!未定义书签。实验六可编程并行接口(8255)扩展............ 错误!未定义书签。实验七可编程计数/定时器(8253)扩展......... 错误!未定义书签。实验八 A/D、D/A转换......................... 错误!未定义书签。实验九可编程串行通信接口(8251)扩展........ 错误!未定义书签。

实验一:数据传送 实验学时:2 实验类型:验证 实验要求:必修 一.实验目的 1.学习程序设计的基本方法和技能,掌握用汇编语言设计、编写、调试和运行程序的方法; 学习用全屏幕编辑软件QEDIT.EXE建立源程序(.ASM文件); 学习用汇编软件MASM.EXE对源文件汇编产生目标文件(.OBJ文件); 学习用连接程序LINK.EXE对目标文件产生可执行文件(.EXE文件); 学习用调试软件TD.EXE调试可执行文件; 2.掌握各种寻址方法以及简单指令的执行过程。 二.实验器材 PC机 三.实验组织运行要求 1.利用堆栈实现AX的内容与BX的内容进行交换。堆栈指针SP=2000H,AX=3000H,BX=5000H; 2.汇编、调试、观察、记录结果; ⑴用QEDIT.EXE软件输入汇编语言源程序,以.ASM格式文件存盘; ⑵用MASM对源程序进行汇编产生二进制目标文件(.OBJ文件),再用连接程序LINK产生可执行文件(.EXE文件); ⑶用调试软件TD调试、运行程序,观察、记录结果。 四.实验步骤 1.进入子目录E:>\SY86后,利用QEDIT.EXE(简称Q)送入以下汇编语言源程序,并以 M1.ASM文件存盘 ⑴汇编语言程序的上机过程 ①进入\SY86子目录 E:>CD\SY86 E:\SY86> ②进入QEDIT.EXE 编辑界面 E:\SY86> Q ③输入文件名*.ASM(如M1.ASM)后,输入源程序 源程序 DATA SEGMENT PARA PUBLIC’DATA’;数据段定义 DB 512 DUP(0) DATA ENDS STACK SEGMENT PARA STACK’STACK’;堆栈段定义 DB 512 DUP(?) STACK ENDS

微机原理与接口技术实验报告

微机原理与接口技术实验报告 班级:通信1309 姓名:张哲熙 学号:

指导教师:周永华 实验一交通信号灯模拟控制 一.实验目的 交通信号灯模拟控制是一个基于实际工程原理,结合文献、现实十字路口交通等得研究,对工程问题进行确定、表述和建模分析,获得最优设计方案,理解并在工程实践中遵守工程职业道德规范,根据实验室实验环境限定条件确定实验方案。所有知识涵盖本课程中的并行接口芯片、汇编语言程序设计、算法分析、接口地址的确定、外围设备的控制等。通过此实验可以理解微机系统中接口电路的作用,掌握软件硬件协同工作原理,熟悉微机原理与接口技术的综合应用。最终达到如下实验目的: (1)掌握可编程并行接口 8255 芯片的工作原理 (2)掌握利用并行接口芯片 8255 实现信号灯控制的硬件设计和软件设计(3)掌握接口电路及汇编语言程序设计的调试方法 (4)了解 PC 机和实验系统板的连接原理,理解系统机扩展原理 (5)了解并行接口芯片在工程实践中的典型应用及实现方式。 二.实验内容 设计利用 TPC-2003A 实验系统提供的 8255 芯片和信号灯设计实现十字路

口交通灯的模拟控制的硬件连接和程序设计。 1.设计要求 (1)通过实际调研了解十字路口交通灯原理,确定实现的算法流程。 (2)利用实验系统设计硬件电路,明确 8255 芯片端口地址。 (3)编程实现并调试完成交通信号灯的模拟控制。 (4)分析设计方案并比较和实际交通信号灯的技术性能差别。 2.设计目标和性能指标 (1)考察一个实际十字交通等路口交通控制,模拟在实验室实现。 (2)扩展功能:用 LED 应倒计时方式显示各路口灯亮时间。 (3)对于复杂多路口应该如何设计。例如结合车流、人流等多方因素方案如何确定。 三.实验电路 如图5-3,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律燃灭。 8255动态分配地址: 控制寄存器:28BH A口地址: 288H C口地址: 28AH 红黄绿红黄绿

华南理工大学微机与接口实验报告(四实验-题目原理流程图代码截图完整版)

华南理工大学微机与接口实验报告(四实验-题目原理流程图代码截图完整版)

微机原理实验报告 班级:2012级电子科学与技术卓工班 姓名:黄中一 学号: 201236460273 序号:

评阅分数: 实验一 一、实验目的 1、学会如何建立汇编源文件ASM 2、学会调用MASM宏汇编程序对源文件进行汇编,获得目标程序OBJ及LST 列表文件 3、学会调用LINK连接程序汇编后的目标文件OBJ连接成可执行的文件EXE 4、学会使用DEBUG调试程序把可执行文件装入内存并调试运行,用D命令 显示目标程序,用U命令对可执行文件反汇编,用G命令运行调试。二、实验设备 装有MASM 软件的IBM PC机 三、实验内容 1、汇编程序对源程序进行编译,生成扩展名为OBJ的目标文件;连接程序是将 目标程序和库文件进行连接、定位,生成扩展名为EXE的可执行文件;调试程序是对目标文件进行调试,验证它的正确性。 2、DEBUG程序各种命令的使用方法

检查和修改寄存器的内容R 显示全部寄存器和标志位及 下条指令单元十六进制数码 和反汇编格式 反汇编U地址从指定地址开始反汇编16个或32个字节 汇编A地址从指定地址直接输入语句并从指定指定汇编装入内存 跟踪T=地址从指定地址开始逐条跟踪指令 运行G=地址无断点,执行正在调试的指令 退出Q 退出DEBUG返回DOS ①、在edit环境,写字板,记事本等中输入源程序。或双击屏幕上“未来汇编”快捷方式进入编辑环境输入源程序。 ②、保存,输入文件名如A1.asm,并将其与MASM的三个可执行文件放在同一目录下。 ③、在DOS环境下(可用windows下的命令提示符进入),用MASM生成目标文件A1.OBJ 进入DOS环境,将当前目录设置为存放MASM的路径.如图所示: 如果MASM 的软件放在C:\TOOLS\WJYL 则先要进入到该子目录下,进入该子目录的方法为,cd c:\ 退到c盘的根目录下,cd tools cd WJYL 则如上所述进入该目录下,然后 输入MASM ,可见屏幕上有四个提问,按如下格式回答: Source filename [.ASM]:a1↙ Object filename [A1.OBJ]:↙ Source listing [NUL.LST]: a1↙ Cross-reference [NUL.CRF]:a1 ↙

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