东北电力大学自动化工程学院学士学位论文
调整变阻器HAUBLAN20K,使辅助参考端VREF脚得到2.5 V标准参考电压。在CLKIN、CLKOUT端设计RC振荡电路,由于ADC0804频率限制在100~1460 kHz,通过对频率公式F=1/(1.1RC)的计算,选择电阻R=20k,电容C=200pF,即可得到符合设计要求的频率。
图3.4 ADC0804与单片机的的链接图
3.3 数码管显示电路
3.3.1 74HC4511管脚与工作原理
本设计选用74HC4511作为驱动芯片,以七段数码管管作为显示器件的显示模块最为系统的输出.为了数码管的保险器件.我们在数码管与驱动芯片之间加1K 欧姆的电阻作为限流电阻,保证驱动芯片以及数码管的安全运行
74HC4511管脚图如图3.5:
-10-
第3章 电流检测系统硬件设计简述
3.3.2 七段数码管引脚与工作原理
在单排年级应用系统和智能化仪器仪表中广泛使用各种显示器来显示数据文字或者是图形画面,其中最常用的显示器是LED(发光二级管显示器),因为它具有驱动电路简单,配臵灵活方便,功耗低响应速度快,可靠性高以及易于实现而且价格低廉等优点[7]。
LED 显示实际上是由若干发光二级管构成的,当发光管导通时,相应的一个点或者是一个笔画发光,控制不同组合的二极管导通,就能显示出各种字符。
图3.5 发光管接入电路的具体接法
3.4 系统整体电路原理图
基于单片机的霍尔电流电流检测系统的原理图如图7所示,系统由一个主控系统和一个检测模块组成。被测电流通过ACS712芯片时,该芯片利用霍尔效应,将被测电流转换成0~5V DC模拟信号,该模拟量经A/D装换变成数字量。A/D采样处理模块主要是对从ADC0804采集来的数据进行处理,完成对二进制数据BCD码的转换,并且通过Pl口输出显示,Pl口的低4位输出BCD码,高4位为数码管的片选信号。ADC0804与AT89C51的连接采用循环扫描的方式。当A/D转换结束后,ADC0804向CPU发出一个信号,CPU对转换后的数字量进行处理,使数码管显示当前的电流值。
-11-
东北电力大学自动化工程学院学士学位论文
图3.7 系统原理图
-12-
第4章 系统软件设计
第4章 系统软件设计
4.1单片机开发及调试工具
本系统的软件编程使用的是美国Keil Software公司出品的Keil 4,是51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势。
Keil 4软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,Keil 4生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能 体现高级语言的优势[8]。
4.2电流检测装置软件程序流程图
开始初始化MCU,包括定时器,外部中断初始化ADC0804启动ADC0804等待ADC转换完毕读取ADC转换结果根据转换结果,计算得电流值电流值扩大100倍,便于显示16进制码转换成BDC码驱动4511显示电流值结束图4.1 电流检测装置软件流程图 -13-
东北电力大学自动化工程学院学士学位论文
4.3系统程序设计
4.3.1定时器计数程序
T1和T0是两个独立的定时器/计数器,相互之间不会影响。至于定时和计数功能,则由写入TMOD(定时器/计数器方式控制寄存器)的值,来确定当前定时器是定时功能还是计数功能。因此在程序中,可以设臵标志位TR0和TMOD配合,当TR0是1时,定时器就执行计数功能,开始计数。定时器需要计数16位数,因此选择定时器为模式1,即设臵TMOD=0x01。
程序如下:
#include %u8 Cnt100ms;
u8 Cnt1s; void Timer0ISR(void) interrupt 1 {
TL0 = (u8)(IntervalOneMs); TH0 = (u8)(IntervalOneMs >> 8); ADC0804Start(); // 启动ADC转换 }
void Timer0Initial(void) {
TMOD |= 0x01; // 设臵定时器0为模式1
TL0 = (u8)IntervalOneMs; // 初始化 低8位 TH0 = (u8)(IntervalOneMs >> 8); // 初始化高8位 ET0 = 1; // 允许定时器0中断
TR0 = 1; // 启动定时器0,开始计 数 }
4.3.2外部中断程序
中断能使处理器在运行过程中对外部事件发出的中断请求及时地进行处理,处理完成后又立即返回断点,继续进行处理器原来的工作。系统对ADC0804转换结果执行外部中断,当系统未能读取转换结果时继续返回ADC0804等待转换完毕。
中断程序如下:
-14-