赞
踩
目录
硬件组成:51系列单片机+ADC0832+按键+LCD1602液晶+LED设计而成。
本设计基于单片机型号:STC89C52/51、AT89C52/51、AT89S52/51都可通用。
1、本设计基于51单片机实现电流、电压测量和功率的计算,并通过按键设置报警值,过压过流声光报警。
2、电压范围:直流0-30V;电流范围:直流0-1A。
3、系统四个按键,从左往右风别是,切换、设置、加、减。
- ADC0832_CLK=0; //为第一个脉冲作准备
- ADC0832_CS=0; //CS置0,片选有效
-
- ADC0832_DIO=1; //DIO置1,规定的起始信号
- ADC0832_CLK=1; //第一个脉冲
- ADC0832_CLK=0; //第一个脉冲的下降沿,此前DIO必须是高电平
- ADC0832_DIO=1; //DIO置1, 通道选择信号
- ADC0832_CLK=1; //第二个脉冲,第2、3个脉冲下沉之前,DI必须跟别输入两位数据用于选择通道,这里选通道CH0
- ADC0832_CLK=0; //第二个脉冲下降沿
- ADC0832_DIO=Ch; //DI置0,选择通道0
- ADC0832_CLK=1; //第三个脉冲
- ADC0832_CLK=0; //第三个脉冲下降沿
- ADC0832_DIO=1; //第三个脉冲下沉之后,输入端DIO失去作用,应置1
- ADC0832_CLK=1; //第四个脉冲
- for(i=0;i<8;i++) //高位在前
- {
- ADC0832_CLK=1; //第四个脉冲
- ADC0832_CLK=0;
- dat<<=1; //将下面储存的低位数据向右移
- dat|=(unsigned char)ADC0832_DIO; //将输出数据DIO通过或运算储存在dat最低位
- }
- ADC0832_CS=1; //片选无效
- return dat; //将读书的数据返回
- }
-
-
-
- LCD1602_RS = 0;
- LCD1602_RW = 0;
- LCD1602_Data= com;
- delay_50us_1602(10);
- LCD1602_E = 1;
- delay_50us_1602(20);
- LCD1602_E = 0;
- }
-
- void LCD1602_write_data(unsigned int dat)
- {
- LCD1602_E = 0;
- LCD1602_RS = 1;
- LCD1602_RW = 0;
- LCD1602_Data = dat;
- delay_50us_1602(10);
- LCD1602_E = 1;
- delay_50us_1602(20);
- LCD1602_E = 0;
- }
-
- void LCD1602_init(void)
- {
- delay_50us_1602(300);
- LCD1602_write_com(0X38);
- delay_50us_1602(100);
- LCD1602_write_com(0X38);
- delay_50us_1602(100);
- LCD1602_write_com(0X38);
- LCD1602_write_com(0X38);
- LCD1602_write_com(0X08);
- LCD1602_write_com(0X01);
- LCD1602_write_com(0X06);
- LCD1602_write_com(0X0C);
-
- }
- void LCD1602_Clear(void)
- {
- LCD1602_write_com(0X01);
- }
- /*******************************************
- 函数名称:Disp_ZF
- 功 能:控制液晶显示字符
- 参 数:addr--显示位置的首地址
- pt--指向显示数据的指针
- num--显示字符个数
- 返回值 :无
- ********************************************/
- void LCD1602_Disp_ZF(unsigned char addr,const unsigned char * pt,unsigned char num)
- {
- unsigned char i;
- LCD1602_write_com(addr);
需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。