微机原理和单片机实验报告 - 图文
更新时间:2024-05-21 02:01:01 阅读量: 综合文库 文档下载
- 微机原理与单片机实验报告推荐度:
- 相关推荐
实验一汇编语言程序设计 1 分支程序设计实验
1.1.1 实验目的
1. 掌握分支程序的结构。
2. 掌握分支程序的设计、调试方法。
1.1.2 实验设备
PC机一台,TD-PITE实验装置一套。
1.1.3 实验内容
设计一数据块间的搬移程序。设计思想:程序要求把内存中一数据区(称为源数据块)传送到另一存储区(成为目的数据块)。源数据块和目的数据块在存储中可能有三种情况,如图1.14所示。
0H0H源数据块目的数据块0H源数据块目的数据块目的数据块源数据块FFFFFHFFFFFHFFFFFH
(a)(b)(c)
图1.1 源数据块与目的数据块在存储中的位置情况
对于两个数据块分离的情况,如图1.1(a),数据的传送从数据块的首地址开始,或从
数据块的末地址开始均可。但是对于有重叠的情况,则要加以分析,否则重叠部分会因?搬移?而遭到破坏,可有如下结论:
当源数据块首地址<目的块首地址时,从数据块末地址开始传送数据,如图1.14(b)所示。
当源数据块首地址>目的块首地址时,从数据块首地址开始传送数据,如图1.14(c)所示。
实验程序流程图如图1.5所示。
开 始 源数据块首地址→SI 源数据块首地址→SI 搬移字节数→CX>> SI←[SI]+[CX]-1 DI←[DI]+[CX]-1DI←[(SI)] SI←[SI]-1 DI←[DI]-1CX←[CX]-1N[CX]=0?Y结 束[SI]>[DI]?DI←[(SI)] SI←[SI]+1 DI←[DI]+1CX←[CX]-1[CX]=0?YN
图1.5 程序流程图
1.1.4 实验程序如下(自己填写)
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: JMP A3 CODE ENDS END START
1.1.5 实验步骤
1. 按流程图编写实验程序,经编译、链接无误后装入系统。 2. 用E命令在以SI为起始地址的单元中填入16个数。 3. 运行程序,待程序运行停止。
4. 通过D命令查看DI为起始地址的单元中的数据是否与SI单元中数据相同。 5. 通过改变SI、DI的值,观察在三种不同的数据块情况下程序的运行情况,并验证程序的功能。
·1.1.6 实验结果(自己填写)
图1-1-2
图1-1-2
图1-1-3 图1-1-4
2.循环程序设计实验
1.2.1 实验目的
1. 加深对循环结构的理解。
2. 掌握循环结构程序设计的方法以及调试方法。
1.2.2 实验设备
PC机一台,TD-PITE实验装置一套。
1.2.3 实验内容
计算S=1+2×3+3×4+4×5+…+N(N+1),直到N(N+1)项大于200为止。 编写实验程序,计算上式的结果,参考流程图如图1.6所示。
开始1.2.4 实验程序(自己填写)
SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT [BL]→AL[BL]+1→BL ASSUME CS:CODE
START: MOV DX,0001H MOV BL,02H [AL]×[BL]→AX[DX]+[AX]→DX A1: MOV AL,BL
INC BL MUL BL [AX]>200? ADD DX,AX CMP AX,00C8H
结束 JNA A1
MOV AX,4C00H
INT 21H
CODE ENDS
END START 图1.6 程序流程图
1→DX2→BL1.2.5 实验步骤
(1)编写实验程序,编译、链接无误后装入系统。 (2)运行程序,待程序运行停止。
(3)运算结果存储在寄存器DX中,查看结果是否正确。
(4)可以改变N(N+1)的条件来验证程序功能是否正确,但要注意,结果若大于0FFFFH将产生数据溢出。
1.2.6 实验结果(自己填写)
1-2-1
图
实验二 8255并行接口实验
2.1 实验目的
1. 学习并掌握8255的工作方式及其应用。 2. 掌握8255典型应用电路的接法。
2.2 实验设备
PC机一台,TD-PITE实验装置一套。
2.3 实验内容
查询式输入输出实验。编写程序,使8255的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。要求将一开关设为总开关,由此开关来决定数据灯的显示是否随开关相应改变。
2.4 实验步骤
查询输入输出实验
本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。具体实验步骤如下述:
(1)实验接线图如图2.1所示,按图连接实验线路图。 (2)编写实验程序,经编译、连接无误后装入系统。
(3)运行程序,改变拨动开关,同时观察LED显示,验证程序功能。
XD0D0......PA0K0......IOW#IOR#IOY1WRRDCSPB78255单元...D7系统总线...K7D0XD7D7开关及LEDPA7XA1XA2A0A1PB0显示单元 图2.1 8255基本输入输出实验接线图
2.5 实验程序(自己加)
SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS CODE SEGMENT
ASSUME CS:CODE,SS:SSTACK START:MOV DX,0646H
MOV AL,90H OUT DX,AL
AA1:MOV DX,0640H IN AL,DX TEST AL,80H JZ AA1 CALL DELAY MOV DX,0642H OUT DX,AL JMP AA1
DELAY:PUSH CX MOV CX,0F00H AA2:PUSH AX POP AX LOOP AA2 POP CX RET
CODE ENDS END START
·2.6 实验结果(自己加)
图2-1
实验三. 8254定时/计数器应用实验
3.1 实验目的
1. 掌握8254的工作方式及应用编程。 2. 掌握8254典型应用电路的接法。
3.2 实验设备
PC机一台,TD-PITE实验装置一套。
3.3 实验内容
计数应用实验。编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按动‘KK1+’5次后,产生一次计数中断,并在屏幕上显示学号末两位。
3.4 实验单元电路图
8254实验单元电路图如下图所示:
XD0D04.7KVCCGATE0...XD7...D7系统总线CLK0XA1XA2A0A1OUT0IOW#IOR#IOY3WRRDCSKK1+单次脉冲单元8254单元MIR7图3.1 8254实验电路原理图 3.5实验程序(参考程序如下,大家改动)
实验程序清单(A82541.ASM) A8254 EQU 06C0H B8254 EQU 06C2H C8254 EQU 06C4H CON8254 EQU 06C6H
SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE, SS:SSTACK START: PUSH DS
MOV AX, 0000H MOV DS, AX
MOV AX, OFFSET IRQ7 ;取中断入口地址 MOV SI, 003CH ;中断矢量地址
MOV [SI], AX ;填IRQ7的偏移矢量 MOV AX, CS ;段地址 MOV SI, 003EH
AA1: IRQ7: CODE MOV [SI], AX CLI POP DS
;初始化主片8259 MOV AL, 11H
OUT 20H, AL MOV AL, 08H
OUT 21H, AL MOV AL, 04H
OUT 21H, AL MOV AL, 01H
OUT 21H, AL MOV AL, 6FH OUT 21H, AL ;8254
MOV DX, CON8254 MOV AL, 10H OUT DX, AL MOV DX, A8254 MOV AL, 04H OUT DX, AL STI
JMP AA1 MOV DX, A8254 MOV AL, 04H OUT DX, AL MOV AX, 0131H INT 10H MOV AX, 0132H INT 10H MOV AL, 20H
OUT 20H, AL IRET ENDS END START
;填IRQ7的段地址矢量
;ICW1 ;ICW2 ;ICW3 ;ICW4 ;OCW1
;计数器0,方式0
;显示字符12
;中断结束命令
3.6 实验结果(自己加)
图3-1
实验四.数据采集实验
4.1 实验目的
1. 掌握8254的工作方式及应用编程。 2. 掌握8254典型应用电路的接法。
4.2 实验设备
PC机一台,TD-PITE实验装置一套。
4.3 实验内容
要求实现三角波的产生,并且用示波器查看波形
4.4 硬件连线图
4.5 实验程序(自己加)
4.6 验步骤(自己加)
实
4.7 实验结果(自己加)
图4-1
实验五求和程序设计(2学时)
5.1 实验目的
1.熟悉KEIL的软件使用环境及单片机C51语言编程;
2.掌握C51环境下内存地址的访问方法及循环程序的实现方法。
5.2 实验设备
PC机一台
5.3 实验内容
内容:编写十个字节求和程序。
要求:十个加数在片内RAM区20H~29H单元; 结果存放在片内RAM区30H,31H区。
5.4 实验程序
#include\
#define uchar unsigned char void main() {
uchar i,a,sum; a=0x20; sum=0;
for(i=0;i<10;i++) {
sum+=DBYTE[a]; a++; }
DBYTE[0x30]=sum; }
5.5 实验步骤
开机启动Keil C51软件进入μVision2 集成开发环境,确认89C51处于软件仿真状态。
完成程序的设计、编辑、编译、连接。
进入DEBUG方式,打开存储器Memory 1窗口,在窗口Address栏键入D:20H;点击鼠标右键,选择最后一项Modify Memory ,输入十个加数。 调试和运行程序并记录存储器Memory 1,D:30H窗口实验结果。
5.6 实验结果
图5-1
图5-2
实验六基于PROTEUS的60S倒计时器设计(2学时)
6.1 实验目的
1.熟悉PROTEUS的软件使用环境及单片机C51语言编程;
3.掌握C51环境下定时中断、并行接口及LED的显示方法。
6.2 实验设备
PC机一台
6.3 实验内容
60S倒计时器,利用LED显示秒数。
6.4 实验电路图
6.5 实验程序
#include
unsigned char num,t,n;
unsigned char code table[]={0xc0,0x90,0x80,0xf8 ,0x82,0x92, 0x99,0xb0,0xa4,0xf9}; unsigned char code table1[]={0x92,0x99,0xb0,0xa4,0xf9,0xc0}; void main() {
num=0; t=0;
TMOD=0x01;
TH0=(65536-50000)/256; TL0=(65536-50000)%6; EA=1; ET0=1; TR0=1; P0=0xc0; P2=0x82; while(1) {
if(t==20) { t=0; num++;
if(num==10) num=0;
P2=table[num]; if(num==1) {
P0=table1[n];
n++; } }
if(n==6) {
if(num==0) while(1); } } }
void exter0() interrupt 1 {
TH0=(65536-50000)/256; TL0=(65536-50000)%6; t++; }
6.6 实验结果
图6-6
实验七.外中断实验
7.1 实验目的
1. 掌握外中断的工作方式及应用编程。
2. 掌握并行接口及LED显示器的典型应用电路。
7.2 实验设备
PC机一台,TD-PITE实验装置一套。
7.3 实验内容
要求实现外部按键一次(利用KK1按键),LED显示器的值加1。
7.4 实验电路图
7.5 实验程序
#include
unsigned char code tabledu[]= {
0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x77, 0x7c,0x39,0x5e,0x79,0x71,0x00 };
unsigned char code tablewe[]= {
0xfe,0xfd,0xfb,0xf7,0xef,0xdf };
unsigned char x=0;
void delay(unsigned char x) {
unsigned char y; for(;x>0;x--)
for(y=112;y>0;y--);
}
void display(unsigned char ge) {
P1=tabledu[ge];
P2=tablewe[0]; //此处可修改第几位显示 delay(5); P1=0xff;
P1=tabledu[ge/10];
P2=tablewe[1]; //此处可修改第几位显示 delay(5); P1=0xff; }
void int0_isr() interrupt 0 {
x++;
if(x==100) x=0; display(x); }
void main() {
P1=0x00; IT0=1; EX0=1; //IT1=1; //EX1=1; EA=1; while(1) {
display(x); } }
7.6 实验结果
图7-1
实验八.静态存储器扩展实验
8.1 实验要求
1. 复习单片机扩展外部数据存储器的方法。 2. 复习常用数据存储器芯片的引脚功能。
8.2 实验设备
PC机一台,TD-PITE实验装置一套。
8.3 实验目的
1. 进一步熟悉单片机仿真实验软件Keil C51 调试硬件的方法。 2. 掌握单片机系统中存储器扩展的方法。
3. 掌握单片机内部RAM 和外部RAM 之间数据传送的特点。
8.4 实验内容
根据实验平台的单元电路,构建一个硬件系统,并编写实验程序实现如下功能:在单片机内部一段连续RAM 空间30H~3FH 中写入初值00H~0FH,然后将这16 个数传送到RAM 的0000H~000FH 中,最后再将外部RAM 的0000H~000FH 空间的内容传送到片内RAM 的40H~4FH 单元中。传送结果通过Keil C51 软件观察。
8.5 实验单元电路及连线
8.6 实验程序
#include sfr AUXR =0x8E; void main() {
unsigned char i; AUXR = 0x02;
for(i=0;i<=15;i++) DBYTE[0x30 + i]=i; for(i=0;i<=15;i++)
XBYTE[0x0000 + i] = DBYTE[0x30 + i]; for(i=0;i<=15;i++)
DBYTE[0x40 + i]=XBYTE[0x0000 + i]; while(1); }
8.7 实验步骤
1. 打开存储器观察窗口,在存储器#1 的Address 中输入D:0x30,在存储器#2 的Address 中输入X:0x0000 来监视存储器空间。
2. 可单步运行程序,观察存储器内容的变化,或在伪停机指令和处设置断点再运行程序,验证实验功能。
8.8 实验结果
图8-1
图8-2
图8-3
微
机 原 理 班级:姓名:赵伟学号:及 单 片 机 实 验 报 告
13050141
1305014112
正在阅读:
微机原理和单片机实验报告 - 图文05-21
别人帮助自己的作文03-31
2016年齐齐哈尔大学马克思主义学院中国近现代史纲要(同等学力加试)复试笔试最后押题五套卷04-30
倒装句精选专项练习01-11
学习马克思主义的理论和现实意义11-11
生命的礼物作文600字06-17
师生关系讲稿04-13
李小荣脉学笔记105-10
灰度变换 - 原理 - 及Matlab程序 - 图文03-26
2016年公安民警纪律作风整顿心得体会09-16
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 微机
- 单片机
- 原理
- 实验
- 图文
- 报告
- 嵇桥小学新建操场工程施工组织设计
- sprintf 详细用法
- 岱山-秀山-舟山110kV海底电缆工程海洋环境影响评价报告书简本
- 学位英语复习资料
- 60csx及mapsource新手快速入门指南
- 初中英语定语从句专项训练
- 新人教版一年级数学上册复习计划
- 中考名师提醒:中考作文想拿高分,得这样做
- 互感器检测作业指导书
- 苏教版小学语文五年级下册第1——3单元综合练习试题
- 兼职感想
- 医院双向转诊制度及工作流程
- 郭丽东公开课教案及反思(2)
- 我国城乡收入差距影响因素的实证分析
- 盘点北京市小升初十大证书
- 蜀道难(带拼音修正版)
- 2017-2022年中国中性亚硫酸钙行业发展深度研究与投资战略规划报
- 五年级作文一次勇敢的尝试
- 计算机控制技术
- 建设银行小企业信贷业务准入条件-YJJ