单片机生产实习说明书.docx
- 文档编号:16561603
- 上传时间:2023-07-14
- 格式:DOCX
- 页数:20
- 大小:564.57KB
单片机生产实习说明书.docx
《单片机生产实习说明书.docx》由会员分享,可在线阅读,更多相关《单片机生产实习说明书.docx(20页珍藏版)》请在冰点文库上搜索。
单片机生产实习说明书
生产实习说明书
学院
专业
学生姓名
学号
年级
指导教师
2009年3月3日
一、生产实习的目的和要求
(1)目的:
通过生产实习制作,使学生进一步加深理解单片机的工作原理,通过实习制作掌握引入外部中断的方法及其中断服务程序的编写方法;掌握定时器的使用及其中断服务程序的编写方法;从而了解如何构成系统的主程序;通过实习制作掌握单片机应用系统的制作工艺及调试方法,进一步理解单片机系统的设计及开发方法,从而使学生具备设计单片机应用系统的能力。
(2)要求:
1.熟悉单片机最小系统板的基本构成;
2.掌握A/D转换芯片ADC0809与单片机的硬件连接方法及A/D转换的中断编程方法。
3.掌握开关量信号检测及其指示电路的设计方法和编程方法。
4.掌握单片机引入外部中断的实现方法及其中断服务程序的编写方法。
5.掌握定时器的使用及其中断服务程序的编写方法。
6.了解LED显示器的工作原理,掌握静态显示器驱动电路的设计方法以及编程方法。
7.掌握单片机应用系统的制作工艺及调试方法。
二、生产实习系统的工作原理
1、自行设计一个直流稳压电源——交流输入:
220V直流输出:
+5V
2、利用ADC0809做A/D转换器;使用单片机AT89C51做控制器;选用4位LED显示块(共阴极)做显示器,并设计相应的驱动电路;设计外部中断功能键一个;设计开关量信号检测及其指示电路;由上述电路构建成一个单片机应用系统。
3、进行硬件电路的设计、焊接与调试。
4、自行编写有关的应用程序,以完成系统功能的需求。
5、进行系统的软、硬件联机调试。
6、系统运行时,循环显示你组同学的班级号(例如01)和学生号(例如23),为了显示清晰,要求循环显示时间2s(或5s),
7、每隔5秒,启动、采集A/D转换一次。
8、模拟量信号由电位器W1提供。
A/D转换结束时,以外部中断方式通知CPU,当0809A/D转换完成后,由EOC信号经反向后产生中断申请信号,由
1引脚接入;中断后读取A/D转换结果,并连续读取8个或4个数据,数据保存在片内RAM中,
9、对8个或4个数据进行数值滤波后作为A/D转换的平均值保存,显示时,是将平均值转换为十进制数送显示器显示,为了显示清晰,要求显示时间2s(或5s),
10、当按下外部中断功能键时,检测4路开关量信号,并由发光二极管显示其开关状态;外部中断功能键由
0引脚接入。
11、为了保证精确定时,要求T0的中断优先级别高于外部中断0和外部中断1。
三、AT89C51的工作原理及片选地址
AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本,与MCS-51兼容,4K字节可编程FLASH存储器,寿命:
1000写/擦循环,数据保留时间:
10年,全静态工作:
0Hz-24MHz三级程序存储器锁定,128×8位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中断源,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路。
管脚说明:
VCC:
供电电压GND:
接地
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
串口通讯
单片机的结构和特殊寄存器,这是你编写软件的关键。
至于串口通信需要用到那些特殊功能寄存器呢,它们是SCON,TCON,TMOD,SCON等,
SBUF数据缓存寄存器这是一个可以直接寻址的串行口专用寄存器。
实际上SBUF包含了两个独立的寄存器,一个是发送寄存,另一个是接收寄存器,但它们都共同使用同一个寻址地址-99H。
CPU在读SBUF时会指到接收寄存器,在写时会指到发送寄存器,而且接收寄存器是双缓冲寄存器,这样可以避免接收中断没有及时的被响应,数据没有被取走,下一帧数据已到来,而造成的数据重叠问题。
发送器则不需要用到双缓冲,一般情况下我们在写发送程序时也不必用到发送中断去外理发送数据。
操作SBUF寄存器的方法则很简单,只要把这个99H地址用关键字sfr定义为一个变量就可以对其进行读写操作了,通常在标准的reg51.h或at89x51.h等头文件中已对其做了定义,只要用#include引用就可以了。
SCON串行口控制寄存器通常在芯片或设备中为了监视或控制接口状态,都会引用到接口控制寄存器。
SCON就是51芯片的串行口控制寄存器。
它的寻址地址是98H,是一个可以位寻址的寄存器,作用就是监视和控制51芯片串行口的工作状态。
51芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就是使用SCON寄存器。
它的各个位的具体定义如下:
SM0SM1SM2RENTB8RB8TIRI
SM0、SM1为串行口工作模式设置位,这样两位可以对应进行四种模式的设置。
串行口工作模式设置。
SM0SM1模式功能波特率
000同步移位寄存器fosc/12
0118位UART可变
1029位UARTfosc/32或fosc/64
1139位UART可变
在这里只说明最常用的模式1,其它的模式也就一一略过,有兴趣的朋友可以找相关的硬件资料查看。
表中的fosc代表振荡器的频率,也就是晶振的频率。
SM2在模式2、模式3中为多处理机通信使能位。
在模式0中要求该位为0。
REM为允许接收位,REM置1时串口允许接收,置0时禁止接收。
REM是由软件置位或清零。
如果在一个电路中接收和发送引脚P3.0,P3.1都和上位机相连,在软件上有串口中断处理程序,当要求在处理某个子程序时不允许串口被上位机来的控制字符产生中断,那么可以在这个子程序的开始处加入REM=0来禁止接收,在子程序结束处加入REM=1再次打开串口接收。
大家也可以用上面的实际源码加入REM=0来进行实验。
TB8发送数据位8,在模式2和3是要发送的第9位。
该位可以用软件根据需要置位或清除,通常这位在通信协议中做奇偶位,在多处理机通信中这一位则用于表示是地址帧还是数据帧。
RB8接收数据位8,在模式2和3是已接收数据的第9位。
该位可能是奇偶位,地址/数据标识位。
在模式0中,RB8为保留位没有被使用。
在模式1中,当SM2=0,RB8是已接收数据的停止位。
TI发送中断标识位。
在模式0,发送完第8位数据时,由硬件置位。
其它模式中则是在发送停止位之初,由硬件置位。
TI置位后,申请中断,CPU响应中断后,发送下一帧数据。
在任何模式下,TI都必须由软件来清除,也就是说在数据写入到SBUF后,硬件发送数据,中断响应(如中断打开),这时TI=1,表明发送已完成,TI不会由硬件清除,所以这时必须用软件对其清零。
RI接收中断标识位。
在模式0,接收第8位结束时,由硬件置位。
其它模式中则是在接收停止位的半中间,由硬件置位。
RI=1,申请中断,要求CPU取走数据。
但在模式1中,SM2=1时,当未收到有效的停止位,则不会对RI置位。
同样RI也必须要靠软件清除。
常用的串口模式1是传输10个位的,1位起始位为0,8位数据位,低位在先,1位停止位为1。
它的波特率是可变的,其速率是取决于定时器1或定时器2的定时值(溢出速率)。
AT89C51和AT89C2051等51系列芯片只有两个定时器,定时器0和定时器1,而定时器2是89C52系列芯片才有的。
四、ADC0809的工作原理及选片地址
ADC0809概述
ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
是目前国内应用最广泛的8位通用A/D芯片
1.主要特性
1)8路输入通道,8位A/D转换器,即分辨率为8位。
2)具有转换起停控制端。
3)转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时)
4)单个+5V电源供电
5)模拟输入电压范围0~+5V,不需零点和满刻度校准。
6)工作温度范围为-40~+85摄氏度
7)低功耗,约15mW。
2.内部结构
ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。
3.外部特性(引脚功能)
ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。
下面说明各引脚功能。
IN0~IN7:
8路模拟量输入端。
2-1~2-8:
8位数字量输出端。
ADDA、ADDB、ADDC:
3位地址输入线,用于选通8路模拟输入中的一路
ALE:
地址锁存允许信号,输入,高电平有效。
START:
A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。
EOC:
A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
REF(+)、REF(-):
基准电压。
Vcc:
电源,单一+5V。
GND:
地。
ADC0809的工作过程
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
转换数据的传送A/D转换后得到的数据应及时传送给单片机进行处理。
数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。
为此可采用下述三种方式。
(1)定时传送方式
对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。
例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。
可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。
(2)查询方式
A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。
因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。
(3)中断方式
把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。
不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。
首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。
五、LED的工作原理及片选地址
LED设计理念
LED的出现打破了传统光源的设计方法与思路,目前有两种最新的设计理念。
1.情景照明:
是2008年由飞利浦提出的情景照明,以环境的需求来设计灯具。
情景照明以场所为出发点,旨在营造一种漂亮、绚丽的光照环境,去烘托场景效果,使人感觉到有场景氛围。
2.情调照明:
是2009年由凯西欧提出的情调照明,以人的需求来设计灯具。
情调照明是以人情感为出发点,从人的角度去创造一种意境般的光照环境。
情调照明与情景照明有所不同,情调照明是动态的,可以满足人的精神需求的照明方式,使人感到有情调;而情景照明是静态的,它只能强调场景光照的需求,而不能表达人的情绪,从某种意义上说,情调照明涵盖情景照明。
情调照明包含四个方面:
一是环保节能,二是健康,三是智能化,四是人性化。
LED的发光原理
LED手电筒
发光二极管是由Ⅲ-Ⅳ族化合物,如GaAs、GaP、GaAsP等半导体制成的,其核心是PN结。
因此它具有一般P-N结的I-N特性,即正向导通,反向截止、击穿特性。
此外,在一定条件下,它还具有发光特性。
在正向电压下,电子由N区注入P区,空穴由P区注入N区。
进入对方区域的少数载流子(少子)一部分与多数载流子(多子)复合而发光。
假设发光是在P区中发生的,那么注入的电子与价带空穴直接复合而发光,或者先被发光中心捕获后,再与空穴复合发光。
除了这种发光复合外,还有些电子被非发光中心(这个中心介于导带、介带中间附近)捕获,而后再与空穴复合,每次释放的能量不大,不能形成可见光。
发光的复合量相对于非发光复合量的比例越大,光量子效率越高。
由于复合是在少子扩散区内发光的,所以光仅在靠近PN结面数μm以内产生。
理论和实践证明,光的峰值波长λ与发光区域的半导体材料禁带宽度Eg有关,即
λ≈1240/Eg(nm)
式中Eg的单位为电子伏特(eV)。
若能产生可见光(波长在380nm紫光~780nm红光),半导体材料的Eg应在3.26~1.63eV之间。
比红光波长长的光为红外光。
现在已有红外、红、黄、绿及蓝光发光二极管,但其中蓝光二极管成本、价格很高,使用不普遍。
LED的调光控制
传统上,LED的调光是利用一个DC信号或滤液PWM对LED中的正向进行调节来完成的。
减小LED电流将起到调节LED光输出强度的作用,然而,正向电流的变化也会改变LED的彩色,因为LED的色度会随着电流的变化而变化。
许多应用(例如汽车和LCDTV背光照明)都不能允许LED发生任何的色彩漂移。
在这些应用中,由于周围环境中存在不同的光线变化,而且人眼对于光强的微小变化都很敏感,因此宽范围调光是必需的。
通过施加一个PWM信号来控制LED亮度的做法允许不改变彩色的情况下完成LED的调光。
人们常说的真正彩色(TrueColor)PWM调光是利用一个PWM信号来调节LED的亮度。
调节LED亮度有三种常用方法:
(1)使用SET电阻,在LED驱动控制IC引脚RSET两端并联不同的转换电阻,使用一个直流电压设置LED驱动控制IC引脚RSET的电流,从而改变LED的正向工作电流,达到调节ALED发光亮度的目的。
(2)采用PWM技术,利用PWM控制信号,通过控制LED的正向工作电流的占空比来调节ALED的发光亮度。
(3)线性调节,最简便的方法是在LED驱动控制C中使用外部SET电阻来实现LED的调光控制。
虽然,这种调光控制方法有效,但却缺乏灵活性,无法让用户改变光强度。
线性调节则会降低效率,并引起白光LED朝向黄色光谱的色彩偏移。
可能是轻微的偏移,但可在敏感应用中检测出。
采用数字或叫PWM的LED调光控制法以大于100HZ的开关工作频率,以脉宽调制的方法改变LED驱动电流的脉冲占空比来实理LED的调光控制,选用大于100HZ开关调光控制频率主要是为了避免人眼感觉到调光闪烁现象,在LED的PWM调光控制下,LED的发光亮度正比于PWM的脉冲占空比,在这种调光控制方法下,可以在高度调光比范围内保持LED的发光颜色不变,采用PWM的LED调光控制的调光比范围可达3000:
1。
线性LED调光控制方法就是采用模拟调光控制方法,在模拟调光控制下,通过调节LED的正向工作电流来实现LED的调光控制,调光控制范围可达10:
1。
如果要进一步降低LED的正向工作电流则会产生LED发光颜色发生变化和不能准确调节控制LED的正向工作电流的问题。
运作参数和效率
一般最常见的LED工作功率都是设定于30至60毫瓦电能以下。
在1999年开始引入了可以在1瓦电力输入下连续使用的商业品级LED。
这些LED都以特大的半导体芯片来处理高电能输入的问题,而那半导体芯片都是固定在金属铁片上,以助散热。
在2002年,在市场上开始有5瓦的LED的出现,而其效率大约是每瓦18至22流明。
2003年九月,Cree,Inc.公司展示了其新款的蓝光LED,在20毫安下达到35%的照明效率。
他们亦制造了一款达65流明每瓦的白光LED商品,这是当时市场上最光的白光LED。
在2005年他们展示了一款白光LED原型,在350毫安工作环境下,创下了每瓦70流明的记录性效率。
今天,OLED的工作效率比起一般的LED低得多,最高的都只是在10%左右。
但OLED的生产成本低得多,例如可以用简单的印制方法将特大的OLED数组安放在屏幕上,用以制造彩色显示屏。
LED控制卡
LED显示屏发展到今已逐步走入民用化,如各种店面用的门头屏、室内外的各种方形屏和其他的各种条型屏等。
目前要配显示屏必须要配接一台电脑来更新内容,这使得很大一部分用户特别是广告用户更新节目困难。
U盘LED控制卡解决了这一难题,使用U盘这个最常见而且价廉的信息传递媒介工具,即使用户没有电脑也可借助网吧、家里或者朋友的电脑编好内容去更新显示屏内容,U盘不需要一直插在显示屏或其延长线上,插上后几秒钟后信息便存入屏内,U盘便可拔走。
U盘LED控制卡具有常用的串口通讯功能,想用电脑直接通讯的用户可直接接上使用。
用U盘传递LED显示屏内容,并已逐步应用于全国各地的LED显示屏上。
六、焊接过程中遇到的问题和解决方法
七、调试过程中遇到的问题和解决方法
八、设计程序
#include
#include
#include
uchartt;
ucharINT_flag=0;
ucharvalue1,value2,value3,value4;
//-----------------------------------------
voiddelay_us(uintt)
{
while(t--);
}
/************************************
函数功能:
系统初始化
**************************************/
voidINT()
{
EA=1;//总中断开启//
EX1=1;//开外部中断,EA和EX0都是已经定义了的,可以直接用//
IT1=1;//跳变沿触发方式,IT0=0是默认的电平触发方式,
EX0=1;
IT0=1;
TMOD=0x01;//设置定时器0为工作方式1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;//开定时器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 生产 实习 说明书