导航:首页 > 操作系统 > 52单片机驱动

52单片机驱动

发布时间:2022-08-20 12:50:25

Ⅰ 关于stc90c52单片机驱动数码管电路的问题

数码管下面的三极管是驱动用的,com接口是选通用的,你的数码管应该是采用扫描驱动的。扫描原理就是任意一个时刻,只有一个COM是通的,通的时候,单片机输出对应于该位的数值,其它关断。快速轮回显示,这样,由于人眼的视觉停留,看到的是所有数码管同时显示。这方面,你需要看一下扫描显示原理。
R1~R8是对数码管的8个字段(7段码加小数点)进行限流。比如说,你希望数码管的电流限制为10mA,那么(5V-1.6V)/10mA=340Ω。问题是,由于你采用扫描显示,如果是4个数码管扫描,那么,其平均电流只有10mA的1/4,也就是2.5mA,为此,需要将限流电阻减小。限流电阻为100Ω时,实际导通电流约34mA,平均电流约8.5mA。

Ⅱ 如何用52rc单片机驱动微孔雾化片

应该是单片机管脚的驱动能力太弱,没能驱动雾化片。用万用表或者示波器看下管脚电压。
STC的话可以设置成推挽输出,驱动能力大大增强

Ⅲ 单片机AT80S52怎么驱动蜂鸣器

AT80S52单片机io口的驱动能力很弱,如果把蜂鸣器的+接正电源蜂鸣器的-接单片机的io口,并在程序中把这个io口置“0”,也许会听到很轻微的响声,但是,如果把蜂鸣器的-接电源地,蜂鸣器的+接单片机的io口,并在程序中把这个io口置“1”,由于单片机的驱动能力严重不足,是听不到响声的。需要加驱动才可以。

Ⅳ 52单片机如何增加输出PWM波形的驱动能力

直流输出

Ⅳ 谁能帮忙写个52单片机驱动74hc595控制LCD1602的程序

你敢不敢给点分

#include <reg51.h>
#include <intrins.h>

#define uchar unsigned char
#define uint unsigned int
#define LcdBus P0
sbit LED1602_RS=P2^6; //LCD端口定义
sbit LED1602_RW=P2^5 ;
sbit LED1602_EN=P2^4 ;

void LcdIni(void);
void WrOp(uchar dat);
void WrDat(uchar dat);
void ChkBusy(void);
void print_LCD(uchar disp[],uchar num);
//延时n ms子程序
void delayms(unsigned int n)
{
unsigned int i,j;
for(i=0;i<n;i++)
for(j=0;j<120;j++);
}

main()
{
uchar disp1[16]={'S','u','n','J','i','e',' ','m','a','d','e',' ','a','t',' ',' '};
uchar disp2[16]={'2','0','0','8',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '};
while(1)
{

LcdIni();
WrOp(0x80); //数据指针地址第一行
print_LCD(disp1,16);
WrOp(0xc0); //第二行
print_LCD(disp2,4);
delayms(3000);
WrOp(0x01);

}

}
/******************************************************************************************
名称:led1602显示 程序模块
功能:驱动1602 包括数据口 P1 三个控制口
编译:keil
作者:孙杰
时间:2008-8-9
*******************************************************************************************/
void print_LCD(uchar disp[],uchar num) //显示数组disp 显示长度为num
{
uchar i;
for(i=0;i<num;i++)
{
WrDat(disp[i]);
delayms(300);
}
}
void LcdIni()
{

WrOp(0x38);
WrOp(0x06); //光标加1
WrOp(0x0f); //开显示 光标闪烁
// WrOp(0x0c); //开显示 光标不闪烁
}

void WrOp(uchar dat)
{
//uchar i;
ChkBusy();
LED1602_RS=0; //RS=0
LED1602_RW=0; //RW=0
LED1602_EN=0; //EN=0
LcdBus=dat; //送数据
LED1602_EN=1; //EN=1
delayms(10); //延时
LED1602_EN=0; //EN=0
}

void WrDat(uchar dat)
{
//uchar i;
ChkBusy();
LED1602_RS=1; //rs=1
LED1602_RW=0; //rw=0
LED1602_EN=0; //en=0
LcdBus=dat; //送数据
LED1602_EN=1; //en=1
delayms(10);; //延时
LED1602_EN=0; //en=0
}

void ChkBusy()
{

LED1602_RS=0; //RS=0
LED1602_RW=1; //RW=1
LED1602_EN=1; //EN=1
while(LcdBus&0x80); //送数据
LED1602_EN=0; //en=0

}

Ⅵ 二项四线步进电机用52单片机的话,选用什么驱动芯片

建议用L297+L298做驱动器:它能自己生成步进电机工作所需相序,在很大程度上能够减轻软件设计的负担,控制比较简单,只需要发送脉冲即可;ULN2003其实也可以(如果做比较小的东西的话),ULN2003是一个非门电路,包含7个单元,单独每个单元驱动电流最大可达350mA,能够直接驱动直流电机或步进电机,但是,ULN2003不能产生步进电机工作相序,需要在程序部分设计好电机如何工作!

Ⅶ 52单片机驱动蜂鸣器,我这样写为什么不对,求大神

#include<reg52.h>
void yanshi();
sbit beep=P3^6;
void main()
{
while(1){
beep=0;
yanshi();
beep=1;
yanshi();
}
}
void yanshi()
{
int i;
for(i=100;i>=0;i--);
}

程序这样就行了,如果你的是有源可以,无源也可以。需要高电平打开三极管开关。

阅读全文

与52单片机驱动相关的资料

热点内容
ubuntu1404安装php 浏览:628
lua能编译吗 浏览:106
思仙怎么看服务器 浏览:656
php微信图片防盗链 浏览:796
安卓1怎么读音 浏览:287
农业app怎么开通快捷支付 浏览:908
pythonredisdict 浏览:383
如何攻击别人网赌服务器 浏览:878
隐私与应用加密的图案密码 浏览:36
陈情令王一博解压 浏览:37
c编译器使用说明 浏览:707
郑州前端程序员私活有风险吗 浏览:14
小型螺杆机压缩机 浏览:520
成人解压最好的方法 浏览:52
最小制冷压缩机 浏览:490
xampp支持python 浏览:367
深圳周立功单片机 浏览:61
圆上点与点之间角度算法 浏览:869
怎么知道微信关联了哪些app 浏览:702
android事件驱动 浏览:888