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