单片机课程设计AD转换.docx
- 文档编号:4587258
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:19
- 大小:331.39KB
单片机课程设计AD转换.docx
《单片机课程设计AD转换.docx》由会员分享,可在线阅读,更多相关《单片机课程设计AD转换.docx(19页珍藏版)》请在冰豆网上搜索。
单片机课程设计AD转换
一、课程设计目的------------------------------2
二、课程设计内容与要求---------------------2
三、芯片简介-----------------------------------3
(一)A/D转换芯片0809引脚图与功能简介
(二)8051单片机引脚图与引脚功能简介
(三)8155引脚图及功能描述
四、设计方案及程序流程图---------------------10
五、子模块设计及硬件电路连接----------12
(一)A/D转换模块
(二)单片机模块
(三)数码管动态扫描模块
六、总程序-----------------------------19
七、课程设计总结---------------------------23
1.收获与体会
2.遇到的问题及解决
八、参考书目---------------------------------24
一、课程设计目的
单片机课程设计的目的就是要锻炼学生的实际动手能力。
在理论学习的基础上,通过完成一个具有综合功能的小系统,使学生将课堂上学到的理论知识与实际应用结合起来,对电子电路、电子元器件等方面的知识进一步加深认识,同时在软件编程、调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立设计单片机应用系统的开发设计工作打下一定的基础。
二、课程设计内容与要求
要求每个学生(或小组)都要自己动手独立设计完成一个典型的单片机应用小系统。
设计题目由指导教师提供,也可以自己选择设计题目,但难度不应小于参考题目,需经指导教师审查后方可确定是否采纳。
一般4人为一小组。
课程设计的时间为1周。
设计的最终作品包括硬件和软件两个部分,要求能够演示并达到设计指标的要求。
每个学生(或小组)在作品完成后,要经指导教师检查通过后才算完成。
课程设计报告每个学生一份,独立完成。
设计目的:
利用MCS-51芯片及相关芯片构成模拟温度检测。
设计要求:
1、由可变电阻产生0~5V连续变化的模拟信号代表温度0~100度。
2、用ADC转换器完成模拟量到数字量的转换。
3、用LED数码管显示检测温度结果并精确到小数点后一位
三、芯片简介
(一)A/D转换模块
ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。
它是逐次逼近式A/D转换器,可以和单片机直接接口。
(1)ADC0809的内部逻辑结构
由下图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
(2). ADC0809引脚结构
ADC0809各脚功能如下:
D7-D0:
8位数字量输出引脚。
IN0-IN7:
8位模拟量输入引脚。
VCC:
+5V工作电压。
GND:
地。
REF(+):
参考电压正端。
REF(-):
参考电压负端。
START:
A/D转换启动信号输入端。
ALE:
地址锁存允许信号输入端。
(以上两种信号用于启动A/D转换).
EOC:
转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。
OE:
输出允许控制端,用以打开三态数据输出锁存器。
CLK:
时钟信号输入端(一般为500KHz)。
A、B、C:
地址输入线。
ADC0809对输入模拟量要求:
信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:
4条
ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
通道选择表如下表所示。
C
B
A
选择的通道
0
0
0
IN0
0
0
1
IN1
0
1
0
IN2
0
1
1
IN3
1
0
0
IN4
1
0
1
IN5
1
1
0
IN6
1
1
1
IN7
数字量输出及控制线:
11条
ST为转换启动信号。
当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。
EOC为转换结束信号。
当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。
OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。
OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。
D7-D0为数字量输出线。
CLK为时钟输入信号线。
因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,
VREF(+),VREF(-)为参考电压输入。
(二)、8051单片机引脚图与引脚功能简介
⒈电源:
①VCC-芯片电源,接+5V;
②VSS-接地端;
⒉时钟:
XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。
⒊控制线:
控制线共有4根,
ALE/PROG:
地址锁存允许/片内EPROM编程脉冲
①ALE功能:
用来锁存P0口送出的低8位地址
②PROG功能:
片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
PSEN:
外ROM读选通信号。
RST/VPD:
复位/备用电源。
①RST(Reset)功能:
复位信号输入端。
②VPD功能:
在Vcc掉电情况下,接备用电源。
EA/Vpp:
内外ROM选择/片内EPROM编程电源。
①EA功能:
内外ROM选择端。
②Vpp功能:
片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
⒋I/O线
80C51共有4个8位并行I/O端口:
P0、P1、P2、P3口,共32个引脚。
P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。
(三)8155引脚图及功能描述
8155有40个引脚,采用双列直插封装,其引脚图和组成框图如下页图所示。
我们对8155的引脚分类说明如下:
地址/数据线AD0~AD7(8条):
是低8位地址线和数据线的共用输入总线,常和51单片机的P0口相连,用于分时传送地址数据信息,当ALE=1时,传送的是地址。
I/O口总线(22条):
PA0~PA7、PB0~PB7分别为A、B口线,用于和外设之间传递数据;PC0~PC5为C端口线,既可与外设传送数据,也可以作为A、B口的控制联络线。
(3)控制总线(8条):
RESET:
复位线,通常与单片机的复位端相连,复位后,8155的3个端口都为输入方式。
WR,RD:
读/写线,控制8155的读、写操作。
ALE:
地址锁存线,高电平有效。
它常和单片机的ALE端相连,在ALE的下降沿将单片机P0口输出的低8位地址信息锁存到8155内部的地址锁存器中。
因此,单片机的P0口和8155连接时,无需外接锁存器。
CS:
片选线,低电平有效。
IO/M:
RAM或I/O口的选择线。
当=0时,选中8155的256BRAM;当=1时,选中8155片内3个I/O端口以及命令/状态寄存器和定时/计数器。
TIMERIN、TIMEROUT:
定时/计数器的脉冲输入、输出线。
TIMERIN是脉冲输入线,其输入脉冲对8155内部的14位定时/计数器减1;为输出线,当计数器计满回0时,8155从该线输出脉冲或方波,波形形状由计数器的工作方式决定。
.作片外RAM使用
当CE=0,IO/M=0时,8155只能做片外RAM使用,共256B。
其寻址范围由以及AD0~AD7的接法决定,这和前面讲到的片外RAM扩展时讨论的完全相同。
当系统同时扩展片外RAM芯片时,要注意二者的统一编址。
对这256BRAM的操作使用片外RAM的读/写指令“MOVX”。
作扩展I/O用
当CE=0,IO/M=1时,此时可以对8155片内3个I/O端口以及命令/状态寄存器和定时/计数器进行操作。
与I/O端口和计数器使用有关的内部寄存器共有6个,需要三位地址来区分。
四、设计方案及程序流程图
数据采集,主要由三大模块组成:
A/D转换模块,8051单片机模块和七段译码显示模块。
首先,通过实验箱产生0---5V可调电压;然后,将0---5V可调电压输入A/D转换进行数模转换,将0---5V的模拟量转换成00H-----FFH的数字信号,出入到单
片机中,作为输入量进行倍率变换,并经软件编程实现动态扫描,最终在七段译码显示管上显示出温度变化。
该方案的前面部分本应用温度传感器,但试验设备不足,便用0---5V电压代替,之后的过程理论上皆可由实验箱和编程实现,所以具有较高的可行性。
五、子模块设计及硬件电路连接
(一)A/D转换模块:
(1)A/D转换原理图及硬件电路连线图示
(2)实验内容与步骤
利用实验仪上的0809做A/D转换实验,〖ZH(〗实验仪上的W1电位器提供模拟量输入。
编制程序,将模拟量转换成数字量,通过发光二极管L1-L8显示。
A/D转换器大致分有三类:
一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近式A/D转换器,精度、速度、价格适中;三是并行A/D转换器,速度快,价格也昂贵。
实验用ADC0809属第二类,是8位A/D转换器。
每采集一次一般需100μs。
由于ADC0809A/D转换器转换结束后会自动产生EOC信号(高电平有效),取反后将其与8031的INT0相连,可以用中断方式读取A/D转换结果。
①把A/D区0809的0通道IN0用插针接至W1的中心抽头V01插孔(0-5V)。
②0809的CLK插孔与分频输出端T4相连。
③将W2的输入VIN接+12V插孔,+12V插孔再连到外置电源的+12上(电源内置时,该线已连好)。
调节W2,使VREF端为+5V。
④将A/D区的VREF连到W2的输出VREF端。
⑤EXIC1上插上74LS02芯片,将有关线路按图连好。
⑥将A/D区D0-D7用排线与BUS1区XD0-XD7相连。
⑦将BUS3区P3.0用连到数码管显示区DATA插孔。
⑧将BUS3区P3.1用连到数码管显示区CLK插孔。
⑨单脉冲发生/SP插孔连到数码管显示区CLR插孔。
⑩仿真实验系统在"P....."状态下。
⑾以连续方式从起始地址06D0运行程序,在数码管上显示当前采集的电压值转换后的数字量,调节W1数码管显示将随着电压变化而相应变化,典型值为0-00H,2.5V-80H,5V-FFH。
(3)参考程序
ORG06D0H
START:
MOVA,#00H
MOVDPTR,#9000H
MOVX@DPTR,A
MOVA,#00H
MOVSBUF,A
MOVSBUF,A
MOVXA,@DPTR
DISP:
MOVR0,A
ANLA,#0FH
LP:
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVSBUF,A
MOVR7,#0FH
H55S:
DJNZR7,H55S
MOVA,R0
SWAPA
ANLA,#0FH
MOVCA,@A+DPTR
MOVSBUF,A
MOVR7,#0FH
H55S1:
DJNZR7,H55S1
LCALLDELAY
AJMPSTART
TAB:
DB0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h
DB0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh
DELAY:
MOVR6,#0FFh
DELY2:
MOVR7,#0FFh
DELY1:
DJNZR7,DELY1
DJNZR6,DELY2
RET
END
(二)单片机处理模块
(1)单片机处理模块功能
由于本设计由可变电阻产生0~5V连续变化的模拟信号代表温度0~100度,于是由单片机来完成由A/D转换来的数字量到数码管能显示的BCD码的转换,由可变电阻产生0~5V连续变化的模拟信号代表温度0~100度的公式为x=D*1000/255=D*4,其中因要显示到小数点后一位所以多乘以10,A/D转换输出值为D
(2)单片机处理程序参考
1)取A/D转换输出值D
STA:
MOVA,@DPTR
2)延时程序
MOVR6,#0C8H
LOOP1:
MOVR7,#0F8H
NOP
LOOP2:
DJNZR7,LOOP2
DJNZR6,LOOP1
3)倍率程序
MOVB,#04H;将从AD转换器输出的数字量乘4
MULAB
MOV40H,A
MOVA,B
MOV41H,A
4)BCD码转换程序
bmbcd:
movr0,#40h;被转换数在40H开始的2个单元中,共2个字节
movr7,#02h;2个字节
movr1,#4ah;转换后的BCD码在4aH开始的3个单元中
mova,r0
movr5,a
mova,r1
movr6,a
mova,r7
movr3,a
incr3
clra
clbcd:
mov@r1,a
incr1
djnzr3,clbcd
mova,r7
movb,#08h
mulab
movr3,a
lpp0:
mova,r5
movr0,a
mova,r7
movr2,a
clrc
lpp1:
mova,@r0
rlca
mov@r0,a
incr0
djnzr2,lpp1
mova,r6
movr1,a
mova,r7
movr2,a
incr2
lpp2:
mova,@r1
addca,@r1
daa
mov@r1,a
incr1
djnzr2,lpp2
djnzr3,lpp0
mova,r6
movr1,a
MOVR2,#03H
MOVR0,4AH
MOVR1,#79H
LOOP3:
MOVA,@R0
ANLA,#0FH
MOV@R1,A
MOVA,@R0
SWAPA
ANLA,#0FH
INCR1
MOV@R1,A
LOOP4:
INCR0
INCR1
DJNZR2,LOOP3
(三)数码管动态扫描模块及其硬件电路连接图
8155芯片,控制口地址:
FF20H,A口(字位):
FF21H,B口(字段):
FF22H。
本实验不需硬件连线,阅读如下硬件原理图了解连接原理,连续运行程序后,观察LED显示结果。
原理图如下:
参考程序
ORG00000H
MOVA,#03H;控制字,A,B口输出
MOVDPTR,#0FF20H;控制口地址
MOVX@DPTR,A
MOV7EH,#01H;显示缓冲区高位...
MOV7DH,#02H;送要的显示字符
MOV7CH,#03H
MOV7BH,#04H
MOV7AH,#05H
MOV79H,#06H
DIR:
MOVR0,#79H;设缓冲区指针
MOVR3,#01H;设字位,最低位
MOVA,#00H;关显示
MOVDPTR,#0FF21H;字位口
MOVX@DPTR,A
LD1:
MOVA,@R0;取显示字符
MOVDPTR,#SEG
MOVCA,A+@DPTR
MOVDPTR,#0FF22H
MOVX@DPTR,A;字段口输出
MOVDPTR,#0FF21H;设置字位口
MOVA,R3
MOVX@DPTR,A;输出
MOVR7,#0FFH;延时
DJNZR7,$
INCR0;缓冲区指针加一
JBACC.5,LD2;左移,是否是显示最高位
RLA
MOVR3,A
SJMPLD1
LD2:
SJMPDIR
SEG:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,
DB80H,90H,88H,83H,0C6H,0A1H,86H,84H
六、总程序
ORG06D0H
START:
MOVA,#00H
MOVDPTR,#9000H
MOVX@DPTR,A
MOVR6,#0C8H
LOOP1:
MOVR7,#0F8H
NOP
LOOP2:
DJNZR7,LOOP2
DJNZR6,LOOP1
STA:
MOVA,@DPTR
MOVB,#04H;将从AD转换器输出的数字量乘4
MULAB
MOV40H,A
MOVA,B
MOV41H,A
bmbcd:
movr0,#40h;被转换数在40H开始的2个单元中,共2个字节
movr7,#02h;2个字节
movr1,#4ah;转换后的BCD码在4aH开始的3个单元中
mova,r0
movr5,a
mova,r1
movr6,a
mova,r7
movr3,a
incr3
clra
clbcd:
mov@r1,a
incr1
djnzr3,clbcd
mova,r7
movb,#08h
mulab
movr3,a
lpp0:
mova,r5
movr0,a
mova,r7
movr2,a
clrc
lpp1:
mova,@r0
rlca
mov@r0,a
incr0
djnzr2,lpp1
mova,r6
movr1,a
mova,r7
movr2,a
incr2
lpp2:
mova,@r1
addca,@r1
daa
mov@r1,a
incr1
djnzr2,lpp2
djnzr3,lpp0
mova,r6
movr1,a
MOVR2,#03H
MOVR0,4AH
MOVR1,#79H
LOOP3:
MOVA,@R0
ANLA,#0FH
MOV@R1,A
MOVA,@R0
SWAPA
ANLA,#0FH
INCR1
MOV@R1,A
LOOP4:
INCR0
INCR1
DJNZR2,LOOP3
MOVA,#03H:
动态扫描程序
MOVDPTR,#0FF20H
MOVX@DPTR,A
DIR:
MOVR0,#79H
MOVR3,#01H
MOVA,#00H
MOVDPTR,#0FF21H
MOVX@DPTR,A
LD1:
MOVA,@R0
MOVDPTR,#SEG
MOVCA,@A+DPTR
MOVDPTR,#0FF22H
MOVX@DPTR,A
MOVDPTR,#0FF21H
MOVA,R3
MOVX@DPTR,A
MOVR7,#0FFH
DJNZR7,$
INCR0
JBACC.5,LD2
RLA
MOVR3,A
SJMPLD1
LD2:
SJMPDIR
MOVR6,#0C8H
LOOP5:
MOVR7,#0F8H
NOP
LOOP6:
DJNZR7,LOOP6
DJNZR6,LOOP5
LJMPSTA
SEG:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
DB80H,90H,88H,83H,0C6H,0A1H,86H,8EH
END
七、课程设计总结
1.收获与体会
我在这一次数据采集的设计过程中,受益匪浅。
通过对自己在单片机课堂上所学知识的回顾,结合模拟电子技术和数字电子技术的知识,与组员共同设计,完成了目标。
这为自己今后进一步深化学习,积累了一定的宝贵经验,还对电子电路、电子元器件等方面的知识进一步加深认识,同时在软件编程、调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。
学以致用,培养了我运用所学知识解决实际问题的能力。
通过这次课程设计我发现,只有理论水平提高了;才能够将课本知识与实践相结合。
另外,小组成员之间的合作也至为重要,遇到不懂的问题,或相互讨论,或请教老师,大家分工明确,有条不紊地完成了设计。
2.遇到的问题及解决
刚开始,我们一点思路没有,但是大家很积极,很快找到了A/D转换这个切入点。
由此入手,我们进入了硬件连接阶段,由于对实验箱不是很熟悉,我们连线时也不是很顺利。
我们请教了实验室老师,顺利连好了电路。
并且了解到,连电路前要关闭电源并且检查线是否是完好的。
接着,我们进入了程序编写阶段。
光是这个A/D转换的接口问题我们就研究了很久,到最后换了几个试验箱才完成了对A/D转换功能的验证。
模块程序的编写并不是特别难,但是各个模块间的衔接需要仔细思考才能做好。
我们就这样一步一步的走向成功,但是最后还是因为实验箱的问题没有完成设计的最后验证过程。
希望老师在购买实验箱时,认真核对检查。
八、参考书目
《新概念51单片机C语言教程》郭天祥编著电子工业出版社
《单片微型计算机原理及应用》张毅坤编著山西电子科技大学出版社
《单片机课程设计实例指导》李光飞编著北京航空航天大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 AD 转换