- 硬件设计
在proteus中实现硬件的仿真。主要实现的功能:通过单片机采集正弦电压的有效值,将有效值显示在数码管中,并且根据有效值的大小控制继电器的动作。
总体图:
电压采集:
继电器控制图:
- . 软件设计
#include<reg52.h>
#include<intrins.h>
#include<math.h>
#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned long
sbit cs=P0^0;
sbit rd=P3^7;
sbit wr=P3^6;
sbit led1=P0^1;
sbit led2=P0^2;
sbit led3=P0^3;
sbit led4=P0^4;
sbit led5=P0^5;
sbit led6=P0^6;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71
};
void display(uchar bai,uchar shi,uchar ge);
void delayms(uint ms);
uint val,i;
ulong s=0;
uchar max,flag=0;
void main()
{
uchar num,v1,v2,v3;
uint x;
led1=0;
max=0;
TMOD=0x01;
TH0=(65536-9174)/256;
TL0=(65535-9174)%256;
EA=1;
ET0=1;
TR0=1;
cs=1;
while(1)
{
wr=1;
_nop_();
wr=0;
_nop_();
wr=1;
for(i=3;i>0;i--);
rd=1;
_nop_();
rd=0;
_nop_();
num=P1;