一、单片机中稳压电源的分类?
单片机中稳压电源分三类,1、多路可调直流稳压电源;
2、精密可调直流稳压电源 ;
3、高分辨率数控电源 。
二、单片机的简易计算器?
#include<reg52.h> //声明包含51头文件
#include<stdio.h> //声明包含输入输出函数
#include<intrins.h> //声明包含位移函数
#define uchar unsigned char // 宏定义
#define uint unsigned int // 宏定义
#define CHECK_BUSY
sbit RS = P3^5; //液晶引脚定义
sbit RW = P3^6;
sbit EN = P3^4;
sbit wela=P2^7;//数码管引脚定义
sbit dula=P2^6;
void DelayMs(int z)// 1ms延时函数
{
int x,y;
for (x=z;x>0;x--)
for(y=110;y>0;y--);
}
/***********LED判忙函数***********/
bit LCD_Check_Busy()
{
#ifdef CHECK_BUSY
P0= 0xFF;
RS=0;
RW=1;
EN=0;
_nop_();
EN=1;
return (bit)(P0 & 0x80);
#else
return 0;
#endif
}
/***********LED写入命令函数***********/
void write_com(uchar com)
{
while(LCD_Check_Busy()); //忙则等待
RS=0;
RW=0;
EN=1;
P0= com;
_nop_();
EN=0;
}
/**********LED写入数据函数**********/
void write_dat(uchar dat)
{
while(LCD_Check_Busy()); //忙则等待
RS=1;
RW=0;
EN=1;
P0= dat;
_nop_();
EN=0;
}
/*******LED写入字符函数***********/
void LCD_Write_Char(uchar x,uchar y,uchar dat)
{
if (y == 0)
{
write_com(0x80 + x);
}
else
{
write_com(0xC0 + x);
}
write_dat( dat);
}
/******写入字符串函数***********/
void Write_String(uchar x,uchar y,uchar *s)
{
while (*s)
{
LCD_Write_Char(x,y,*s);
s++;
x++;
}
}
/*****LED初始化函数******/
void LCD_Init()
{
RW=0;
dula=0; //关闭数码管显示
wela=0; //关闭数码管显示
write_com(0x38); /*显示模式设置*/
DelayMs(5);
write_com(0x06);/*显示光标移动设置*/
DelayMs(5);
write_com(0x0C); /*显示开及光标设置*/
write_com(0x01); /*显示清屏*/
}
/*按键扫描函数,返回扫描键值*/
uchar KeyScan() //键盘扫描函数,使用行列反转扫描法
{
unsigned char cord_h,cord_l;//行列值中间变量
P3=0x0f; //行线输出全为0
cord_h=P3&0x0f; //读入列线值
if(cord_h!=0x0f) //先检测有无按键按下
{
DelayMs(10); //去抖
if((P3&0x0f)!=0x0f)
{
cord_h=P3&0x0f; //读入列线值
P3=cord_h|0xf0; //输出当前列线值
cord_l=P3&0xf0; //读入行线值
while((P3&0xf0)!=0xf0);//等待松开并输出
return(cord_h+cord_l);//键盘最后组合码值
}
}
return(0xff); //返回该值
}
unsigned char KeyPro()
{
switch(KeyScan())
{
case 0xee:return '1';break;//0 按下相应的键显示相对应的码值
case 0xed:return '2';break;//1
case 0xeb:return '3';break;//2
case 0x7e:return '+';break;//3
case 0xe7:return '4';break;//4
case 0xde:return '5';break;//5
case 0xdd:return '6';break;//6
case 0x7d:return '-';break;//7
case 0xdb:return '7';break;//8
case 0xd7:return '8';break;//9
case 0xbe:return '9';break;//a
case 0x7b:return 'x';break;//b
case 0xbd:return '0';break;//c
case 0xbb:return '.';break;//d
case 0xb7:return '=';break;//e
case 0x77:return '/';break;//f
default:return 0xff;break;
}
}
main()
{
unsigned char num,i,sign;
unsigned char temp[16]; //最大输入16个
bit firstflag;
float a=0,b=0;
unsigned char s;
LCD_Init(); //初始化液晶屏
DelayMs(10);//延时用于稳定,可以去掉
write_com(0x01); //清屏
Write_String(0,0,"I LIKE MCU"); //写入第一行信息,主循环中不再更改此信息,所以在while之前写入
Write_String(0,1,"QXMCU"); //写入第二行信息,提示输入密码
for(s=0;s<25;s++)//延时5s
DelayMs(200);
write_com(0x01);
while (1) //主循环
{
num=KeyPro(); //扫描键盘
if(num!=0xff) //如果扫描是按键有效值则进行处理
{
if(i==0) //输入是第一个字符的时候需要把改行清空,方便观看
write_com(0x01);
if(('+'==num)|| (i==16) || ('-'==num) || ('x'==num)|| ('/'==num) || ('='==num))//输入数字最大值16,输入符号表示输入结束
{
i=0; //计数器复位
if(firstflag==0) //如果是输入的第一个数据,赋值给a,并把标志位置1,到下一个数据输入时可以跳转赋值给b
{
sscanf(temp,"%f",&a);
firstflag=1;
}
else
sscanf(temp,"%f",&b);
for(s=0;s<16;s++) //赋值完成后把缓冲区清零,防止下次输入影响结果
temp[s]=0;
LCD_Write_Char(0,1,num);
///////////////////////
if(num!='=') //判断当前符号位并做相应处理
sign=num; //如果不是等号记下标志位
else
{
firstflag=0; //检测到输入=号,判断上次读入的符合
switch(sign)
{
case '+':a=a+b;
break;
case '-':a=a-b;
break;
case 'x':a=a*b;
break;
case '/':a=a/b;
break;
default:break;
}
sprintf(temp,"%g",a); //输出浮点型,无用的0不输出
Write_String(1,1,temp);//显示到液晶屏
sign=0;a=b=0; //用完后所有数据清零
for(s=0;s<16;s++)
temp[s]=0;
}
}
else if(i<16)
{
if((1==i)&& (temp[0]=='0') )//如果第一个字符是0,判读第二个字符
{
if(num=='.') //如果是小数点则正常输入,光标位置加1
{
temp[1]='.';
LCD_Write_Char(1,0,num);//输出数据
i++;
} //这里没有判断连续按小数点,如0.0.0
else
{
temp[0]=num; //如果是1-9数字,说明0没有用,则直接替换第一位0
LCD_Write_Char(0,0,num);//输出数据
}
}
else
{
temp[i]=num;
LCD_Write_Char(i,0,num);//输出数据
i++; //输入数值累加
}
}
}
}
}
三、51单片机简易时钟都啥元器件?
一个简易的51单片机时钟电路至少需要以下元器件:
1. 51单片机:作为控制核心,可以选择不同型号的芯片,如STC89C52、AT89S52等。
2. 晶体振荡器:提供稳定的时钟信号,一般选择12MHz频率的晶体振荡器。
3. 电容:晶体振荡器需要两个电容来支持其振荡,一般选择22pF的电容。
4. 液晶显示屏:用于显示时间,可以选择1602液晶显示屏或者更小的12864液晶显示屏。
5. 温度补偿电阻:为了保证时钟精度,在晶体振荡器的输入引脚上需要串联一个温度补偿电阻,一般选择10K欧姆。
6. 按键开关:用于调整时钟时间,可以选择带壳的按键或者直接焊接在板子上的轻触开关。
7. 电源:需要提供稳定可靠的5V直流电源。
除此之外,还需要一些连接线、面包板或PCB板等辅助材料。
四、用单片机做简易家电定时控制器?
还可以使用现成的TPC4-4TD型定时程序控制器,可以控制4路负载,还有4路输入开关的控制,输出定时0——200小时,一共60行设置程序,每行程序有一个延时定时器和一个输出定时器。采用表格设置,无需编程。不仅可以实现定时控制,还可以实现程序控制。不过这个控制器一般都是用于工业设备控制使用,价格380元。还有控制更多输出电器负载的型号。 下面补充回答你对单片机编程的问题: 用单片机编制简易家电控制器并不复杂,只要你学过汇编语言或者单片机C语言也是比较简单的入门程序。程序基本涉及到三个部分,一是按键扫描程序,二是显示程序,这两个程序配合实现对家电控制器操作和设置;三是定时部分,定时部分使用单片机内部的定时器,需要编写定时器的初始化和定时器的中断程序。最好亲自尝试程序的编写,有个这样的课题也是使自己提升的最佳机会。 有个捷径就是参考别人的示例程序,拿来理解修改,这也是学习过程,可以快速掌握。下的功夫越多,自己获得的就更多。
五、51单片机简易恒温控制器电路原理?
控制器是按照预定顺序改变主电路或控制电路的接线和改变电路中电阻值来控制电动机的启动、调速、制动和反向的主令装置。
六、数控直流稳压电源设计?
你做的毕业设计也是这个吗,我的也是,你做出来了吗,要不咱交流交流?
七、51系列单片机怎样才能提供直流稳压电源的基准电压?
单片机是可以提供基准电压的,一般单片机端口电压5V,你可以设对其定义输出高低值,用按键控制给与不给
八、请问怎么设计这种直流稳压电源?
一台220/24V变压器,三个整流桥,分别输出直流+12V、-12V、24V。用7812做+12V稳压输出、用7912做-12V稳压输出。用7805做+5V稳压输出,从+12V接出。用一个317做3-18V电压可调输出,从24V接出。这是用线性稳压IC的最简单方案。谁都能上手制作。
如果用开关电源做,比较复杂,没有开关电源设计制作基础的不行。
九、超级简易与简易的区别?
你好,超级简易和简易是两种不同的编程语言。超级简易是一种基于Python的可视化编程语言,它的主要特点是简单易学,适合初学者。它提供了一个可视化界面,用户可以通过拖拽、连接不同的模块来构建程序,而不需要编写代码。
简易是一种老式的编程语言,它的语法非常简单,只有几个关键字。它的主要应用场景是在早期的个人电脑上,用于编写简单的程序和游戏。与超级简易相比,简易的语法更加简单,但是功能也更加有限。
十、稳压电源原理?
1955年美国的科学家罗那(G.H.Royer)首先研制成功了利用磁芯的饱和来进行自激振荡的晶体管直流变换器。此后,利用这一技术的各种形式、精益求精的直流变换器不断涌现,从而取代了早期采用的寿命短、可靠性差、转换效率低的旋转和机械振子示换流设备。由于晶体管直流变换器中的功率晶体管工作在开关状态,由此而制成的稳压电源输出的组数多、极性可变、效率高、体积小、重量轻,因而当时被广泛地应用于航天及军事电子设备。由于那时的微电子设备及技术十分落后,不能制作出耐压高、开关速度较高、功率较大的晶体管,所以这个时期的直流变换器只能采用低电压输入,并且转换的速度也不是太高。
60年代开始,由于微电子技术的快速发展,出现了高反压的晶体管,从此直流变换器就可以直接由市电经整流、滤波后输入,不再需要工频变压器降压了,从而极大地扩大了它的应用范围,并在此基础上诞生了无工频降压变压器的开关电源。省掉了工频变压器,又使开关稳压电源的体积和重量大为减小,开关稳压电源才真正做到了效率高、体积小、重量轻。
70年代以后,与这种技术有关的高频,高反压的功率晶体管、高频电容、开关二极管、开关变压器的铁芯等元件也不断地研制和生产出来,使无工频变压器开关稳压电源得到了飞速的发展,并且被广泛地应用于电子计算机、通信、航天、彩色电视机等领域,从而使无工频变压器开关稳压电源成为各种电源的佼佼者。
使用稳压电源的必要性
随着社会飞速前进,用电设备与日俱增。但电力输配设施的老化和发展滞后,以及设计不良和供电不足等原因造成末端用户电压的过低,而线头用户则经常电压偏高。对用电设备特别是对电压要求严格的高新科技和精密设备,犹如没有上保险。
不稳定的电压会给设备造成致命伤害或误动作,影响生产,造成交货期延误、质量不稳定等多方面损失。同时加速设备的老化、影响使用寿命甚至烧毁配件,使业主面临需要维修的困扰或短期内就要更新设备,浪费资源;严重者甚至发生安全事故,造成不可估量的损失。 [1] [2]


- 相关评论
- 我要评论
-