单片计算机实验板制做毕业设计.docx
《单片计算机实验板制做毕业设计.docx》由会员分享,可在线阅读,更多相关《单片计算机实验板制做毕业设计.docx(33页珍藏版)》请在冰豆网上搜索。
单片计算机实验板制做毕业设计
毕业设计说明书(论文)
作者:
学号:
院系:
专业:
题目:
单片计算机实验板的制作
指导者:
评阅者:
摘要
设计的51单片机综合实验板,性价比高,主要包含了单片机最小系统模块、显示模块、按键
模块、传感器模块、存储器模块、时钟模块等一些在单片机系统设计中常用的功能模块且各个功能模块相对独立。
为该实验板设计了“测试单片机实验板按键功能”且实验程序都已在该实验板上调试成功。
在使用时,只是给出一套电子元件和一块PCB板,同学们可以根据自己的爱好兴趣,结合实验板的各个功能模块,设计实现自己的单片机作品,对所需要的功能模块进行焊接。
把单纯的做实验变成做项目,可以大大提高同学们做单片机实验的兴趣,从而提高了同学们的动手实践能力,进而提高了同学们的综合设计和创新能力。
关键词:
单片机,实验板,实验程序,单片机作品
Abstract
The51MCU'sexperimentboardwhichIhavedesignedisingoodqualitybutlowinprice.IthasmainlycontainedtheMCU'ssmallestsystemmodule,thedisplaymodule,thepressedkeymodule,thesensormodule,thememorymodule,theclockmoduleandsomeotherfunctionalmodulesthatarecommonlyusedintheMCUsystem'sdesign,eachofwhichisrelativelyindependent.
IhavedesignedaclockexperimentbasedontheDS1302,aexperimentofthetemperaturemonitoringsystemandsomeotherexperiments.Ialsohaveprogramedforeachexperimentandeachofthemhasdebuggedonthisexperimentboardsuccessfully.Usingit,youcandesignyourownproductionaccordingtoyourinterestaslongasyouofferasetofelectroniccomponent,apieceofPCBboardandweldthecorrespondingfunctionalmodulesoftheexperimentalboard.Ifwecanturndoingexperimentpurelytomakingaprojectinstead,ourinterestofdoingexperimentofMCUmaybeenhancedgreatly.
Accordingly,ourpracticalability,theabilityofintegrateddesignandinnovativecapabilitymustbeimprovedgreatly.
Keywords:
MCU,ExperimentalBoard,Experimentalprogram,ProductionaboutMCU
第1章绪论
1.1课题研究背景
单片机是靠程序运行的,并且可以修改。
通过不同的程单片微型计算机简称单片机,是典型的嵌入式微控制器(MicrocontrollerUnit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。
由于单片机在工业控制领域的广泛应用,为使
更多的业内人士、学生、爱好者,产品开发人员掌握单片机这门技术,于是产生单片机开发板,比较有名的例如电子人DZR-01A单片机开发板[1]。
单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上[2]。
相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择[3]。
程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。
一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板。
但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别。
只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性。
1.1.1单片机实验板的构成及基本功能
单片机实验板,它由80C51、A/D、D/A、步进电机、MAX232、键盘及显示器组成。
其中80C51片内有256个RAM单元,接6个7段码显示器、液晶显示器和16个按键作输入[5]。
串行口连接MAX232串行口转换芯片,A/D、D/A连接相应的设备实现模数,数模转换功能、步进电机实现正反转功能。
在实验板上可编写键盘扫描程序、显示程序、时间的设定及计时程序、从键盘上输入两个加数或减数显示结果程序、位变量的逻辑运算程序及串行口和上位机通讯程序等,还可和其它课程相结合,进行实验。
单片机实验板的衍生功能:
此单片机实验报告中的实验板是一个单片机应用系统的硬件电路。
有键盘输入和显示输出,在这个基础电路上通过P口对不同检测或控制对象还可衍生出各种应用来[6]。
例如:
时间的设置及显示、温度的检测及控制等,在此实验板上,编写相应的软件即可,同样A/D转换芯片应根据精度要求,选择8位、12位等转换器,或满足精度要求的压频转换器。
也可对外部多种传感器进行检测,如:
温度、烟雾、水警、门警、红外等,构成监控电路。
1.2课题研究目的和意义
二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
不过,这种电脑,通常是指个人计算机,简称PC机。
它由主机、键盘、显示器等组成[7]。
还有一类计算机,大多数人却不怎么熟悉。
这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。
顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。
因为它体积小,通常都藏在被控机械的“肚子”里。
它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。
现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。
现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。
究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上[8]。
1.3单片机实验板制作的意义
实验板把几个课题结合在一起学习,使课程有延续性,也提高了学生学习的积极性和分析问题及解决问题的能力。
本此设计的实验板是根据本部门对单片机实验板具体装配的要求,再结合本专业的特色,专门为此开发的实验板,具有一定的实际意义[9]。
1.4主要研究内容与技术路线
1.4.1主要研究内容
掌握现有51系列单片机使用方法。
分析现有的单片机实验板的功能。
研究本次单片机实验板所达到的功能。
熟练掌握使用Protel99SE设计电路图和电路板。
使用新型STC单片机。
制做A/D电路、D/A电路,显示电路,键盘控制电路、存贮器电路及一些单片机实验软件。
功能图如图1-1
图1-1原理图
第2章硬件设计
2.1STC12C5A60S2的引脚介绍
STC12C5A60S2的引脚如图2-1所示
图2-1STC12C5A60S2引脚图
2.2STC12C5A60S2时钟介绍
单片机的工作过程是:
取一条指令、译码、进行操作,再取一条指令、译码、进行微操作,这样自动的一步一步的由微操作依序完成相应指令规定的功能[10]。
各指令的微操作在时间上由严格的次序,各种微操作的时间次序称作为时序。
单片机的时钟信号用来为单片机芯片内部的微处理提供时间基准。
STCl2C5A60S2系列单片机有两个时钟源:
内部R/C振荡时钟和外部晶体时钟,如图2-2所示。
现出厂标准配置是使用外部晶体或时钟。
芯片内部的R/C振荡器在5v单片机常温下频率是11MHz-17MHz,在3v单片机常温下频率是8MH7-12MH5因为随着温度的变化,内部R/C振荡器的频率会有一些温飘,再加上制造误差,故内部R/C振荡器只适用于对时钟频率要求不敏感的场合[11]。
在对STCl2C5A60S2系列单片机进行ISP下载用户程序时,可以在选项中选择:
“下次冷启动后时钟濂为外部晶体或时钟。
”这样下载完用户程序后,停电,再冷启动后单片机的工作时钟使用的就不是内部R/C振荡器,而是外部晶体振荡后产生的高精度时钟了(接在XTALl/XTAL2管脚上),也可以直接从XTALl脚输入外部时钟,XTAL2脚浮空。
用户以后外部必须接晶体或时钟单片机才可以工作[12]。
图2-2STCl2C5A60S2时钟结构图
第3章软件设计
3.1模数/数模转换接口电路设计
3.1.1A/D转换器及其与单片机的接口
模数转换器即A/D转换器,简称ADC,它是把连续的模拟信号转变为离散的数字信号的器件。
3.1.2A/D转换器发展应用及主要技术指标
随着计算机、通信和多媒体技术的飞速发展,全球高新技术领域数字化进程的不断推进,模数转换器(ADC)有了长足进步,出现了许多采用新工艺、新结构的高性能的ADC[13]。
纵观ADC的发展历程,面临新世纪的ADC正朝着低功耗、高速和高分辨率的方向发展。
按工作原理分,ADC的主要种类有:
逐次逼近式、双积分式、计数比较式和并行式。
下面主要介绍最常用的逐次逼近式ADC和双积分式ADC的转换原理。
逐次逼近式ADC的转换原理
逼近式ADC是由比较器、D/A转换器、逐次逼近寄存器和控制逻辑组成。
在时钟脉冲的同步下,控制逻辑先使N位寄存器的D7位置1(其余位为0),此时该寄存器输出的内容为80H,经DAC转换为模拟量输出VN,与待转换的模拟输入信号VIN相比较,若VIN大于等于VN,则比较器输出为1[14]。
于是在时钟脉冲的同步下,保留D7=1,并使下一位D6=1,所得新值(C0H)再经DAC转换得到新的VN,再与VIN比较,重复以上过程。
反之,若使D7=1后,经比较,若VIN小于VN,则使D7=0,D6=1,所得新值VN再与VIN比较,重复以上过程。
依次类推,从D7到D0都比较完毕,转换便结束时,控制逻辑使EOC变为高电平,表示A/D转换结束,此时的D7--D0即为对应于模拟输入信号的VIN数字量[15]。
双积分式ADC的转换原理
控制逻辑先对未知的输入模拟电压VIN进行固定时间T积分,然后转为对标准电压进行反向积分,直至积分输出返回起始值。
对标准电压的积分时间T1(或T2)正比于模拟输入电压VIN。
输入电压大,则反向积分时间长。
用频率标准时钟脉冲来测量积分时间T1(或T2),即可得到对应与模拟电压VIN的数字量。
A/D转换器的主要技术指标
分辨率
ADC的分辨率是指使输出数字量变化一个相邻数码所需输入模拟电压的变化量。
常用二进制表示。
量化误差
ADC把模拟量变为数字量,用数字量近似表示模拟量,这个过程称为量化。
量化误差是ADC的有限位数对模拟量进行量化而引起的误差。
量化误差和分辨率有相应的关系,分辨率高的A/D转换器具有较小的量化误差。
偏移误差
偏移误差是指输入信号为零时,输出信号不为零的值,所以有时又称为零值误差。
假定ADC没有非线性误差,则其转换特性曲线各阶梯中点的连线必定是直线,这条直线与横轴相交点所对应的输入电压值就是偏移误差。
满刻度误差
满刻度误差又称为增益误差。
ADC的满刻度误差是指满刻度输出数码所对应的实际输入电压与理想输入电压之差。
线性度线
性度有时又称为非线性度,它是指转换器实际的转换特性与理想直线的最大偏差。
绝对精度
在一个转换器中,任何数码所对应的实际模拟量输入与理论模拟输入之差的最大值,称为绝对精度。
转换速率
ADC的转换速率是能够重复进行数据转换的速度,即每秒转换的次数。
而
完成一次A/D转换所需的时间(包括稳定时间),则是转换速率的倒数[17]。
3.1.3A/D转换器的结构
STCl2C5A60AD/S2系列带A/D转换的单片机的A/D转换口在Pl口(P17-P10),有8路10位高速A/D转换器,速度可达:
250KHz(25万次/秒)。
8路电压输入型All3,可做温度检测、电池电压检测、接键扫描、频谱检测等。
上电复位后P1口为弱上拉型I/0口,用户可以通过软件设置将8路中的任何一路设置为A11)转换,不需作为A/D使用的口可继续作为I/0口使用。
图3-1DAC数/模转换器原理图
STCl2C5A60S2系列单片机ADC由多路选择开关、比较器、逐次比较寄存器、10位DAC、转换结果寄存器以及ADC_CONTR构成。
STCl2C5A60s2系列单片机的ADC是逐次比较型ADC。
逐次比较型ADC由一个比较器和D/A转换器构成,通过逐次比较逻辑,从最高位(MSB)开始,顺序地对每一输入电压与内置D/A转换器输出进行比较,经过多次比较,使转换所得的数字量逐次逼近输入模拟量对应值。
逐次比较型A/D转换器具有速度高,功耗低等优点。
从上图3-1所示可以看出,通过模拟多路开关,将通过ADC0~7的模拟量输入送给比较器。
用数/模转换器(DAC)转换的模拟量与本次输入的模拟量通过比较器进行比较,将比较结果保存到逐次比较器,并通过逐次比较寄存器输出转换结果。
A/D转换结束后,最终的转换结果保存到ADC转换结果寄存器ADCREs和ADCRESL,同时,置位ADC控制寄存器ADC_CONTR中的A/D转换结束标志位ADC_FLAG,以供程序查询或发出中断申请。
模拟通道的选择控制由ADC控制寄存器ADCc1)NTR中的cHs2~cHs0确定。
ADC的转换速度由ADC控制寄存器中的SPEEDl和SPEED0确定。
在使用ADC之前,应先给ADC上电,也就是置位ADC控制寄存器中的ADc_P0wER位[18]。
当ADRJ=0时,如果取10位结果,则按下面公式计算
当ADRJ=0时,如果取8位结果,则按下面公式计算
当ADRJ=1时,如果取10位结果,则按下面公式计算
式中,Vin为模拟输入通道输入电压,Vcc为单片机实际工作电压,用单片机工作电压作为模拟工作电压。
3.1.4A/D(D/A)转换的实际应用线路图
实际应用线路图,如图3-2所示
图3-2实际应用线路图
3.1.5片内存储器和特殊功能寄存器(SFRs)
STCl2c5A60S2系列单片机的程序存储器和数据存储器是各自独立编址的STCl2C5A60S2系列单片机的所有程序存储器都是片上Flash存储器,不能访可外部程序存储器,因为没有外部访可使能信号EA和程序存储启用信号PSEN。
STCl2C5A60S2系列单片机内部有1280字节的数据存储器,其在物理和逻辑上都分为两个地址空间:
内部RAM(256字节)和内部扩展RAM(1024字节)。
另外,STCl2C5A60S2系列单片机还可以访可在片外扩展的64KB外部数据存储器。
程序存储器
Type
ProgramFlash
STC12C/LE5A08S2/AD
0000H-1FFFH(8K)
STC12C/LE5A16S2/AD
0000H-3FFFH(16K)
STC12C/LE5A20S2/AD
0000H-4FFFH(20K)
STC12C/LE5A32S2/AD
0000H-7FFFH(32K)
STC12C/LE5A40S2/AD
0000H-9FFFH(40K)
STC12C/LE5A48S2/AD
0000H-0BFFFH(48K)
STC12C/LE5A52S2/AD
0000H-0CFFFH(52K)
STC12C/LE5A56S2/AD
0000H-0DFFFH(56K)
STC12C/LE5A60S2/AD
0000H-0EFFFH(60K)
STC12C/LE5A62S2/AD
0000H-0F7FFH(62K)
3FFFH
16K
ProgramFlash
Memory
(8-64K)
程序存储器(如图3-3所示)用于存放用户程序、数据和表格等信息。
STCl2C5A60C2系列单片机内部集成了8K~62K字节的Flash程序存储器。
STCl2C5A60S2系列各种型号单片机的程序Flash存储器的地址如下表3-1所示。
表3-1程序Flash存储器的地址
0000H
图3-3程序存储器
单片机复位后,程序计数器(PC)的内容为0000H,从0000H单元开始执行程序。
另外中断服务程序的入口地址(又称中断向量)也位于程序存储器单元。
在程序存储器中,每个中断都有一个固定的入口地址,当中断发生并得到响应后,单片机就会自动跳转到相应的中断入口地址去执行程序。
外部中断0的中断服务程序的入口地址是0003H,定时器/计数器0中断服务程序的入口地址是000BH,外部中断1的中断服务程序的入口地址0013H,定时器/计数器的中断服务程序的入口地址是001BH等。
更多的中断服务程序的入口地址(中断向量)见单独的中断章节。
由于相邻中断入口地址的间隔区间(8个字节)有限,一艘情况下无法保存完整的中断服务程序,因此,一艘在中断响应的地址区域存放一条无条件转移指令,指向真正存放中断服务程序的空间去执行。
程序Flash存储器可在线反复编程擦写10万次以上,提高了使用的灵活性和方便性[19]。
数据存储器(SRAM)
STCl2C5A60S2系列单片机内部集成了1280字节RAM,可用于存放程序执行的中间结果和过程数据,内部数据存储器在物理和逻辑上都分为两个地址空间:
内部RAM(256字节)和内部扩展RAM(1024字节)。
此外,STC12C5A60S2系列单片机还可以访可在片外扩展的64KB外部数据存储器。
内部RAM
FF
80
内部RAM共256字节,可分为3个部分低128字节RAM(与传统8051兼容)、高128字节RAM(1nte在8052中扩展了高128字节RAM)及特殊功能寄存器区。
低128字节的数据存储器既可直接寻址也可间接寻址。
高128字节RAM与特殊功能寄存器区貌似共用相同的地址范围,都使用80H~FFH,地址空间虽然貌似重叠,但物理上是独立的,使用时通过不同的寻址方式加以区分。
高128字节RAM只能间接寻址,特殊功能寄存器区只可直接寻址。
内部RAM的结构如下图3-4所示,地址范围是00H~FFH。
7F
00
图3-4内部RAM的结构图
低128字节RAM也称通用RAM区。
通用RAM区又可分为工作寄存器组区,可位寻址区,用户RAM区和堆栈区。
工作寄存器组区地址从00H~1FH共32B(字节)单元,分为4组(每一组称为一个寄存器组),每组包含8个8位的工作寄存器,编号均为R0~Ⅳ,但属于不同的物理空间。
通过使用工作寄存器组,可以提高运算速度。
R0~Ⅳ是常用的寄存器,提供4组是因为1组往往不够用。
程序状态字PSW寄存器中的RSl和RS0组合决定当前使用的工作寄存器组。
见下面PSW寄存器的介绍。
可位寻址区的地址从20H~2FH共16个字节单元。
20H~2FH单元既可向普通ROM单元一样接字节存取,也可以对单元中的任何一位单独存取,共128位,所对应的地址范围是00H~7FH。
位地址范围是00H~7FH,内部RAM低128字节的地址也是00H~7FH;从外表看,二者地址是一样的,实际上二者具有本质的区别;位地址指向的是一个位,而字节地址指向的是一个字节单元,在程序中使用不同的指令区分。
内部RAM中的30H~FH单元是用户RAM和堆栈区。
一个8位的堆栈指针(SP),用于指向堆栈区。
单片机复位后,堆栈指针SP为07H,指向了工作寄存器组0中的R7,因此,用户初始化程序都应对SP设置初值,一艘设置在80H以后的单元为宜。
如图3-5所示。
可位寻址区
工作组3
工作组2
工作组1
图3-5低
工作组0
图3-5128字节的内部RAM
、内部扩展ROM
STCl2C5A60S2单片机片内除了集成256字节的内部RAM外,还集成了1024字节的扩展RAM,地址范围是0000H~03FFH访可内部扩展RAM的方法和传统8051单片机访可外部扩展RAM的方法相同,但是不影响P0口、P2口、P5.6、P5.7NALE。
在汇编语言中,内部扩展RAM通过MOVX指令访可,即使用“MOVX@DPTR”或者“MOVX@Ri”指令访可。
在c语言中,可使用xdata声明存储类型即可,如“unsignedcharxdatai=0;”。
单片机内部扩展RAM是否可以访可受辅助寄存器AUXR(地址为8EH)中的EXTRAM位控制。
STCI2C5AEOS2/AD/PWM系列单片机8051单片机扩展RAM管理及禁止ALE输出特殊功能寄存器
表3-2辅助寄存器AUXR
Mnemonic
Add
NAME
7
6
5
4
3
2
1
0
ResetValue
AUXR
8EH
AuxiliaryRegister
T0x12
T1X12
UAR_MOX6
BRTR
S2SMDD
BRTX12
EXTRAM
S1BRS
0000,0000
外部RAM63KB
STC12C5A0S2/AD/PWM系列单片机在00H到3FFH单元(1024字节),使用MOVX@DPTR指令访问,超过400H地址空间总是访问外部数据存储器(含400H单元),MOVX@Ri只能访问00H到FFH单元。
如图3-6所示。
AuxiliaryRam1KB
外部ROM
63K
EXTRAM=0EXTRAM=1
图3-600H到3FFH单元
特殊功能寄存器(SFRs)
特殊功能寄存器(SFR)是用来对片内各功能模块进行管理、控制、监视的控制寄存器和状态寄存器,是一个特殊功能的RAM区。
STC12C5A60S2系列单片机内的特殊功能寄存器(SFR)与内部高128字节RAM貌似公用相同的地址范围,都使用80H~FFH,但特殊功能寄存(SFR)与直接寻址命令访问STC12C5A60S2系列单片机的特殊功能寄存器名称及地址映象。
第4章成品调试
4.1定时器/计数器
STCI2xx系列有4个定时器,其