计算机组成原理课程设计报告Word格式.docx
《计算机组成原理课程设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计报告Word格式.docx(9页珍藏版)》请在冰豆网上搜索。
教师
小组
成员
备注
课题总体设计思想概述
此次试验选题是基于单片机的数码管。
单片机是在一块芯片中集成了CPU、RAM、ROM、定时/计数器和多功能I/O口等计算机所需要的基本功能部件的大规模集成电路。
实验现象是:
数码管逆序显示从9至0的数字。
课题设
计
目
的和原理
课
题
设
方
案
实验目的:
通过综合地运用上学期所学《计算机组成原理》的基本知识,借助单片机以及开发板等相关设备,独自自主地实现了数码管显示功能,对计算机各功能子系统的逻辑组成和工作机制有了更深刻的了解。
同时,加强了个人实际动手能力,以及将理论与实际灵活联系起来的能力,并巩固所学知识。
实验原理:
1单片机
1.1、单片机概念
单片机,及单片微型计算机,由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机。
又称MCU,单片机结构上的设计,在硬件、指令系统及I/O处理能力方面突出芯片的控制功能,单片机系统全力满足测控对象的测控功能,兼顾数据处理能力。
1.2单片机的结构与组成
单片机结构图
中央处理器(CPU):
是单片机的核心单元,通常由算术逻辑运算部件ALU和控制部件构成。
(CentralProcessingUnit)
ROM存放程序;
(ROM:
read-onlymemory)
RAM存放数据;
(RAM:
randomaccessmemory)
I/O为输入设备和输出设备。
(Input/Output)
单片机用片内总线(BUS)实现CPU、ROM、RAM、I/O各模块之间的信息传递。
系统时钟:
是单片机运行节拍的基准单元。
系统时钟类似于PC微机中的主频。
是反映单片机运行速度的重要指标。
定时器/计数器(T/C):
用于单片机内部精确定时或对外部事件(如输入的脉冲信号)进行计数,有的单片机内部有多个定时/计数器。
串口输入/输出口:
用于单片机和串行设备或其他单片机的通信。
串行通信是单片机与其他设备进行信息交换最简单和廉价的方式。
1.3单片机特点
(1)具有较高的性能价格比。
(2)体积小,可靠性高。
由单片机组成的应用系统结构简单,易对系统进行电磁屏蔽等抗干扰措施。
另一方面,单片机不易受外界的干扰。
所以单片机应用系统的可靠性比一般微机系统高得多。
(3)控制功能强。
单片机采用面向控制的指令系统,实时控制功能特别强。
CPU可以直接对I/0口进行输入、输出操作及逻辑运算,并且具有很强的位处理能力。
(4)使用方便、容易产品化。
单片机的体积小、功能强。
能满足许多小型对象的嵌入式应用要求。
1.4本次所用单片机为STC90C516RD系列单片机。
其特点为:
(1)增强型8051单片机;
(2)工作电压:
5.5V~3.3V;
(3)工作频率:
0~40MHz;
(4)程序空间:
8KFlashmemory;
(5)片上集成512字节RAM;
(6)具有EEPROM功能;
(7)具有ISP/IAP功能,无需专用编程器,可通过串行口下载程序。
2数码管
2.1数码管概念
数码管是一种半导体发光器件,其基本单元是发光二极管。
按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。
这次课程设计采用的是共阳极数码管。
共阳极LED显示器的发光二极管阳极并接。
如显示“2”,则共阳时段选码为“A4H”。
2.2显示码的知识:
如d的显示码
(1)显示d,则数码管中b,c,d,e,g要亮,其他灯灭;
(2)因为是共阳数码管,所以送‘0’亮,则b,c,d,e,g=0;
a,f,dp=1;
(3)则01011110.
2.3共阳极数码管电路图:
1、装软件及驱动
装各类应用软件:
USB驱动器、keil开发环境;
程序烧录软件:
PZISP,将单片机程序(.hex格式的文件)烧写到单片机。
2、hex文件生成
打开软件keil,新建项目,弹出新建项目窗口,输入项目名,点击“保存”,弹出为目标选择设备的窗口,如图。
点击“Almel”选卡,选择“AT89C52”,然后点“确定”,弹出“µ
Vision3”窗口,点“否”。
然后点左上角“文件”栏,选择“新建”,然后弹出Text1文本编辑框,点击“保存”,弹出“另存为”窗口,选择保存位置后,输入一文件名,后缀为.c(用c语言编写),接着点保存。
点击Target1,右键SourceGroup1,点击AddFilestoGroup‘SourceGroup1’,选择刚开始保存的.c文件名,然后添加。
右键Target1,点击OptionsforTarget‘Target1’,在Output选项卡中,选中‘CreateHEXFi:
’,再点击确定。
接着编程,通过调试,若程序无误,则编译产生hex文件。
3、程序烧录
hex文件产生后便可以进行烧录了,首先打开下载程序“PZ-ISP-V1.48”,将单片机面板与计算机相连,首先选择对应的端口号,接着点击“打开文件”,选择要烧录程序的hex文件,然后打开单片机点击“Download/下载”,接着打开单片机,停留几秒钟便如下图所示,则说明下载成功。
在数码管上便可看到实验现象。
4、程序设计
#include<
reg51.h>
intrins.h>
#defineNOP()_nop_()/*定义空指令*/
voiddelay(unsignedinti);
//函数声名
//此表为LED的字模
unsignedcharcodeLED7Code[]=
{~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};
/********************主函数********************/
main()
{
unsignedintLedNumVal=999,C=0;
//定义变量
while
(1)
{
if(++C>
=300)
{LedNumVal--;
//每隔300个扫描周期减一次
C=0;
//每隔300个扫描清零
}
/*将字模送到P0口显示,LED70x7f为小数点,共阴和共阳此处也是不一样*/P0=LED7Code[LedNumVal%10]&
0x7f;
delay(150);
//调用延时程序
}
/********************延时程序********************/
voiddelay(unsignedinti)
{
charj;
for(i;
i>
0;
i--)
for(j=200;
j>
j--);
测
试
图一
图二
错
误
及
结
果
分
析
错误分析:
1、将c文件导入keil,不能编译成功,说明代码有错误,经过多次调试程序才正确执行,并生成.hex文件。
2、单片机的线路是否连接正确。
3、将文件导入单片机时,端口是否对应,芯片类型是否选对。
结果分析:
最终实验现象为数码管上逆序循环显示数字9到0,说明实验成功。
实验过程中,一定要细心,可能一个毫不起眼的小细节就会引起错误,导致实验没法继续进行。
心
得
通过这次课程设计,对课本上知识有了更深刻的理解,学以致用,学习知识是用来解决生活中实际问题,唯有深刻理解才能将知识灵活的运用。
在实验中遇到了很多问题,在解决问题的过程中,中间也经历了一个不断学习、不断吸取经验的过程,也使知识得到了拓展与提高。
在理解实验原理的基础上,按照实验步骤,认真细心的做好每一步,不断改正,完善。
虽然个人能力有限,做出的东西比较简单,但毕竟这是自己努力认真学习后的成果。
同时也发现了自己很多不足,比如汇编编程就很不熟练,学过的知识不回顾就忘了好多,还有自己的理论结合实践的能力还有待加强。
但也有很多收获,对keil、PZ-ISP软件操作有了一定的操作经验,以及对单片机的理解也比以前深刻了,自己的逻辑思维能力也得到了磨练。