---------------------
毕业设计任务书
系部名称
班 号
姓 名
毕业设计题目 四、简易数字电压
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
的设计
指导教师
负责人签字
年 月 日
任 务 书
一、设计题目:简易数字电压表
二、设计
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
及要求:
利用率8051单片机编制一个简易数字电压表。可以测量0-5V范围内的8路输入电压值,并在世界范围内位数码管上轮流显示或单路选择显示。要求其测量最小分辨率为了0.02V。
三、设计任务:
1.设计硬件电路,画出电路原理图;
2.设计软件,编制程序,画出程序
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
图;
3.调试程序,写出源程序代码;
4.写出详细毕业设计说明书(10000字以上),要求字迹工整,原理叙述正确,会计算主要元器件的一些参数,并选择元器件。
5.个人总结。
四、参考资料:
1.教材;
2.《单片机实验指导书》,--------------------------;
3.《51系列单片机设计实例》,楼然苗、李光飞编著,北京航空航天出版社;
4.《单片机课程设计指导》,楼然苗、李光飞编著,北京航空航天出版社;
5.《单片机应用技术实训》,王治刚主编,清华大学出版社;
6.《毕业设计指导及案例剖析》,康万新主编,清华大学出版社;
7.《单片机应用技术与实例》,睢丙东主编,电子工业出版社;
摘 要
根据8051单片机的内部结构特点本文提出以MCS-51单片机为核心的电压测量系统。该系统以8051和ADC0809核心内件,能够在单片机的控制下监测八路的输入电压值,用8位串行A/D转换器进行0-5V量程自动转换,并且测量的电压值可通过三位数码管显示同时用一位数码管显示选择通道。整个系统的设计过程中主要采用了模块化的设计方法,完成了硬件电路的设计及软件程序的编写,还详细的给出了相关的硬件框图和软件流程图,通过最终硬件电路的调试,使该系统能够在要求的条件下达到正常的测量及显示功能。单片机8051是整个系统的核心,实现输入端的分路选择,模数转换后数据的处理及在数码管上数据的显示等功能。正文着重给出了软硬件系统的各部分电路,介绍了该系统的工作原理,MCS-51单片机特点,8051的功能和应用,ADC0809的功能和应用等。
关键词:MCS-51单片机;8051 ;ADC0809;数码管
目 录
11 硬件设计
11.1 单片机件简介
11.1.1 8031芯片
11.1.2 8051芯片
11.1.3 8751芯片
21.2 8051单片机简介
21.2.1 中央处理器
21.2.2 数据存储器(RAM)
31.2.3 程序存储器(ROM)
31.2.4 定时/计数器(ROM)
31.2.5 并行输入输出(I/O)口
31.2.6 全双工串行口
31.2.7 中断系统
31.2.8 时钟电路
41.3 引脚极其功能
41.3.1 电源引脚Vcc和Vss
41.3.2 外接晶振引脚XTAL1和XTAL2
41.3.3 控制信号或与其它电源复用引脚
51.3.4 输入/输出(I/O)引脚P口
61.4 ADC0809芯片简介
71.4.1 主要特性
71.4.2 内部结构
71.4.3 外部特性(引脚功能)
81.5 8051中断系统
81.5.1 8051单片机中断系统中的五个中断源
91.5.2 8051中断系统的4个特殊功能寄存器
91.5.3 中断的优先排队与嵌套
91.5.4 MCS-51中断系统的初始化
91.5.5 各中断源与之对应的中断服务程序矢量地址如图示
101.5.6 LED工作原理
121.6 数字电压表的原理结构
121.6.1 数据采集接口电路
121.6.2 LED显示电路
132 软件设计
132.1 流程图
172.2 程序设计
183 设计总结
19参 考 文 献
20附 录 A
23附 录 B
24附 录 C
1 硬件设计
1.1 单片机件简介
MCS51系列单片机包括三个基本型8031、8051、8751
1.1.1 8031芯片
8031内部包括一个8位CPU、128个字节RAM,21个特殊功能寄存器(SFR)、4个8位并行I/O口、1个全双工串行口、2个16位定时器/计数器,但片内无程序存储器,需外扩EPROM芯片。
1.1.2 8051芯片
8051是在8031的基础上,片内集成有4K ROM,作为程序存储器,是一个程序不超过4K字节的小系统。ROM内的程序是公司制作芯片时,代为用户烧制的,出厂的8051都是含有特殊用途的单片机。所以8051适合与应用在程序已定,且批量大的单片机产品中。
1.1.3 8751芯片
8751是在8031基础上,增加了4K字节的EPROM,它构成了一个程序小于4KB的小系统。用户可以将程序固化在EPROM中,可以反复修改程序。但其价格相对8031较贵。8031外扩一片4KB EPROM的就相当与8751,它的最大优点是价格低。随着大规模集成电路技术的不断发展,能装入片内的外围接口电路也可以是大规模的。
下图是MCS-51系列单片机的内部结构:
图1.1 MCS-51单片机内部结构
图1.2 MCS-51内部结构框图
1.2 8051单片机简介
8051单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上[2]。如果按功能划分,它由如下功能部件组成,即中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口、中断系统和时种电路,其基本结构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。
1.2.1 中央处理器
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
1.2.2 数据存储器(RAM)
8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
1.2.3 程序存储器(ROM)
8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。
1.2.4 定时/计数器(ROM)
8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
1.2.5 并行输入输出(I/O)口
8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。
1.2.6 全双工串行口
8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
1.2.7 中断系统
8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。
1.2.8 时钟电路
8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序但8051单片机需外置振荡电容。
由上可见,8051单片机的硬件结构具有功能部件种类全,功能强等特点。特别值得一提的是该单片机CPU中的位处理器,它实际上是一个完整的1位微计算机,这个一位微计算机有自己的CPU、位寄存器、I/O口和指令集。1位机在开关决策、逻辑电路仿真、过程控制方面非常有效;而8位机在数据采集,运算处理方面有明显的长处。MCS-51单片机中8位机和1位机的硬件资源复合在一起,二者相辅相承,它是单片机技术上的一个突破,这也是MCS-51单片机在设计的精美之处。
1.3 引脚极其功能
图1.3 80C51的管脚图
MCS—51系列单片机的40个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。
下面按引脚功能分为4个部分叙述个引脚的功能。
1.3.1 电源引脚Vcc和Vss
Vcc(40脚):接+5V电源正端。
Vss(20脚):接+5V电源正端。
1.3.2 外接晶振引脚XTAL1和XTAL2
XTAL1(19脚):接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHOMS单片机,该引脚作为外部振荡信号的输入端。
XTAL2(18脚):接外部晶体的另一端。在单片机内部,接至片内振荡器的反相放大器的输出端。当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端。对于CHMOS芯片,该引脚悬空不接。
1.3.3 控制信号或与其它电源复用引脚
控制信号或与其它电源复用引脚有RST/VPD、ALE/P、PSEN和EA/VPP等4种形式。
1、RST/VPD(9脚):RST即为RESET,VPD为备用电源,所以该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。
图1.4 上电自动复位 图1.5 手动复位电路 图1.6 内部时钟方式 图1.7 外部时钟方式
2、ALE/ P (30脚):当访问外部存储器时,ALE(允许地址锁存信号)以每机器周期两次的信号输出,用于锁存出现在P0口的低
3、PSEN(29脚):片外程序存储器读选通输出端,低电平有效。当从外部程序存储器读取指令或常数期间,每个机器周期PESN两次有效,以通过数据总线口读回指令或常数。当访问外部数据存储器期间,PESN信号将不出现。
4、EA/Vpp(31脚):EA为访问外部程序储器控制信号,低电平有效。当EA端保持高电平时,单片机访问片内程序存储器4KB(MS—52子系列为8KB)。若超出该范围时,自动转去执行外部程序存储器的程序。当EA端保持低电平时,无论片内有无程序存储器,均只访问外部程序存储器。对于片内含有EPROM的单片机,在EPROM编程期间,该引脚用于接21V的编程电源Vpp。
1.3.4 输入/输出(I/O)引脚P口
1、P0口(39脚~22脚),P0.0~P0.7统称为P0口。当不接外部存储器与不扩展I/O接口时,它可作为准双向8位输入/输出接口。当接有外部程序存储器或扩展I/O口时,P0口为地址/数据分时复用口。它分时提供8位双向数据总线。
对于片内含有EPROM的单片机,当EPROM编程时,从P0口输入指令字节,而当检验程序时,则输出指令字节。
2、P1口(1脚~8脚),P1.0~P1.7统称为P1口,可作为准双向I/O接口使用。对于MCS—52子系列单片机,P1.0和P1.1还有第2功能:P1.0口用作定时器/计数器2的计数脉冲输入端T2;P1.1用作定时器/计数器2的外部控制端T2EX。对于EPROM编程和进行程序校验时,P0口接收输入的低8位地址。
3、P2口(21脚~28脚),P2.0~P2.7统称为P2口,一般可作为准双向I/O接口。当接有外部程序存储器或扩展I/O接口且寻址范围超过256个字节时,P2口用于高8位地址总线送出高8位地址。对于EPROM编程和进行程序校验时,P2口接收输入的8位地址。
4、P3口(10脚~17脚),P3.0~P3.7统称为P3口。它为双功能口,可以作为一般的准双向I/O接口,也可以将每1位用于第2功能,而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。P3口的第2功能见下表
表1.1 单片机P3.0管脚含义
引脚
第2功能
P3.0
RXD(串行口输入端0)
P3.1
TXD(串行口输出端)
P3.2
INT0(部中断0请求输入端,低电平有效)
P3.3
INT1(中断1请求输入端,低电平有效)
P3.4
T0(时器/计数器0计数脉冲端)
P3.5
T1(时器/计数器1数脉冲端)
P3.6
WR(部数据存储器写选通信号输出端,低电平有效)
P3.7
RD(部数据存储器读选通信号输出端,低电平有效)
综上所述,MCS—51系列单片机的引脚作用可归纳为以下两点:
1、 单片机功能多,引脚数少,因而许多引脚具有第2功能;
2、 单片机对外呈3总线形式,由P2、P0口组成16位地址总线;由P0口分时复用作为数据总线。
1.4 ADC0809芯片简介
ADC0809是一种8路模拟输入8路数字输出的逐次比较型A/D转换器。目前在8位单片机系统中有着广泛的使用。ADC0809是采样频率为8位的、以逐次逼近原理进行模—数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8个单断模拟输入信号中的一个进行A/D转换。
1.4.1 主要特性
1、8路8位A/D转换器,即分辨率8位。
2、具有转换起停控制端。
3、转换时间为100μs。
4、单个+5V电源供电。
5、模拟输入电压范围0~+5V,不需零点和满刻度校准。
6、工作温度范围为-40~+85摄氏度。
7、低功耗,约15mW。
1.4.2 内部结构
ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,它由8位模拟开关、地址锁存与译码器、比较器、8位开关输入A/D转换器、逐次逼近。
1.4.3 外部特性(引脚功能)
ADC0809芯片有28条引脚,采用双列直插式封装,下面说明各引脚功能。
1、IN0~IN7:8路模拟量输入端。
2、2-1~2-8:8位数字量输出端。
3、ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路
4、ALE:地址锁存允许信号,输入,高电平有效。
5、START: A/D转换启动信号,输入,高电平有效。
6、EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
7、OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
8、CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。
9、REF(+)、REF(-):基准电压。
0、Vcc:电源,单一+5V,GND:地。
ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。
表1.2 通道选择表
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
1.5 8051中断系统
1.5.1 8051单片机中断系统中的五个中断源
1、INT0:外部中断0请求,低电平有效。
2、INT1:外部中断1请求,低电平有效。
3、T0:定时/计数器0溢出中断请求。
4、T1:定时/计数器1溢出中断请求。
5、TX/RX:串行口通信中断请求,当串行口完成一帧数据的发送或接受时,便请求中断。
1.5.2 8051中断系统的4个特殊功能寄存器
1、定时计数控制器TCON
2、串行口控制器SCON
3、中断允许控制器IE
4、中断优先控制器IP
1.5.3 中断的优先排队与嵌套
1、中断的优先排队。自然优先级排列由高到低的顺序:外部中断0、定时/计数器0溢出中断、外部中断1、定时/计数器1溢出中断、串行口中断。
2、中断嵌套。CPU在响应中断时,先处理高级中断,再处理低级中断,若有多个同级中断请求时,则按自然优先级顺序处理。
1.5.4 MCS-51中断系统的初始化
1、设定所有中断源的中断优先级;
2、若为外部中断,应规定低电平出发还是边沿出发方式;
3、开相应中断源中断。
1.5.5 各中断源与之对应的中断服务程序矢量地址如图示
表1.3 中断源及对应的矢量地址
中断源
中断矢量地址
外部中断0
0003H
定时器T0中断
000BH
外部中断1
0013H
定时器T1中断
001BH
串行口中断
0023H
1.5.6 LED工作原理
LED显示是用发光二极管显示字段的显示器件,也可称为数码管,其外形结构如图所示,由图可见它由8个发光二极管构成,通过不同的组合可用来显示0~9、A~F及小数点。
图1.9 管脚配置 图1.10 共阴极 图1.11 共阳极
LED显示器分为共阴极和共阳极,共阴极是将8个发光二极管阴极连接在一起作为公共端,而共阳极是将8个发光二极管的阳极连接在一起作为公共端。如图1.7.2所示,LED显示器有静态和动态显示两种方式,静态显示是将共阴极联到一起接地,每位的显示段(a-dp)分别与一个8位的锁存器输出相连。由于显示的各位可以相互独立,各位可以互相显示,只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符。并且由于各位由一个8位锁存器控制段选线,故在同一时间内每一位显示的字符可以不同。这种方式占用锁存器较多。动态显示是将所有位的段选线相应的并联在一起,由一个8位的I/O口控制,形成段选线的多路复用。而各位的阴极分别由相应的I/O口控制,实现各位的分时选通。要LED能够显示相应的字符,就必须采用动态扫描方式,只要每位显示的时间足够短,则可造成多位同时显示的假象,达成显示的目的。在数字电路中常常要把数据或运算结果通过半导体数码管、液晶数码和荧光数码管,用十进制数显示出来。
发光二极管的工作电压为1.5V-3.0V,工作电流为己毫安到几十毫安,寿命很长。半导体数码管将十位数分成七个字段,每段为一个发光二极管,其字形结构如图1.7.2所示,选择不同的字段发光,可显示出不同的字型。共阳极:把发光二极管的阳极连在一起构成共阳极。使用时公共端接Vcc,当某阳极为低电平时,该发光二极管就导通发光。输出一个段码就可以控制LED显示器的字型,表1.4给出了段码与字型的关系,假定a、b、c、d、e、f、g、DP分别对应D0、D1、D2、D3、D4、D5、D6、D7。
表1.4 段码与字型的关系
段码
D7
DP
D6
g
D5
F
D4
e
D3
d
D2
c
D2
b
D0
a
字形
3FH
0
0
1
1
1
1
1
1
0
06H
0
0
0
0
0
0
1
0
1
5BH
0
1
0
1
1
0
1
1
2
4FH
0
1
0
0
1
1
1
1
3
66H
0
1
1
0
0
1
1
0
4
6DH
0
1
1
0
1
1
0
1
5
7DH
0
1
1
1
1
1
0
1
6
07H
0
0
0
0
0
1
1
1
7
7FH
0
1
1
1
1
1
1
1
8
6FH
0
1
1
0
1
1
1
1
9
1.6 数字电压表的原理结构
1.6.1 数据采集接口电路
图1.12 数据采集接口电路
1.6.2 LED显示电路
图1.13 数码管显示电路
2 软件设计
2.1 流程图
DELAY子程序:
图2.1 DELAY子程序流程图
GETAD子程序:
图2.2 GETAD子程序
电压变换子程序:
图2.3 变换电压变换子程序流程图
主程序流程图:
图2.4 主程序流程图
2.2 程序设计
系统工作原理:当从表笔给ADC0809输入一个0V-5.0V的电压值,经模数转换后输出一个八位二进制数,并将数值传入8051芯片内在经2803芯片在数码管显示出电压值。
中断服务程序:
CH_TRANS:
MOV TH0,#03CH
MOV TL0,#0B0H
DJNZ
BEISHU,
T0_OUT
MOV
BEISHU,
#40
LCALL
GETAD
RETI
拆分:
XS_CHAIFEN:
MOV A,DIS_BUF
MOV B,#10
DIV AB
MOV 31H,A
MOV 30H,B
RET
变换电压子程序:
CONVERT:
MOV
A,
AD_BUF
MOV
CF_B_H,
B
MOV
CF_B_L,
A
MOV
CF_C_H,
#27H
MOV
CF_C_L,
#10H ;10000
LCALL
DIV16
MOV
DIS_BUF2,
CF_S_L
MOV
CF_B_H,
CF_Y_H
MOV
CF_B_L,
CF_Y_L
MOV
CF_C_H,
#00H
MOV
CF_C_L,
#64H ;100
LCALL
DIV16
MOV
DIS_BUF1,
CF_S_L
RET
3 设计总结
通过三周的课程设计,使我深刻地认识到学好专业知识的重要性,加深了对单片机理论的理解,也理解了理论联系实际的含义,并且检验了自己在大二下学期学习的单片机知识。也使我认识到我对单片机方面的知识了解太少,对于书本上的很多知识还不能灵活运用,有很多我们需要掌握的知识在等着我去学习,虽然在这次设计中对于知识的运用和衔接还不够熟练,我会在以后的学习生活中弥补我的不足。本次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎样将我所学到的知识很好地应用到实际生活当中去。这个课题虽然看似很简单,但是实际上挺难,对我们的实际动手能力是一个相当大的考验,这也对我们今后的工作敲响了警钟:掌握基础知识,且不能眼高手低。
这三周的课程设计是对过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。在大学的课堂的学习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的生活中去,此次的简易数字电压表的设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,更好地处理所遇到的问题,使自己适应于以后的竞争。
参 考 文 献
[1] 张有德.单片微型机原理、应用与实验.上海:复旦大学出版社,2000.
[2] 何立民.单片机应用系统设计.北京:北京航空航天大学出版社,2000.
[3] 李光飞.单片机课程设计实例指导.北京:北京航空航天大学出版社,2004.
[4] 雷思孝,冯育长.单片机系统设计及工程应用.西安:西安电子科技大学出版社,2005.
[5] 张俊谟.单片机中级教程原理与应用. 北京:北京航空航天大学出版社,2002.
附 录 A
程序
清单
安全隐患排查清单下载最新工程量清单计量规则下载程序清单下载家私清单下载送货清单下载
:
WEI
EQU
80H
ADCH1
EQU
70H
DUAN
EQU
0CH
DPH_BUF
DATA
38H;DPH缓冲
DISCNT
DATA
39H ;用于显示计数
WEI_BUF DATA
40H ;位扫描暂存
AD_CNT
DATA
41H ;用于通道计数
AD_BUF
DATA
42H ;用于转换值暂存
DIS_BUF1
DATA
43H
DIS_BUF2
DATA
44H
CF_B_H
DATA
45H
CF_B_L
DATA
46H
CF_C_H
DATA
47H
CF_C_L
DATA
48H
CF_S_H
DATA
49H
CF_S_L
DATA
4AH
CF_Y_H
DATA
4BH
CF_Y_L
DATA
4CH
DIG0 DATA
30H
DIG1 DATA
31H
DIG2 DATA
32H
DIG3 DATA
33H
RUNLED
BIT
P1.2 ;端口定义
ORG
0000H
LJMP
MAIN
ORG 000BH
LJMP
CH_TRANS
ORG
0100H
MAIN:
MOV DIS_BUF1 ,#88
MOV DIS_BUF2,#88
LCALL
CHAIFEN
MOV
DPL,
#00H
MOV
DPH,
#WEI
MOV
A,
#0FFH
MOVX
@DPTR,
A
MOV TMOD,#01H
;启动t0定时器F方式1,产生50毫秒定时
MOV TH0,#03CH
MOV TL0,#0B0H
MOV BEISHU,
#40 ;定时时间是2s。
MOV DPH_BUF,
#ADCH1
MOV
AD_CNT,
#8
M_LOP:
LCALL
DIS8
LJMP M_LOP
CH_TRANS: ;中断子程序
MOV TH0,#03CH ;赋初值
MOV TL0,#0B0H
DJNZ
BEISHU,
T0_OUT
MOV
BEISHU,
#40 ;倍数
LCALL
GETAD
RETI
GETAD:
MOV
DPH,
DPH_BUF ;读入数值
MOVX
A,
@DPTR
MOV
AD_BUF,A
LCALL
CONVERT
INC
DPH_BUF
DJNZ
AD_CNT,
GETAD_NEXT
MOV
DPH_BUF,
#ADCH1
MOV
AD_CNT,
#8
GETAD_NEXT:
RET
CONVERT:
MOV
A,
AD_BUF ;变换电压子程序
MOV
CF_B_H,
B
MOV
CF_B_L,
A
MOV
CF_C_H,
#27H
MOV
CF_C_L,
#10H ;
10000
LCALL
DIV16
MOV
DIS_BUF2,
CF_S_L ;高位给前两个显示管
MOV
CF_B_H,
CF_Y_H
MOV
CF_B_L,
CF_Y_L
MOV
CF_C_H,
#00H
MOV
CF_C_L,
#64H ;100
LCALL
DIV16
MOV
DIS_BUF1,
CF_S_L ;高位给前后两个显示管
RET
DIV16:
MOV
B, #2
MUL AB
MOV A, B
MOV B, #100
DIV AB
RET
DELAY:
MOV R7, #0FH
DL1:
MOV
R6,
#0FFH
DL2:
DJNZ
R6,
DL2
DJNZ
R7,
DL1
RET
DIS8:
MOV
DPRT,
WEI
MOV
DPTR,
#DISTAB
MOV
DISCNT,
#8
MOV
R0,
#30H
DISL :
MOV
A,
@R0 ;读入数据
MOVC
A,
@A+DPTR
MOV
P0,
A
MOV
A,
WEI
MOV
P1,
A
RL
A
MOV
WEI,
A
LCALL
DELAY
MOV
P0,
#00H
INC
R0
DJNZ
DISCNT,
DISL
SETB EX1
SETB EX0
RET
XS_CHAIFEN: ;拆分子程序
MOV A,DIS_BUF
MOV B,#10
DIV AB
MOV 31H,A
MOV 30H,B
RET
DISTAB:
DB
0C0H,0F9 H,0A4 H, 0B0H,99 H ;0-4
DB
92H,82 H, 0F8H,80 H, 90H ;5-9
END
附 录 B
数字电压表原理图:
附 录 C
数字电压表PCB原理图:
学生姓名
学生班级
学生学号
课设题目
基于单片机的简易数字电压表设计
指导教师评语:
图1.8 ADC0809芯片的内部逻辑结构与引脚图
开始
R7=#0FH
R6=#0FFH
R6-1=DL2
?
R7-1=DL1
?
返回
N
Y
N
Y
DPH=DPH_BUF
(AD_BUF)=A
A=(DPTR)
DPH_BUF=ADCH1
DPH_BUF=DPH_BUF+1
开始
AD_CNT=1?
AD_CNT=8
返回
N
Y
A=AD_BUF
CF_B_H=B
DIS_BUF2=CF_S_L
CF_C_H=CF_Y_H
CF_C_LH=CF_Y_LH
CF_B_H=CF_Y_H
CF_B_L=CF_Y_L
CF_C_H=#00H
CF_C_L=#64H
DIS_BUF=CF_S_L
CF_B_L=A
开始
DIV16
CF_C_H=#27H
CF�_C_L=#10
返回
倍数=40
TH0=#030H
TL0=#0B0H
启动中断T0方式1
(DPTR)=A
A=#0FFH
DPL=#00H
DPH=#WEI
初始化:DIS_BUF1=#88
DIS_BUF2=#88
开始
CHAIFEN
DIS8
中断子程序
GETAD
变换电压子程序
显示子程序
结束
PAGE
21