数字电压表课程设计测控Word文件下载.docx
《数字电压表课程设计测控Word文件下载.docx》由会员分享,可在线阅读,更多相关《数字电压表课程设计测控Word文件下载.docx(15页珍藏版)》请在冰点文库上搜索。
单片机基础电路如下:
图1单片机部分
功能特性概述:
AT89S52主要性能:
1、与MCS-51单片机产品兼容
2、8K字节在系统可编程Flash存储器
3、1000次擦写周期
4、全静态操作:
0Hz~33Hz
5、三级加密程序存储器
6、32个可编程I/O口线
7、三个16位定时器/计数器
8、八个中断源
9、全双工UART串行通道
10、低功耗空闲和掉电模式
l1、掉电后中断可唤醒
l2、看门狗定时器
13、双数据指针
l4、掉电标识符
功能特性描述:
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
VCC:
电源
GND:
地
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;
在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。
在flash编程和校验时,P1口接收低8位地址字节。
表2.1P1口的第二功能
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。
在flash编程和校验时,P3口也接收一些控制信号。
表2.2P3口的第二功能
RST:
复位输入。
晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。
看门狗计时完成后,RST脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALE/PROG:
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在flash编程时,此引脚(PROG)也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。
否则,ALE将被微弱拉高。
这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
PSEN:
外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。
当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。
EA/VPP:
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。
为了执行内部程序指令,EA应该接VCC。
在flash编程期间,EA也接收12伏VPP电压。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
Flash编程―并行模式:
AT89S52带有用作编程的片上Flash存储器阵列。
编程接口需要一个高电压(12V)编程使能信号,并且兼容常规的第三方Flash或EPROM编程器。
AT89S52程序存储阵列采用字节式编程。
编程方法:
对AT89S52编程之前,需根据Flash编程模式表和图13、图14对地址、数据和控制信号设置。
可采用下列步骤对AT89S52编程:
1.在地址线上输入编程单元地址信号
2.在数据线上输入正确的数据
3.激活相应的控制信号
4.把EA/Vpp升至12V
5.每给Flash写入一个字节或程序加密位时,都要给ALE/PROG一次脉冲。
字节写周期时自身定制的,典型值仅50us。
改变地址、数据重复第1步到第5步‘知道’全部文件结束。
DataPollingAT89S52用DataPolling作为一个字节写周期结束的标志特征
4.2、AD采样方案
ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。
它是逐次逼近式A/D转换器,可以和单片机直接接口。
(1)ADC0809的内部逻辑结构
图2.14ADC0809的内部逻辑结构
上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的据。
(2)引脚结构
图2.15ADC0809引脚结构图
IN0-IN7:
8条模拟量输入通道
ADC0809对输入模拟量要求:
信号单极性,电压范围是0-5V,若信号太小,必须进行放大;
输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:
4条
ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
通道选择表如下表所示。
表2.3地址输入线的通道选择
C
B
A
选择的通道
IN0
1
IN1
IN2
IN3
IN4
IN5
IN6
IN7
数字量输出及控制线:
11条
ST为转换启动信号。
当ST上跳沿时,所有内部寄存器清零;
下跳沿时,开始进行A/D转换;
在转换期间,ST应保持低电平。
EOC为转换结束信号。
当EOC为高电平时,表明转换结束;
否则,表明正在进行A/D转换。
OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。
OE=1,输出转换得到的数据;
OE=0,输出数据线呈高阻状态。
D7-D0为数字量输出线。
CLK为时钟输入信号线。
因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,
VREF(+),VREF(-)为参考电压输入。
ADC0809应用说明:
(1).ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。
(2).初始化时,使ST和OE信号全为低电平。
(3).送要转换的哪一通道的地址到A,B,C端口上。
(4).在ST端给出一个至少有100ns宽的正脉冲信号。
(5).是否转换完毕,我们根据EOC信号来判断。
(6).当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。
。
(3)采用8位AD转换器ADC0809,编程简单方便,价格便宜。
采样电路如图2。
4.3显示方案
显示部分(采用共阴4位八段数码管显示。
如图3所示:
)
图3数码管电路图
显示部分与单片机连接图如图4:
图4显示与单片机连接图
4.5、软件设计
采用汇编编程,程序如下:
TABLE:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
TABLE1:
DB040H,79H,024H,030H,19H,12H,02H,78H,00H,10H
ORG
0000H
AJMP
START
ORG
0003H
LJMP
CINT0
0100H
W1:
MOV
@R1,A
INC
R1
DJNZ
R2,W1
RET
START:
R1,#78H
MOV
R2,#02H
A,#00H
CALL
W1
MOV
A,#80H
MOV
DPTR,#0EFFFH
MOVX
@DPTR,A
CLR
R2,#0F0H
DISP
MAIN:
PSW,#00H
SETB
EA
SETB
EX0
IT0
DPTR,#0CFF8H
MOVX
L2:
JNB
F0,L2
ACALL
TUNBCD
LCALL
DISINT0
SJMP
MAIN
TUNBCD:
A,@R0
MOV
B,#51
DIV
AB
79H,A
A,B
CLR
F0
SUBB
A,#1AH
MOV
F0,C
A,#10
MUL
AB
B,#51
DIV
JB
F0,LOOP2
ADD
A,#5
LOOP2:
78H,A
DISP:
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVDPTR,#0EFFCH
MOVX@DPTR,A
MOVA,R2
INCDPTR
MOVX@DPTR,A
CALLDELAY
RET
DISP1:
DPTR,#TABLE1
MOVCA,@A+DPTR
MOVDPTR,#0EFFCH
MOVA,R2
INCDPTR
DISINT0:
MOVA,79H
MOVR2,#0FBH
CALLDISP1
MOVA,78H
MOVR2,#0F7H
CALLDISP
DELAY:
R6,#10
DELY1:
DJNZ
R7,DELY1
CINT0:
MOVX
A,@DPTR
@R0,A
RETI
END
五、设计心得
通过本次单片机的课程设计,我对该课程的内容有了进一步的认识和体会。
我认识到在课堂上学习的知识要运用到实践中确实不是一件简单的事,单片机是一个独立复杂的芯片,它可以实现很多相对较强的功能,但根据具体要求和实际情况怎么样选择,怎样合理设计是该课程最后所留给我们的最大问题,而这样一个实实在在的问题用课程设计的方式来寻求解决的方法我觉得是再适合不过的了,解决这些问题没有别的捷径,只有在实践中,一步一步,发现一个问题解决一个,才能获得最后最宝贵的知识和经验。
参考文献:
[1]《MCS-51系列单片微型计算机及其应用》,东南大学出版社,孙育才主编,2009年12月第四版;
[2]《微机系统原理与接口》,南京大学出版社,张颖超主编,2008年1月第一版;