计算机组成原理实验报告.docx
- 文档编号:1463718
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:12
- 大小:588.32KB
计算机组成原理实验报告.docx
《计算机组成原理实验报告.docx》由会员分享,可在线阅读,更多相关《计算机组成原理实验报告.docx(12页珍藏版)》请在冰豆网上搜索。
计算机组成原理实验报告
实验一51核发光二极管及数码管实验
一实验题目
51核发光二极管及数码管实验
二实验环境
win7
MedwinV3.0中文版
三实验要求
本实验分为两部分,首先进行51核的介绍,包含通常使用的51单片机及FPGA中51核的原理,通过对比,了解两者的异同。
在了解了51原理后结合51核在FPGA中进行原理实现,再基于FPGA中使用工具进行51核的编程。
在开发板中进行发光二极管实验,数码管实验。
编写程序使led灯(LED0,LED6,LED7)每隔一段时间闪烁一次。
提示:
编写延时程序delay().(用for循环实现。
led灯的闪烁即是不停的亮和灭,即令通用IO口每隔一段时间的输出取反。
例如:
LED_1=~LED_1。
控制2个数码管显示数字。
提示:
数码管是由P1口控制的。
四实验设计
1.外部发光二极管管脚:
74HC245芯片提高驱动,输出高电平发光二极管亮,输出低电平发光二极管灭,引脚锁定:
PIN100LED-D1
PIN99LED-D2
PIN94LED-D3
PIN92LED-D4
2.数码管部分:
开发板上没有固定的数码管,均需要外接。
而且都是FPGA译码。
在本实验中,对需要显示的数字经过DECL7S模块进行编码后输出到数码管上。
如想输出数字,只需输入0000~1111中的任意数字,如D=0101,则显示为5,D=1100,则显示为C,FPGA输出高时点亮。
3.程序架构是:
#include
sbitLED_1=P3^6;
sbitLED_2=P3^7;
voiddelay_ms(intdel)//延时1ms
{
inti,j;
for(i=0;i for(j=0;j<1000;j++); } voidLED_LM()//LED灯闪烁 {} voidshumaguan()//数码管显示对P1赋值 { } voidmain() { while (1) {} } 程序如图所示: 五实验仿真与测试 六实验结果分析 先在程序中设置延时,使得延时1ms,再设置LED灯闪烁的程序,最后设置数码管显示数值——14,将板子的USB接口与电脑的USB连接,得出实验结果。 七实验小结 通过这次实验,我了解了51核的原理,能够用51单片机对数码管核LED灯进行操作,也学会了如何使用开发板。 但是只能进行简单的操作,所以之后需要加紧练习,争取熟练掌握51核的应用。 实验二键盘扫描 一实验名称 键盘扫描 二实验环境 win7 MedwinV3.0中文版 三实验要求 本实验主要进行对4*4键盘原理分析,实现对键盘扫描码的判断。 要求使用查询方式进行键盘扫描码判断(数码管输出)。 四实验设计 实验设计的源程序如下图所示: 五实验仿真与测试 六实验结果分析 如图所示源程序,先设置键盘的行引脚和列引脚,之后设置延时,初始化时把初始值都变成1,按下哪个键,哪个位置变成0,。 设置列扫描值,第一列是0111,值为1;第二列是1011,值为2;第三列是1101,值为4;第四列是1110,值为8。 输入值输出值0123 COL10ROW10111 COL21ROW21011 COL31ROW31101 COL41ROW41110 输入值输出值89AB COL11ROW10111 COL21ROW21011 COL30ROW31101 COL41ROW41110 然后输出键盘扫描值。 结果如图所示,按下第一列第四行,数码管显示3;按下第四行第四列,数码管显示F。 七实验小结 通过这次实验,我了解了键盘扫描的原理,并学会如何用开发板输出源程序的结果。 但是对键盘扫描的源程序理解还不能熟练编写,需要再多加练习。 实验三 一实验题目 中断系统和定时/计数器 二实验环境 win7 MedwinV3.0中文版 三实验要求 使用定时器中断控制发光二极管每隔一段时间闪烁一次,并设置中断使数码管计数从0到59。 四实验设计 80C51的中断系统有5个中断源(8052有6个),2个优先级,可实现二级中断嵌套: 1.可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。 当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。 2.可由IT1(TCON.2)选择其为低电平有效还是下降沿有效。 当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置1,向CPU申请中断。 3.TF0(TCON.5),片内定时/计数器T0溢出中断请求标志。 当定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断。 (本次实验用到该中断) 4.TF1(TCON.7),片内定时/计数器T1溢出中断请求标志。 当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断。 5.RI(SCON.0)或TI(SCON.1),串行口中断请求标志。 当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。 80C51单片机的中断优先级有三条原则: 1.CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。 2.正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。 3.正在进行的低优先级中断服务,能被高优先级中断请求所中断。 为了实现上述后两条原则,中断系统内部设有两个用户不能寻址的优先级状态触发器。 其中一个置1,表示正在响应高优先级的中断,它将阻断后来所有的中断请求;另一个置1,表示正在响应低优先级中断,它将阻断后来所有的低优先级中断请求。 实验所需程序如下: 五实验仿真与测试 六实验结果分析 在程序中设置初始化程序: 1.对TMOD赋值,以确定T0和T1的工作方式。 2.计算初值,并将其写入TH0、TL0或TH1、TL1。 3.中断方式时,则对IE赋值,开放中断。 EA=1;ET0=1。 4.使TR0或TR1置位,启动定时/计数器定时或计数。 输入中断向量是10,则数码管输出0到9然后循环,LED灯随程序设计所示,一直闪烁。 七实验小结 这次实验我学习了中断系统,并且学会如何去设计一个计数器,但是在实验过程设计中,LED灯的闪烁频率与数码管计数的频率不相同,所以无法两个同时实现,我要在今后的学习中思考这个问题。 实验四 一实验题目 FPGA中串口设计 二实验环境 win7 MedwinV3.0中文版 三实验要求 编写程序控制串口接收主机发送的数据,例如,在数码管上显示出自己的学号。 四实验设计 使用方式一: 一帧10位: 8位数据位,1个起始位(0),1个停止位 (1)。 RXD: 接收数据端。 TXD: 发送数据端。 波特率: 用T1作为波特率发生器,B=(2SMOD/32)×T1溢出率。 发送: 写入SBUF,同时启动发送,一帧发送结束,TI=1。 接收: REN=1,允许接收。 接收完一帧,若RI=0且停止位为1(或SM2=0),将接收数据装入SBUF,停止位装入RB8,并使RI=1;否则丢弃接收数据,不置位RI。 当REN=1,CPU开始采样RXD引脚负跳变信号,若出现负跳变,才进入数据接收状态,先检测起始位,若第一位为0,继续接收其余位;否则,停止接收,重新采样负跳变。 数据采样速率为波特率16倍频,在数据位中间,用第7、8、9个脉冲采样3次数据位,并3中取2保留采样值。 程序如下: 五实验仿真与测试 六实验结果分析 在程序部分,设置定时器1的工作方式为2,再设置波特率为2400,让TR1=1开定时器,REM=1开启接收,SM0=0选择工作方式1,使EA=1,设置CPU中断允许位,使ES=1,设置串行接口中断允许位。 然后设置自己的学号,在数码管上输出。 七实验小结 通过这次实验,我学会了如何在主机和串口之间互相传递数据。 以后要多加练习,熟练掌握。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)