基于AT89C52控制的多功能电参数测试仪的设计(7)

2019-08-30 14:04

default: break;//没有本行的键按下继续下面扫描 }

//---------------------------------------------------- //-------------3-------------------------------------- P1=0XFB;//第三次把P1^5 拉低

switch (P1)//测P1^0~~~P1^3 有没有低的 {

case 0xeb: return '8';//P1^3 低返回‘8’ case 0xdb: return '9';//P1^2 低返回‘9’ case 0xbb: return 'A';//P1^1 低返回‘A’ case 0x7b: return 'B';//P1^0 低返回‘B’

default: break;//没有本行的键按下继续下面扫描 } 3

//---------------------------------------------------- //-------------4-------------------------------------- P1=0XF7;//第三次把P1^4 拉低

switch (P1)//测P1^0~~~P1^3 有没有低的 {

case 0xe7: return 'C';//P1^3 低返回‘C’ case 0xd7: return 'D';//P1^2 低返回‘D’ case 0xb7: return 'E';//P1^1 低返回‘E’ case 0x77: return 'F';//P1^0 低返回‘F’ default: break;//没有键按下继续下面 } }

return 0; }

2.7复位电路:

复位电路常采用上电复位和按钮复位两种方式,除了上电复位外,有时还需要人工按钮复位。考虑到系统在实际运行中可能会出现死机的情况,自动复位不能实现,于是就采用了上电复位与按钮复位兼有的复位电路,确保系统安全运行。

原理图:

1、手动按钮复位

手动按钮复位需要人为在复位输入端RST上加入高电平(图1)。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。 2、上电复位

AT89C51的上电复位电路如图2所示,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1?F。上电复位的工作过程是在加电时,复位电路通过电 容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。在图2的复位电路中,当Vcc掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。 3、积分型上电复位

常用的上电或开关复位电路如图3所示。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。 根据实际操作的经验,下面给出这种复位电路的电容、电阻参考值。 C:=1uF,Rl=lk,R2=10k

5 系统软件设计

5.1系统软件的编译环境

本论文采用Keil51作为单片机的程序编译环境,它的环境界面如图4.1所示。与其它编译环境相仿,具有打开文件、加载文件、编译文件的功能,同时,Keil51还具有对程序的仿真功能,可以指定P0口、P1口、P2口、P3口的地址以及功能端口,可以对程序指定中断地址以及T0、T1定时中断等

图4.1 编译程序环境

Keil51的基本操作:

(1) 打开新建文件(File),直接编写新的汇编程序并保存。保存文件以

(.ASM)为后缀;

(2) 点击工程(Project)菜单栏中的新建工程文件(New Project), 在

对话框中写入刚才保存的文件名,最后点“保存”,这样就新建了一个工程文件;

(3) 选择所需公司及芯片型号,本论文设计中用到的是AT89C52芯片。首

先在选择芯片菜单栏中点击Atmel,再在子菜单中选择AT89C52芯片型号。如图4.2所示

图 4.2 选择芯片型号

(4) 在新的编译环境中,添加已经保存的文件。右击“Souce Group”选择“Add File To‘Souce Group’”,然后选择文件,点击添加即可。

(5) 编好程序后,对所编程序进行编译,待编译提出无错误时进行下一步操作。

(6) 从(1)到(5)部分结束后,可以创建16进制文件提供烧录。

(7) 对程序仿真点击“debug”即可,“debug”中可以观察反汇编程序。此外,点击“debug”中的“step”,再打开相关寄存器和端口显示单步运行结果。

5.2系统软件总流程图

在系统的软件设计中,采用模块化设计方法,使得程序结构清晰,便于今后进一步扩展系统的功能。系统软件有以下模块构成:主程序、时钟中断服务程序、数据采集处理子程序、显示程序等。主程序主要完成系统初始化,装置自检等任务。系统的初始化部分包括CPU各端口输入输出设置、外围驱动、译码电路的初始化、数据RAM的初始化等。 系统的数据采集处理子程序的功能是采集各相电压值、电流值。在定时中断服务程序中主要进行频率测量。

另外,我们还应考虑到电网存在谐波,还会有各种瞬时干扰,而采用硬件滤波存在硬件电路复杂等诸多弊端,因此在此系统中求取电力参数实行数字滤波方法祛除干扰,此外,系统中还应采用指令冗余等抗干扰措施,以使系统具有良好的抗干扰性能。

系统的总流程图如下图5.3所示

程序开始 系统初始化 关中断 数据组计数器加1 启动下一通道 N A/D转换结束? Y 读数据 N 采样达16点? Y N 三相测量结束? Y 开中断 触发中断 U,I,P,F,Cos?数据处理 显示 图5.3 系统软件流程图


基于AT89C52控制的多功能电参数测试仪的设计(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:CH376命令和系统子程序

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: