2.3复位电路
复位电路如下图2-2所示,按键没有按下时,RST端接电容下极板是低电平,按键按下时,RST端接在电阻上端变为高电平,达到复位的目的。
图2-2复位电路图
2.4数据采集模块
通过ADC0809采集数据,输入到单片机内,如图2-3所示:
图2-3数据采集模块电路图
2.5显示电路
通过2-4位数码管来显示,如图5所示:
图2-4显示电路图
2
电路总原理框图设计
时钟电路显示电路单片机AT89C51数据采集复位电路模拟信号
4 总体方案设计与流程
4.1主程序流程图
主程序流程图如图3-1所示:
开始初始化调用A/D转化程序调用数据处理程序调用显示程序图4-1主程序流程图
4.2显示子程序流程图
显示子程序流程图如图3-2所示:
开始初始化,P0置高,P2置低P0到A输出显示P2=P2+1P0到A输出显示P2=P2+1P0到A输出显示置位P0.7点亮小数点P2=P2+1P0到A输出显示结束
图4-2显示子程序流程图
4.3 A/D转换子程序流程图
A/D转换子程序流程图,如图3-3所示:
开始初始化启动A/D转化N P3.1=1?YP3.0置位,允许输出。将转化的数据保存结束
图4-3A/D转换子程序流程图
4.4数据处理子程序流程图
数据处理子程序流程图,如图4-4所示:
开始从34H中取数据,乘以19.5mv,得到的数据BCD麻化,将数据存入A转化双字节十六进制整数NBCD码带进位自身相加,十进制调整Y R2=0?数据输入显示器结束
图4-4数据处理子程序流程图
4.5 源代码
LED1 EQU 30H ;初始化定义 LED2 EQU 31H
LED3 EQU 32H ;存放三个数码管的段码 ADC EQU 35H ;存放转换后的数据 ST BIT P3.2 OE BIT P3.0
EOC BIT P3.1 ;定义ADC0809的功能控制引脚 ORG 0000H
LJMP MAIN ;ORG 0030H
MAIN: MOV LED1,#00H MOV LED2,#00H
MOV LED3,#00H ; CLR P3.4 SETB P3.5
CLR P3.6 ;WAIT: CLR ST SETB ST
CLR ST ; JNB EOC,$ ; SETB OE ; MOV ADC,P1 ; CLR OE ; MOV A,ADC ; MOV B,#50 ; DIV AB
MOV LED1,A ; MOV A,B ; MOV B,#5 ; DIV AB
MOV LED2,A ; MOV LED3,B ; LCALL DISP ; AJMP WAIT
DISP:MOV R1,#LED1 ; CJNE @R1,#5,GO ;@R1=5V? MOV LED2,#0H ; MOV LED3,#0H ; GO:MOV R2,#3 ; MOV R3,#0FDH ;DISP1:MOV P2,#0FFH ; MOV A,@R1 ; MOV DPTR,#TAB ; MOVC A,@A+DPTR ;跳转到主程序执行 寄存器初始化 选择ADC0809的通道2 在脉冲下降沿启动转换 等待转换结束 允许输出信号 暂存A/D转换结果 关闭输出
将转换结果放入A中,准备个位数据转换 变换个位调整值50送B 将变换后的个位值送显示缓冲区LED1
将变换结果的余数放入A中,准备十分位变换变换十分位调整值5送B 将变换后的十分位值送LED2 最后的余数作百分位值送LED3 调用显示程序 显示子程序
是往下执行,否,则到GO 是5V,即最高值,将小数的十分位清零 将小数的百分位清零
显示位数赋初值,用到3位数码管 扫描初值送R3
关闭显示,目的防止乱码 显示值送A
送表首地址给DPTR 查表取段码