单片机1Word文档下载推荐.docx
《单片机1Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机1Word文档下载推荐.docx(11页珍藏版)》请在冰点文库上搜索。
在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。
掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。
80C51有PDIP(40pin)和PLCC(44pin)两种封装形式。
第二章系统方案论证
2.1总体方案论证
8路输入电压循球检测,主要由三个部分组成:
测试端、控制部分、显示部分组成。
其中测试端实现测试功能,测试电压的多少;
控制部分实现对电压的控制,当电压超出已知值或低于已知值时,它就会起动,实行自行控制;
显示部分主要实现的是对当前电压的显示,是由四个LED数码显示管组成的。
模拟信号数值显示由AD转换、数据处理及显示控制等组成。
在些电路的设计中实现了模拟信号和数字信号之间的转换,些功能通过AD0809来实现, ADC0809是8位逐次逼近型A/D转换器。
它由一个8路模拟开关、一个地址锁存译码器、一个A/D转换器和一个三态输出锁存器组成。
多路开关可选通8个模拟通道,
允许8路模拟量分时输入,共用A/D转换器进行转换。
三态输出锁器用于锁存A/D转换完
的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
第三章系硬件设计
3.1器件原理
1、AD0809的工作原理
IN0-IN7:
8条模拟量输入通道
ADC0809对输入模拟量要求:
信号单极性,电压范围是0-5V,若信号太小,必须进行放大;
输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:
4条ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
通道选择表如下表所示。
CBA选择的通道
000IN0
001IN1
010IN2
011IN3
100IN4
101IN5
110IN6
111IN7
数字量输出及控制线:
11条ST为转换启动信号。
当ST上跳沿时,所有内部寄存器清零;
下跳沿时,开始进行A/D转换;
在转换期间,ST应保持低电平。
EOC为转换结束信号。
当EOC为高电平时,表明转换结束;
否则,表明正在进行A/D转换。
OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。
OE=1,输出转换得到的数据;
OE=0,输出数据线呈高阻状态。
D7-D0为数字量输出线。
CLK为时钟输入信号线。
因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(+),VREF(-)为参考电压输入。
2、AT89C51简介
AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
3、LED数码管
LED数码管以发光二极管作为发光单元,颜色有单红,黄,蓝,绿,白,七彩效果。
单色,分段全彩管可用大楼,道路,河堤轮廓亮化,LED数码管可均匀排布形成大面积显示区域,可显示图案及文字,并可播放不同格式的视频文件。
通过电脑下flash、动画、文字等文件,或使用动画设计软件设计个性化动画,播放各种动感变色的图文效果;
3.2模块设计
1、电压采集模块
采用AD0809转换芯片,其中A/D转换器用于实现模拟量向数字量的转换,由于模拟转换电路的种类很多,选择A/D转换器从速度,精度和价格方面考虑,其内部是8路模拟选通开关,以及相应的通道抵制锁存用译码电路,转换时间是100us左右,单电源供电,模块原理图如图3-1所示:
图3.2.1
2、数据处理模块
只有当轮流显示的通道快显示到通道8后,长按住功能转换键等出现数码管全熄灭后再放开,就会转到选择通道的功能。
切换通道时,也要长按一会,等出现数码管全熄灭后再放开。
简易数字电压测量电路由A/D转换、数据处理及显示控制等组成,电路原理图如图所示。
A/D转换由集成电路0809完成。
0809具有8路模拟输入端口,地址线(23~-25脚)可决定对哪一路模拟输入作A/D转换。
22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。
6脚为测试控制,当输入一个2uS宽高电平脉冲时,就开始A/D转换。
7脚为A/D转换结束标志,当A/D转换结束时,7脚输出高电平。
9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从该端口输出。
单片机的P1、P3.0~P3.3端口作为四位LED数码管显示控制。
P3.5端口用作单路显示/循环显示转换按钮,P3.6端口用作单路显示时选择通道。
P0端口作A/D转换数据读入用,P2端口用作0809的A/D转换控制,在刚上电时,系统默认为循环显示8个通道的电压值状态。
当进行一次测量后,将显示每一通道的A/D转换值,每个通道的数据显示时间为1S左右。
些模块是控制部分,原理图如图3-2所示:
图3.2.2
3.显示模块
主程序在调用显示子程序和测试之程序之间循环,子程序采用动态扫描法实现四位数码管的数值显示。
测量所得的A/D转换数据放在70H~77H内存单元中,测量数据在显示时需转换成10进制BCD码放在78H~7BH单元中,其中7BH存放通道标志数。
寄存器R3用作8路循环控制,R0用作显示数据地址指针由于ADC0809在进行A/D转换时需要有CLK信号,而此时的ADC0809的CLK是接在AT89S51单片机的P3.3端口上,也就是要求从P3.3输出CLK信号供ADC0809使用。
因此产生CLK信号的方法就得用软件来产生了。
由于ADC0809的参考电压VREF=VCC,所以转换之后的数据要经过数据处理,在数码管上显示出电压值,些部分为显示部分,如图3.2.3所示:
图3.2.3
3.3原理图
8路电压循回检测系统原理图,如图3.3.1所示
图3.3.1
第四章软件设计
汇编语言程序如下:
LED_0EQU30H
LED_1EQU31H
LED_2EQU32H
LED_3EQU33H;
存放段码
CLOCKBITP1.2;
定义ADC0808时钟位
STBITP1.0
EOCBITP1.4
OEBITP1.1
ALEBITP1.3
ORG0000H
SJMPMAIN
ORG000BH
LJMPINT_T0
MAIN:
MOVLED_0,#00H
MOVLED_1,#00H
MOVLED_2,#00H
MOVLED_3,#00H
MOVR2,#8
MOVTMOD,#02H
MOVTH0,#0FFH
MOVTL0,#0FFH
SETBEA
SETBET0
SETBTR0
WUXIN:
MOVP2,33H
SETBALE
CLRALE
SETBST
CLRST
JNBEOC,$;
等待转换结束
SETBOE
MOVA,P0;
读取AD转换结果
CLROE
MOVB,#51;
AD转换结果转换成BCD码
DIVAB
MOVLED_2,A
MOVA,B
MOVB,#5
MOVLED_1,A
MOVLED_0,B
LCALLDISP
ACALLDELAY
INC33H
DJNZR2,WUXIN
INT_T0:
CPLCLOCK;
提供ADC0808时钟信号
RETI
DISP:
MOVR4,#4;
设置循环次数(数码管个数)
MOVDPTR,#TAB;
DPTR指向段码表表头
MOVR0,#33H;
RO指向最后一个显示缓冲区
LP:
MOVA,@R0;
取要显示的内容
MOVCA,@A+DPTR
MOVSBUF,A;
送给串行口发送出去
JNBTI,$;
等待发送完毕
CLRTI
CLRP3.2
NOP
SETBP3.2
DECR0;
缓冲区地址减一,指向下一个缓冲区
DJNZR4,LP;
循环次数减一,不等于0继续
RET
DELAY:
MOVR5,#3
D2:
MOVR6,#255;
延时5毫秒
D1:
MOVR7,#255
DJNZR7,$
DJNZR6,D1
DJNZR5,D2
TAB:
DB0C0H,0F9H,0A4H,0B0H;
SEGMENTCODE0-3
DB99H,92H,82H,0F8H;
SEGMENTCODE4-7
DB80H,90H,
DB0FFH;
'
灭'
END
第五章总结与结论
通过这次的课程设计对“8路电压循环检测器”的制作让我对单片机的理论有了更加深入的了解,同时在具体的制作过程中我们发现现在书本上的知识与实际的应用存在着不小的差距,书本上的知识很多都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,可在实际的应用时这些是不能被忽略的,我们不得不考虑这方的问题,这让我们无法根据书上的理论就轻易得到预想中的结果,有时结果甚至很差别很大,在此次课程设计过程中,让我感觉到了,自己所学知识的溃泛,验证了古人所说的“书到用时方恨少”这句话。
通过这次实践使我更深刻的体会到了理论联系实际的重要性,我们在今后的学习工作中会更加的注重实际,避免称为只会纸上谈兵的赵括。
做了两周的课程设计,让人感受颇深,有关于单片机知识的,但更多是团队和合作。
在这课设中不仅学习了硬件知识还巩固了自己软件知识,在这次课程设计中用到了Keil软件来编写汇编程序,用PROTUS软件来进行仿真,可以相接更加直观的看到自己的程序的运行结果,可以知道程序的正确与否。
对理论知识有了更好的理解。
我们认为,在这学期的课程设计中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。
更重要的是,在实验课上,我们学会了很多学习的方法。
而这是日后最实用的,真的是受益匪浅。
要面对社会的挑战,只有不断的学习、实践,再学习、再实践。