封面.docx
- 文档编号:5345471
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:14
- 大小:226.64KB
封面.docx
《封面.docx》由会员分享,可在线阅读,更多相关《封面.docx(14页珍藏版)》请在冰点文库上搜索。
封面
基于LCD1602和ADC0832设计的两路电压表
姓名:
徐天驰
学号:
080307224
院系:
机电院
指导老师:
程玉柱
专业:
测控技术与仪器
起止日期:
2011.12.19~12.31
地点:
7A6237A625
1、DS1302的引脚及其功能,以及DS1302与单片机的硬件连接?
2、如何编写基于1602LCD的显示驱动程序?
1基于LCD1602和ADC0832设计的两路电压表
1ADC0832芯片
ADC0832具有以下特点:
(1)8位分辨率;
(2)双通道A/D转换;(3)输入输出电平与TTL/CMOS相兼容;(4)5V电源供电时输入电压在0~5V之间;(5)工作频率为250KHZ,转换时间为32μS;(6)一般功耗仅为15mW;(7)8P、14P—DIP(双列直插)、PICC多种封装;(8)商用级芯片温宽为0°Cto+70°C?
,工业级芯片温宽为40℃-+85℃
引脚及功能:
图1
CS:
片选使能,低电平有效
CH0:
模拟输入通道0,或作为IN+/-使用
CH1:
模拟输入通道1,或作为IN+/-使用
GND:
芯片参考0电位(地)
DI:
数据信号输入,选择通道控制
DO:
数据信号输出,转换数据输出
CLK:
芯片时钟输入
VCC:
电源输入
ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。
其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。
芯片转换时间仅为32μS,具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。
独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。
通过DI数据输入端,可以轻易的实现通道功能的选择。
正常情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。
但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。
\
时序图:
图2
CS作为选通信号,在时序图中可以看到,从CS置为低电平开始,一直到置为高电平结束。
CLK提供时钟信号。
当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。
当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。
此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。
在第1个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。
在第2、3个脉冲下沉之前DI端应输入2位数据(SGL、Odd)用于选择通道功能,当此2位数据为“1”、“0”时,只对CH0进行单通道转换。
当2位数据为“1”、“1”时,只对CH1进行单通道转换。
当2位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。
当2位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1作为正输入端IN+进行输入。
在完成输入启动位、通道选择之后,到第3个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。
从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。
直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。
也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATA0。
随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束。
最后将CS置高电平禁用芯片,此时就可以开始读出数据,转换得到的数据会被送出二次,一次高位在前传送,一次低位在前传送,连续送出。
在程序读取二个数据后,我们可以加上检验来看看数据是否被正确读取。
作为单通道模拟信号输入时ADC0832的输入电压是0~5V且8位分辨率时的电压精度为19.53mV。
如果作为由IN+与IN-输入的输入时,可将电压值设定在某一个较大范围之内,从而提高转换的宽度。
但值得注意的是,在进行IN+与IN-的输入时,如果IN-的电压大于IN+的电压,则转换后的数据结果始终为00H。
2系统硬件设计
硬件系统主要有单片机最小系统电路,LCD1602液晶显示电路,ADC0832模数转换电路3个电路模块。
为了便于仿真观测,在ADC0832模数转换电路的两个模拟信号输入端并接了两个虚拟电压表,液晶显示器显示的电压值应当和虚拟电压表测得的电压一致。
还应当注意一点的是,液晶显示电路的RS和RW两个引脚通过74LS373与单片机连接,说明了P0口在此既是数据线又是地址线。
74LS373为地址锁存器,这种方法的连接意味着CPU控制LCD时使用了接口扩展方法。
LCD的寄存器是单片机存储器的一部分,所以也有其地址,根据连线可以知道地址有:
0x0000,0x0001,0x0002,0x0003.在根据LCD的液晶控制命令可以知道,这四个地址的具体功能分别为:
写指令,写LCD的状态,写入数据,读取数据。
具体硬件连线图如下图6-1-3所示:
图3
6.1.3软件系统设计
程序:
AD_CSBITP3.5;使能接口
AD_CLKBITP3.4;时钟接口
AD_DATBITP3.3;数据输入,输出接口
RSBITP2.0;RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器
WRBITP2.1;WR为读写信号线,高电平时进行读操作,低电平时进行写操作
EBITP2.2;E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令
BJGWEQU5AH
ORG00H
AJMPMIAN1
ORG03H
AJMPSETDY
ORG30H
MIAN1:
MOVB,#00H
MOVSP,#26H
SETBEA
SETBEX0
MOV65H,#16
LCALLLCD
MOVP0,#80H
LCALLZLSR
LCALLDELAY
MOVR1,#0
MOVR2,#16
MOV58H,#05H
MOV47H,#0C1H
MOVBJGW,#20H
KK:
MOVA,R1
MOVDPTR,#TAB1
MOVCA,@A+DPTR
MOVP0,A
LCALLSJSR
LCALLDELAY
INCR1
DJNZR2,KK
MOVR1,#0
MOVR2,#16
MOVP0,#0C1H
LCALLZLSR
LCALLDELAY
MOVDPTR,#TAB2
KK1:
MOVA,R1
MOVCA,@A+DPTR
MOVP0,A
LCALLSJSR
LCALLDELAY
INCR1
DJNZR2,KK1
MIAN:
LCALLADCONV
LCALLAD_CHULI
LCALLLCDDISP
JMPMIAN
LCD:
MOVP0,#01H
LCALLZLSR
LCALLDELAY
MOVP0,#06H
LCALLZLSR
LCALLDELAY
MOVP0,#0CH
LCALLZLSR
LCALLDELAY
MOVP0,#3CH
LCALLZLSR
LCALLDELAY
MOVP0,#0CH
LCALLZLSR
LCALLDELAY
RET
ZLSR:
CLRRS
CLRWR
CLRE
NOP
NOP
SETBE
RET
SJSR:
SETBRS
CLRWR
CLRE
NOP
NOP
SETBE
RET
BJ:
MOVA,4AH
NOP
NOP
NOP
CJNEA,#00111110B,BJTC
CLRP3.7
SETBP3.7
BJTC:
RET
;中断响应
SETDY:
PUSHACC
PUSHPSW
LCALLLCDTZ
LCALLLCD2
MOVA,#00111110B
LCALLAD_CHULI
LCALLLCDDISP
GB:
LCALLDEL
INCBJGW
LCALLAD_CHULI
LCALLLCDDISP
JMPGB
MOVBJGW,A
LCALLLCD
LCALLLCDTZ
POPPSW
POPACC
RETI
LCD2:
MOVA,47H
MOVP0,A
LCALLZLSR
LCALLDELAY
RET
LCDTZ:
MOVP0,#80H
LCALLZLSR
LCALLDELAY
MOVR1,#0
MOVR2,#16
KT:
MOVA,R1
MOVDPTR,#TAB1
MOVCA,@A+DPTR
MOVP0,A
LCALLSJSR
LCALLDELAY
INCR1
DJNZR2,KT
MOVR1,#0
MOVR2,#16
MOVP0,#0C1H
LCALLZLSR
LCALLDELAY
MOVDPTR,#TAB3
KT1:
MOVA,R1
MOVCA,@A+DPTR
MOVP0,A
LCALLSJSR
LCALLDELAY
INCR1
DJNZR2,KT1
RET
ADCONV:
SETBAD_CS;一个转换周期开始
CLRAD_CLK
CLRAD_CS;CS置0,片选有效
SETBAD_DAT;DI置1,起始位
NOP
SETBAD_CLK;第一个脉冲
CLRAD_DAT;在负跳变之前加一个DI反转操作
CLRAD_CLK
SETBAD_DAT;DI置1,设为单通道
NOP
SETBAD_CLK;第二个脉冲
CLRAD_DAT
CLRAD_CLK
CLRAD_DAT;DI置0,选择通道0
NOP
SETBAD_CLK;第三个脉冲
SETBAD_DAT
CLRAD_CLK
NOP
SETBAD_CLK;第四个脉冲
MOVR1,#08H;计数器初值,读取8位数据,
AD_READ:
CLRAD_CLK;下降沿
MOVC,AD_DAT;读取DO端数据
RLCA;C移入A,高位在前
SETBAD_CLK;下一个脉冲
DJNZR1,AD_READ;没读完继续
SETBAD_CS
MOVP1,A
MOV4AH,A
RET
AD_CHULI:
CLRC
MOVR5,#00H;十进制转换的低位寄存器
MOVR4,#00H;十进制转换的高位寄存器
MOVR3,#08H
MOVB,#2
MULAB;十进制调整的次数
AD_CHULI1:
RLCA
MOVR2,A;送R2保存
MOVA,R5;(R5)乘2加C
ADDCA,R5
DAA;做十进制调整
MOVR5,A;结果存回R5
MOVA,R4;(R4)乘2加C
ADDCA,R4
MOVR4,A;结果存回R4
MOVA,R2
DJNZR3,AD_CHULI1;是否转换完?
MOVA,R5;(R5)乘2
ADDCA,R5
DAA
MOVR5,A;结果存回R5
MOVA,R4
ADDCA,R4;(R4)乘2加C
DAA
MOVR4,A;结果存回R4
RET
LCDDISP:
MOVA,R4
ADDA,#30H
MOVP0,#0CAH
LCALLZLSR
LCALLDELAY
MOVP0,A
LCALLSJSR
LCALLDELAY
MOVP0,#0CCH
LCALLZLSR
LCALLDELAY
MOVA,R5
MOVB,#16
DIVAB
MOV40H,A
ADDA,#30H
MOVP0,A
LCALLSJSR
LCALLDELAY
MOV41H,B
MOVA,41H
ADDA,#30H
MOVP0,A
LCALLSJSR
LCALLDELAY
RET
DEL:
MOV20H,#255
D1:
MOV21H,#10
DJNZ21H,$
DJNZ20H,D1
RET
DELAY:
MOV50H,#10
D2:
MOV51H,#50
DJNZ51H,$
DJNZ50H,D2
RET
TAB1:
DB"XG10501Jinke";
TAB2:
DB"Voltage:
.V";
TAB3:
DB"VOLTAGE:
.V"
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 封面