AVR电压表程序:
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define setb(val,bitn) (val|=(1<<(bitn)))//设置某IO口某位为1
#define clr(val,bitn) (val&=~(1<<(bitn)))//设置某IO口某位为0
#define get(val,bitn) (val&(1<<(bitn)))//读取某位状态如
uchar shi=20,fen=39,miao,a=0xff,num;
#pragma data:code//定义程序存在ROM里面
const uchar table[]={
0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,
0x88,0x83,0xc6,0xa1,0x86,
0x8e
};
/***********************************************/
/*******************延时子程序******************/
/***********************************************/
void delay(uchar z)
{
uchar x,y;
for(x=0;x<255;x++)
for(y=0;y
}
/***********************************************/
/*******************显示子程序******************/
/***********************************************/
void xian(uint nim)
{
PORTB=table[nim/1000]&0x7f;
clr(PORTC,3);
delay(2);
setb(PORTC,3);
PORTB=table[nim%1000/100];
clr(PORTC,2);
delay(2);
setb(PORTC,2);
PORTB=table[nim%100/10];
clr(PORTC,1);
delay(2);
setb(PORTC,1);
PORTB=table[nim%10];
clr(PORTC,0);
delay(2);
setb(PORTC,0);
}
/***********************************************/
/*******************显示子程序******************/
/***********************************************/
uint ad()
{
uint addata,i;
DDRA&=~BIT(PA0);//设置PA0口为输入
PORTA&=~BIT(PA0);//设置P0口为不带上拉电阻
ADMUX=0;//高2位设为0,关闭AREF参考电压,低5位选择哪个脚为AD输入
ADCSR=0X80;//打开控制寄存器全能端
ADCSR|=BIT(ADSC);//打开开始转换位
while(!(ADCSR&(BIT(ADIF))));//判断标志位,如果为0就等待,为1说明转换完了
addata=ADCL;//给转换结果低位
addata=addata+ADCH*256;//给高位
addata=addata*0.004888*1000;//将转换后值变成要显示的电压 5V/1024=0.00488
return addata;//将转换值返回
}
/***********************************************/
/*******************主程序*********************/
/***********************************************/
void main()
{
DDRB=0XFF;//设置PA口为输出方式
DDRC|=0x0f;//设置两位为输出方式
while(1)
xian(ad());//显示调用
}
关键字:AVR单片机 电压表
引用地址:
AVR单片机电压表程序
推荐阅读最新更新时间:2024-03-16 14:25
380v电流表电压表怎么接线?380v电流表电压表接线方法图解
这里说的三相电流表不是古老的指针式电流表,而是新式的智能数显电流表,它可以适应不同的信号输入,更换不同规格的可以不用更换仪表,而只需要在仪表上设置和互感器相同的电流变比即可。 380v三相电流表接线示意图: 而三相电压表的接线就要简单多了,380v三相可以直接输入,而不用外接互感器等转换电器。但是380三相电压表接线又分为显示380v的三相三线接线和显示220v三相四线接线,具体如何接呢?请看以下示意图: 接成三相四线让其显示220v相电压: 接成三相三线显示380v线电压:
[测试测量]
AVR单片机实现智能电冰箱控制系统方法
简介:现今,电冰箱已经普及家家户户,人们对电冰箱的性能和控制功能特别是智能程度的要求是越来越高,本方所讲述的AVR单片机智能电冰箱控制系统,具有功能齐全、操作简单、使用方便等优点,在国内同类产品中处于较高水平,具有较高的实用和推广价值。 现今,电冰箱已经普及家家户户,人们对电冰箱的性能和控制功能特别是智能程度的要求是越来越高,本方所讲述的AVR单片机智能电冰箱控制系统,具有功能齐全、操作简单、使用方便等优点,在国内同类产品中处于较高水平,具有较高的实用和推广价值。并且该系统在设计完成之后进行了多次试验,试验数据表明该系统的各项性能指标和功能达到了预期的设计目的。 多年来电冰箱在国内市场上一直作为储物、保鲜的空间,人们对于电
[单片机]
高精度区间电压表
高精度区间电压表电原理图如图(a)所示。电路采用了放大器和一些高精度元器件,极大地提高了区间电压表的性能。IC2仪表放大器AD623反向输入端用一个高精度电压基准源IC1做基准。正向输入端的R1、RP1、R3对被测电压分压进行放大。RP1为调零电位器,RP2为增益调整电位器,放大器输出端经过分压电阻R4接一个标有起始值和终止值的表头。选定一个被测电压Vin的区间,起始值为V1,终止值为V2,被测电压Vin在V1~V2范围内变化。输入一标准电压为V1时,调整电位器RP1l,使放大器输出端的表头为0V,也就是区间电压表的起始值;输入标准电压为V2时,调整电位器RP2,使表头满刻度即区间电压表的终止值。这样,被测电压在V1~V2之间变化时
[测试测量]
直流电流表/电压表能否测量交流?
有的直流表可以测量交流,有的则不能,例如永磁式测量机构的仪表只能测量直流电。永磁式测量机构是通过永久磁铁的磁场与通有直流电线圈产生的磁场相互作用,且产生转矩使指针发生偏转的。如果用这种测量机构的仪表来测量交流电,交流电流每个周期的平均值为零,所以指针不会发生偏转,读数为零。电动系式测量机构,当电流改变方向,由于两套线圈的电流方向同时变换,其转矩方向仍是一定的,因此可以交直流两用。电磁式测量机构的电表,是以通电的固定线圈产生的磁场对动铁芯的吸引,或彼此磁场磁化的静铁芯与动铁芯之间的作用而产生转动力矩,也可以交直流两用。
[测试测量]
AVR单片机复位:看门狗复位、上电复位、掉电复位
看到大家对复位特别是AVR单片机内部的复位功能还不太清楚,现在这里简单说一下,希望在家能有个总体的认识。不对之处希望大家指出,觉的好就帮忙顶两下。 AVR单片机复位大概有:上电复位、掉电复位、看门狗超时复位、外部复位,这么四种。 上电复位:就是在一通电的时候对单片机进行复位,这和我们外接RC复位电路的作用是一样的, AVR 单片机内部带有上电复位功能。 掉电复位:就是在单片机运行过程中电压突然跌落,这个时候单片机会出现很多不确定的现象,所以在这个时候需要将单片机复位,让它处于一个确定的状态。这就是BOD功能,一个非常实用的功能,AVR单片机带有这个功能。 看门狗复位:这是我们常说的看门狗了,就是当程序进入某个地方长时间没有响应
[单片机]
avr单片机数码管显示时钟
// 数码管 数据P0口,数码管控制P2口 #include avr/io.h #include avr/delay.h #include avr/pgms PAC e.h #include avr/signal.h #include avr/interrupt.h #define code PROGMEM #define uchar unsigned char #define uint unsigned int code const uchar LED _7 = {0x28, 0x7E, 0xA2, 0x62, 0x74, 0x61, 0x21, 0x7A, 0x20, 0x60,0xff};//common of
[单片机]
一种AVR单片机的快速工频干扰滤除算法
工频干扰广泛存在各种工业现场中,其产生的途径主要包括输电馈线、照明设备、发动机以及各种电子仪器设备等。一般可以通过滤波电路消除工频干扰,但这必将增加硬件结构的复杂程度。实际上,还可以采用数字信号处理的相关算法,通过软件滤波器滤除工频干扰。软件滤波算法的采用,无疑会在简化电路结构的同时,使系统的硬件资源得到更加充分的利用,并达到降低产品成本的要求。 AVR 单片机是Atmel 公司生产的8位精简指令集(RISC)单片机。与同类单片机相比,在运算速度、外设资源、灵活性等方面性能均衡,性价比较高。 AVR 单片机适合C语言开发,Mega 系列AVR 单片机还有一个内部硬件乘法器单元。这些特点都为软件滤波器的实现提供了极大的便利。
[单片机]
基于AVR单片机PWM功能的数控恒流源研制
随着电子技术的深入发展,各种智能仪器越来越多,涉及领域越来越广,而仪器对电源的要求也越来越高。现今,电源设备有朝着数字化方向发展的趋势。然而绝大多数数控电源设计是通过高位数的A/D和D/A芯片来实现的,这虽然能获得较高的精度,但也使得成本大为增加。本文介绍一种基于AVR单片机PWM功能的低成本高精度数控恒流源,能够精确实现0~2A恒流。 系统框图 图1为系统的总体框图。本系统通过小键盘和LCD实现人机交流,小键盘负责接收要实现的电流值,LCD 12864负责显示。AVR单片机根据输入的电流值产生对应的PWM波,经过滤波和功放电路后对压控恒流元件进行控制,产生电流,电流再经过采样电阻到达负载。同时,对采样电阻两端信号进行差分和
[单片机]