精华内容
下载资源
问答
  • 51单片机驱动普中科技LCD12864显示(ST7565驱动),该LCD12864为16PIN的LCD,压缩包内含驱动程序(三菜单显示)、ISIS仿真、ST7565技术文档。
  • 51单片机驱动喇叭

    千次阅读 2016-01-25 11:31:55
    就是直接接到单片机IO口。能不能驱动15欧的喇叭? 有没有什么应用的资料的? 谢了 悬赏分:10 - 解决时间:2009-12-10 23:24 问题补充:具体要怎么驱动呢??提问者: xngh126 - 三;-----------------------------...

    51能直接驱动喇叭吗?就是直接接到单片机IO口。
    能不能驱动15欧的喇叭? 有没有什么应用的资料的? 谢了
    悬赏分:10 - 解决时间:2009-12-10 23:24
    问题补充:具体要怎么驱动呢??
    提问者: xngh126 - 三级
    ;------------------------------------------------------------------
    做而论道的回答:
    可以使用一个PNP型的晶体管,如8550,构成一个驱动器,电路如下所示。

    51单片机驱动喇叭 - 非著名博主 - 电子信息角落

    注意:不发音的时候,应该保持引脚的输出为高电平;
    如果难以保证,则应该在电阻支路中,再串联一个10uF的电容器,起到隔直的作用。
    回答者: 做而论道 - 十一级   2009-12-6 18:04
    ;------------------------------------------------------------------
    其它答案:
    -
    你得使用一个驱动器件,单片机的IO口驱动能力不大。
    回答者: -------- 二级   2009-12-6 23:04
    -
    最好安装一个驱动,这样也可以直接驱动喇叭只是声音很小。毕竟单片机发出的电流电压是有限制的,一个I/0的功率不够大。加个驱动就好多了。
    回答者: ypfengye - 三级   2009-12-6 13:41
    http://zhidao.baidu.com/question/128268495.html

    展开全文
  • 4种单片机驱动继电器方案

    千次阅读 2019-07-01 14:05:54
    在网上论坛看到一个贴子收集的,供大家参考 方案一:三极管驱动 方案二:ULN2003驱动 方案三:光耦+三极管驱动 方案四:光耦+ULN2003驱动 ...光耦内阻比较大,不能直接驱动负载,后面要加一级驱动管 ...

    在网上论坛看到一个贴子收集的,供大家参考

    方案一:三极管驱动
     

    方案二:ULN2003驱动
     

    方案三:光耦+三极管驱动
     

    方案四:光耦+ULN2003驱动

     

     

     

    光耦内阻比较大,不能直接驱动负载,后面要加一级驱动管

    展开全文
  • 我理解的所谓数据驱动程序的方法,简单而言:将数据与程序分析,将代码逻辑的组织转换成数字规律的统计。即将数据作为一个要处理的脚本(当做数据库),然后程序作为解释器,将脚本的内容用代码逻辑解释出来,实现...

    我理解的所谓数据驱动程序的方法,简单而言:将数据与程序分析,将代码逻辑的组织转换成数字规律的统计。即将数据作为一个要处理的脚本(当做数据库),然后程序作为解释器,将脚本的内容用代码逻辑解释出来,实现编程功能。

    这就要求我们将代码逻辑分解出其内在数据关系,这样我们就可以写出与数据无关的函数,这样的函数通用性很大,利于复用,耦合性也比较低,利于修改,且修改后不易出错。

    这样的方法也有坏处,就是可读性变差,解决的办法就是多写点关于逻辑的注释。

    下面举个例子:(来自书籍--单片机编程魔法师之高级裸编程思想,挺好的一本书,可以看看,可以去下载下载链接处,待有缘人! )

    (1)要实现如下波形:

    (2)我们 一般的实现方法:将上面分成16段(依据是波形存在不一样的时候作为分界点),每段单独分析。代码如下(使用51单片机实现)。

    #include <reg51.h>
    
    sbit P10=P1^0;
    sbit P11=P1^1;
    sbit P12=P1^2;
    sbit P13=P1^3;
    
    void delay(unsigned char d, unsigned int t)
    {
    	unsigned int i;
    
    	P1 = P1 & 0xF0 | d;
    	for(i=0; i<t; i++);
    }
    
    main(void)
    {
    	while(1)
    	{
    		delay(0x00, 749);		// 阶段1
    		delay(0x01, 251);		// 阶段2
    
    		delay(0x00, 749);		// 阶段3
    		delay(0x03, 251);		// 阶段4
    
    		delay(0x00, 749);		// 阶段5
    		delay(0x01, 251);		// 阶段6
    
    		delay(0x00, 749);		// 阶段7
    		delay(0x07, 251);		// 阶段8
    
    		delay(0x00, 749);		// 阶段9
    		delay(0x01, 251);		// 阶段10
    
    		delay(0x00, 749);		// 論僇11
    		delay(0x03, 251);		// 論僇12
    
    		delay(0x00, 749);		// 阶段13
    		delay(0x01, 251);		// 阶段14
    
    		delay(0x00, 749);		// 阶段15
    		delay(0x0F, 251);		// 阶段16
    	}
    }
    

    (3)而采用数据驱动程序的方法:将每个阶段分离出数据,然后用一个函数统一处理。本例中使用数组来存储代表各个阶段的逻辑的数据,接着用一段代码就可解决,来代码如下:

    #include <reg51.h>
    
    sbit P10=P1^0;
    sbit P11=P1^1;
    sbit P12=P1^2;
    sbit P13=P1^3;
    
    #define STAGES		16
    unsigned char code P1_1234[] = {0, 1, 0, 3, 0, 1, 0, 7, 0, 1, 0, 3, 0, 1, 0, 15};
    unsigned int code Dts[] = {749, 251, 749, 251, 749, 251, 749, 251, 749, 251, 749, 251, 749, 251, 749, 251};
    
    void delay(unsigned char d, unsigned int t)
    {
    	unsigned int i;
    
    	P1 = P1 & 0xF0 | d;
    	for(i=0; i<t; i++);
    }
    
    main(void)
    {
    	int i;
    
    	while(1)
    	{
    		for(i=0; i<STAGES; i++)
    			delay(P1_1234[i], Dts[i]);
    	}
    }
    

    (4)好处:似乎没有看出了,牺牲了易读性,有得必有失,我们会的得到什么?

    再举几个例子:实现以下波形。对于这个波形,如果我们不采用数据驱动程序的方法,那么相当于重写(重新分阶段,不难但是繁琐),而使用这种高阶的方法后,解释器代码一个字母都不用改变。

    数据驱动程序的代码如下:

    #include <reg51.h>
    
    sbit P10=P1^0;
    sbit P11=P1^1;
    sbit P12=P1^2;
    sbit P13=P1^3;
    
    #define STAGES		8
    unsigned char code P1_1234[] = {0, 1, 3, 7, 15, 7, 3, 1};
    
    void delay(unsigned char d, unsigned int t)
    {
    	unsigned int i;
    
    	P1 = P1 & 0xF0 | d;
    	for(i=0; i<t; i++);
    }
    
    main(void)
    {
    	int i;
    
    	while(1)
    	{
    		for(i=0; i<STAGES; i++)
    			delay(P1_1234[i], 500);
    	}
    }

    (5)总结:

    虽然数据驱动代码这种高阶的方法不是万能,但是对于相似的编程要求,则给我们提供了一种可复用的方法,避免一些简单却繁琐的工作任务。

    还有, 用这种方法记得写注释,不然不仅别人看不懂, 就连几天后的你再次回顾时,都不知道是怎么写出来的。

    展开全文
  • 一、使用proteus绘制简单的电路图,用于后续仿真 二、编写程序 /******************************************************************************************************************** ...

    一、使用proteus绘制简单的电路图,用于后续仿真

     

    二、编写程序

    /********************************************************************************************************************
    ----	@Project:	LED-74HC595
    ----	@File:	main.c
    ----	@Edit:	ZHQ
    ----	@Version:	V1.0
    ----	@CreationTime:	20200524
    ----	@ModifiedTime:	20200524
    ----	@Description:	两片联级的74HC595驱动的16个LED灯交叉闪烁。比如,先是第1,3,5,7,9,11,13,15八个灯亮,其它的灯都灭。然后再反过来,原来亮的就灭,原来灭的就亮。交替闪烁。
    ----	单片机:AT89C52
    ********************************************************************************************************************/
    #include "reg52.h"
    /*——————宏定义——————*/
    #define FOSC 11059200L
    #define T1MS (65536-FOSC/12/1000)   /*1ms timer calculation method in 12Tmode*/
    
    #define const_time_level  400   
    
    
    /*——————变量函数定义及声明——————*/
    /*定义74HC595*/
    sbit Hc595_Sh = P2^3;
    sbit Hc595_St = P2^4;
    sbit Hc595_Ds = P2^5;
    
    unsigned char ucLED1 = 0;   /*代表16个灯的亮灭状态,0代表灭,1代表亮*/
    unsigned char ucLED2 = 0;
    unsigned char ucLED3 = 0;
    unsigned char ucLED4 = 0;
    unsigned char ucLED5 = 0;
    unsigned char ucLED6 = 0;
    unsigned char ucLED7 = 0;
    unsigned char ucLED8 = 0;
    unsigned char ucLED9 = 0;
    unsigned char ucLED10 = 0;
    unsigned char ucLED11 = 0;
    unsigned char ucLED12 = 0;
    unsigned char ucLED13 = 0;
    unsigned char ucLED14 = 0;
    unsigned char ucLED15 = 0;
    unsigned char ucLED16 = 0;
    
    
    unsigned char ucLed_update = 0;  /*刷新变量。每次更改LED灯的状态都要更新一次。*/
    
    unsigned char ucLedStep = 0; /*步骤变量*/
    unsigned int  uiTimeCnt = 0; /*统计定时中断次数的延时计数器*/
    
    unsigned char ucLedStatus16_09 = 0;   /*代表底层74HC595输出状态的中间变量*/
    unsigned char ucLedStatus08_01 = 0;   /*代表底层74HC595输出状态的中间变量*/
    
    /**
    * @brief  定时器0初始化函数
    * @param  无
    * @retval 初始化T0
    **/
    void Init_T0(void)
    {
    	TMOD = 0x01;                    /*set timer0 as mode1 (16-bit)*/
    	TL0 = T1MS;                     /*initial timer0 low byte*/
    	TH0 = T1MS >> 8;                /*initial timer0 high byte*/
    }
    /**
    * @brief  外围初始化函数
    * @param  无
    * @retval 初始化外围
    **/
    void Init_Peripheral(void)
    {
    	ET0 = 1;/*允许定时中断*/
    	TR0 = 1;/*启动定时中断*/
    	EA = 1;/*开总中断*/
    
    }
    
    /**
    * @brief  初始化函数
    * @param  无
    * @retval 初始化单片机
    **/
    void	Init(void)
    {
    	Init_T0();
    }
    /**
    * @brief  延时函数
    * @param  无
    * @retval 无
    **/
    void Delay_Long(unsigned int uiDelayLong)
    {
       unsigned int i;
       unsigned int j;
       for(i=0;i<uiDelayLong;i++)
       {
          for(j=0;j<500;j++)  /*内嵌循环的空指令数量*/
              {
                 ; /*一个分号相当于执行一条空语句*/
              }
       }
    }
    /**
    * @brief  延时函数
    * @param  无
    * @retval 无
    **/
    void Delay_Short(unsigned int uiDelayShort)
    {
       unsigned int i;
       for(i=0;i<uiDelayShort;i++)
       {
    		 ; /*一个分号相当于执行一条空语句*/
       }
    }
    
    /**
    * @brief  595驱动函数
    * @param  无
    * @retval * 两个联级74HC595的工作过程:
    * 每个74HC595内部都有一个8位的寄存器,两个联级起来就有两个寄存器。ST引脚就相当于一个刷新
    * 信号引脚,当ST引脚产生一个上升沿信号时,就会把寄存器的数值输出到74HC595的输出引脚并且锁存起来,
    * DS是数据引脚,SH是把新数据送入寄存器的时钟信号。也就是说,SH引脚负责把数据送入到寄存器里,ST引脚
    * 负责把寄存器的数据更新输出到74HC595的输出引脚上并且锁存起来。
    **/
    void HC595_Drive(unsigned char ucLedStatusTemp16_09, unsigned char ucLedStatusTemp08_01)
    {
    	unsigned char i;
    	unsigned char ucTempData;
    	Hc595_Sh = 0;
    	Hc595_St = 0;	
    	
    	ucTempData = ucLedStatusTemp16_09;	/*先送高8位*/
    	for(i = 0; i < 8; i ++)
    	{
    		if(ucTempData >= 0x80)
    		{
    			Hc595_Ds = 1;
    		}
    		else
    		{
    			Hc595_Ds = 0;
    		}
    		Hc595_Sh = 0;	/*SH引脚的上升沿把数据送入寄存器*/
    		Delay_Short(15); 
    		Hc595_Sh = 1;
    		Delay_Short(15); 	
    			
    		ucTempData = ucTempData <<1;
    	}
    	ucTempData = ucLedStatusTemp08_01;	/*再先送低8位*/
    	for(i = 0; i < 8; i ++)
    	{
    		if(ucTempData >= 0x80)
    		{
    			Hc595_Ds = 1;
    		}
    		else
    		{
    			Hc595_Ds = 0;
    		}
    		Hc595_Sh = 0;	/*SH引脚的上升沿把数据送入寄存器*/
    		Delay_Short(15); 
    		Hc595_Sh = 1;
    		Delay_Short(15); 	
    			
    		ucTempData = ucTempData <<1;
    	}
    	
    	Hc595_St = 0;	/*ST引脚把两个寄存器的数据更新输出到74HC595的输出引脚上并且锁存起来*/
    	Delay_Short(15);
    	Hc595_St = 1;
    	Delay_Short(15);
    	
    	Hc595_Sh = 0;	/*拉低,抗干扰就增强*/
    	Hc595_St = 0;
    	Hc595_Ds = 0;
    }
    /**
    * @brief  LED更新函数
    * @param  无
    * @retval 
    * 把74HC595驱动程序翻译成类似单片机IO口直接驱动方式的过程。
    * 每次更新LED输出,记得都要把ucLed_update置1表示更新。
    **/
    void LED_Update()
    {
    	if(ucLed_update == 1)
    	{
    		ucLed_update = 0;	/*及时清零,让它产生只更新一次的效果,避免一直更新。*/
    		if(ucLED1 == 1)
    		{
    			ucLedStatus08_01 = ucLedStatus08_01 | 0x01;
    		}
    		else
    		{
    			ucLedStatus08_01 = ucLedStatus08_01 & 0xfe;
    		}
    		if(ucLED2 == 1)
    		{
    			ucLedStatus08_01 = ucLedStatus08_01 | 0x02;
    		}
    		else
    		{
    			ucLedStatus08_01 = ucLedStatus08_01 & 0xfd;
    		}
    		if(ucLED3 == 1)
    		{
    			ucLedStatus08_01 = ucLedStatus08_01 | 0x04;
    		}
    		else
    		{
    			ucLedStatus08_01 = ucLedStatus08_01 & 0xfb;
    		}
    		if(ucLED4 == 1)
    		{
    			ucLedStatus08_01 = ucLedStatus08_01 | 0x08;
    		}
    		else
    		{
    			ucLedStatus08_01 = ucLedStatus08_01 & 0xf7;
    		}		
    		if(ucLED5 == 1)
    		{
    			ucLedStatus08_01 = ucLedStatus08_01 | 0x10;
    		}
    		else
    		{
    			ucLedStatus08_01 = ucLedStatus08_01 & 0xef;
    		}
    		if(ucLED6 == 1)
    		{
    			ucLedStatus08_01 = ucLedStatus08_01 | 0x20;
    		}
    		else
    		{
    			ucLedStatus08_01 = ucLedStatus08_01 & 0xdf;
    		}
    		if(ucLED7 == 1)
    		{
    			ucLedStatus08_01 = ucLedStatus08_01 | 0x40;
    		}
    		else
    		{
    			ucLedStatus08_01 = ucLedStatus08_01 & 0xbf;
    		}
    		if(ucLED8 == 1)
    		{
    			ucLedStatus08_01 = ucLedStatus08_01 | 0x80;
    		}
    		else
    		{
    			ucLedStatus08_01 = ucLedStatus08_01 & 0x7f;
    		}
    		if(ucLED9 == 1)
    		{
    			ucLedStatus16_09 = ucLedStatus16_09 | 0x01;
    		}
    		else
    		{
    			ucLedStatus16_09 = ucLedStatus16_09 & 0xfe;
    		}
    		if(ucLED10 == 1)
    		{
    			ucLedStatus16_09 = ucLedStatus16_09 | 0x02;
    		}
    		else
    		{
    			ucLedStatus16_09 = ucLedStatus16_09 & 0xfd;
    		}
    		if(ucLED11 == 1)
    		{
    			ucLedStatus16_09 = ucLedStatus16_09 | 0x04;
    		}
    		else
    		{
    			ucLedStatus16_09 = ucLedStatus16_09 & 0xfb;
    		}
    		if(ucLED12 == 1)
    		{
    			ucLedStatus16_09 = ucLedStatus16_09 | 0x08;
    		}
    		else
    		{
    			ucLedStatus16_09 = ucLedStatus16_09 & 0xf7;
    		}		
    		if(ucLED13 == 1)
    		{
    			ucLedStatus16_09 = ucLedStatus16_09 | 0x10;
    		}
    		else
    		{
    			ucLedStatus16_09 = ucLedStatus16_09 & 0xef;
    		}
    		if(ucLED14 == 1)
    		{
    			ucLedStatus16_09 = ucLedStatus16_09 | 0x20;
    		}
    		else
    		{
    			ucLedStatus16_09 = ucLedStatus16_09 & 0xdf;
    		}
    		if(ucLED15 == 1)
    		{
    			ucLedStatus16_09 = ucLedStatus16_09 | 0x40;
    		}
    		else
    		{
    			ucLedStatus16_09 = ucLedStatus16_09 & 0xbf;
    		}
    		if(ucLED16 == 1)
    		{
    			ucLedStatus16_09 = ucLedStatus16_09 | 0x80;
    		}
    		else
    		{
    			ucLedStatus16_09 = ucLedStatus16_09 & 0x7f;
    		}
    		HC595_Drive(ucLedStatus16_09, ucLedStatus08_01);
    	}
    }
    /**
    * @brief  LED闪烁函数
    * @param  无
    * @retval 无
    **/
    void LED_Flicker(void)
    {
    	switch(ucLedStep)
    	{
    		case 0:
    			if(uiTimeCnt >= const_time_level)
    			{
    				uiTimeCnt = 0;	/*时间计数器清零*/
    				
    				ucLED1 = 1;	/*每个变量都代表一个LED灯的状态*/
    				ucLED2 = 0;
    				ucLED3 = 1;
    				ucLED4 = 0;
    				ucLED5 = 1;
    				ucLED6 = 0;
    				ucLED7 = 1;
    				ucLED8 = 0;
    				ucLED9 = 1;
    				ucLED10 = 0;
    				ucLED11 = 1;
    				ucLED12 = 0;
    				ucLED13 = 1;
    				ucLED14 = 0;
    				ucLED15 = 1;
    				ucLED16 = 0;
    				
    				ucLed_update = 1;  /*更新显示*/
    				ucLedStep = 1;
    			}
    		break;
    		case 1:
    			if(uiTimeCnt >= const_time_level)
    			{
    				uiTimeCnt = 0;	/*时间计数器清零*/
    				
    				ucLED1 = 0;	/*每个变量都代表一个LED灯的状态*/
    				ucLED2 = 1;
    				ucLED3 = 0;
    				ucLED4 = 1;
    				ucLED5 = 0;
    				ucLED6 = 1;
    				ucLED7 = 0;
    				ucLED8 = 1;
    				ucLED9 = 0;
    				ucLED10 = 1;
    				ucLED11 = 0;
    				ucLED12 = 1;
    				ucLED13 = 0;
    				ucLED14 = 1;
    				ucLED15 = 0;
    				ucLED16 = 1;
    				
    				ucLed_update = 1;  /*更新显示*/
    				ucLedStep = 0;
    			}			
    		break;
    	}
    }
    /**
    * @brief  定时器0中断函数
    * @param  无
    * @retval 无
    **/
    void ISR_T0(void)	interrupt 1
    {
    	TF0 = 0;  /*清除中断标志*/
      TR0 = 0; /*关中断*/
    	
    	if(uiTimeCnt < 0xffff)	/*设定这个条件,防止uiTimeCnt超范围。*/
    	{
    		uiTimeCnt ++;		
    	}
    	
    	TL0 = T1MS;                     /*initial timer0 low byte*/
    	TH0 = T1MS >> 8;                /*initial timer0 high byte*/
      TR0 = 1; /*开中断*/	
    }
    
    /*——————主函数——————*/
    /**
    * @brief  主函数
    * @param  无
    * @retval 实现LED灯闪烁
    **/
    void main()
    {
    	/*单片机初始化*/
    	Init();
    	/*延时,延时时间一般是0.3秒到2秒之间,等待外围芯片和模块上电稳定*/
    	Delay_Long(100);
    	/*单片机外围初始化*/	
    	Init_Peripheral();
    	while(1)
    	{
    		/*按键服务函数*/
    		LED_Flicker();
    		/*LED更新函数*/
    		LED_Update(); 
    	}
    }
    
    

    三、仿真实现

    展开全文
  • 但是800K的数据速率(IO变化速率高达2.4M),对单片机提出了较高的要求,通常是采用SPI+DMA方式驱动, 也有人采用汇编实现,但是要预先把数据转换为按bit存放,在LED连数量较多的情况下,需要占用极多的存储空间。...
  • 里面有电机驱动介绍,高级自走车程序,红外遥控,完整架构,安装指南,自坐车接线说明,遥控器
  • 一、使用proteus绘制简单的电路图,用于后续仿真 二、编写程序 /******************************************************************************************************************** ...
  • 基于51单片机的步进电机驱动程序

    千次阅读 2020-09-05 10:46:08
    基于51单片机的步进电机驱动程序一、步进电机分类三目录二、相关参数及计算二目录三目录三、驱动编写二目录三目录 一、步进电机分类 三目录 二、相关参数及计算 二目录 三目录 三、驱动编写 二...
  • 基于飞思卡尔MC9S12XEP100单片机读取8G 高速SDHC卡完整底层驱动程序;重点讲述了如何分析SD卡返回值,SD卡和SDHC卡初始化时的区别。
  • 作为一名业余的单片机爱好者,从开始玩到现在,做的最多的就是各种各样的时钟了。从最初的纯软件计时,到DS1302时钟芯片再到后来的GPS、 SNTP对时的都做过。纯软件计时一断电就全归零了,完全没有实用价值;DS1302的...
  • 05级单片机原理及应用重修复习卷05单片机原理及应用》重修复习卷试卷C卷答案题号一二三四五六总分得分得分评卷人 一.填空(25*1=25)1.+1010110B的原码是 ;-0110111B的反码是 ;-15的补码是 ;96的BCD码是CD 。...
  • 单片机常用芯片MAX7219驱动

    万次阅读 多人点赞 2017-05-17 16:32:09
    MAX7219是MAXIM公司生产的串行输入/输出共阴极数码管显示驱动芯片,一片MAX7219可驱动8个7段(包括小数点共8段)数字LED、LED条线图形显示器、或64个分立的LED发光二管。该芯片具有10MHz传输率的三线串行接口可与...
  • 芯片内集成了完整的网络协议,使网络连接到现有的嵌入式系统中而不增加中控芯片的负担。
  • 51单片机与DM542接线。P10接PUL- P11接DIR- P12接ENA- 信号端加个10K电阻串联 采用共阳接法 PUL+、DIR+、ENA+ 接5V DIR //控制方向 ENA//使能步进电机 //简单驱动程序 speed代表步进电机速度 speed越大速度越...
  • 大一的时候需要用到GY-26模块配合调试机器人转向,当时花了不少的功夫才把GY-26模块成功驱动,希望我的代码能给大家一些帮助,格式和注释写的不规范的地方希望大家多多理解,这是大一的时候的作品。下面给大家列出...
  • 驱动电路的一大特性就是电子快门,其将光积分时间缩短了一个数量,至几个微秒,极大地提高了测量速度;同时,通过对CCD输出信号A/D采样分析,实时调节电予快门时间,实现自动调节控制,提高了测量精度。经实验...
  • 1 引言  欠驱动机器人是一种部分关节为被动关节,能用较少的驱动装置完成复杂任务的机械系统。...该控制系统采用两控制结构。以通用PC作为上位机,完成目标设定、轨迹生成、系统管理和人机接口
  • 驱动电流在mA以下.而要把它用于一些大功率场合,比如控制电动机,显然是不行的.所以,就要有一个环节来衔接,这个环节就是所谓的"功率驱动".继电器驱动就是一个典型的、简单的功率驱动环节.在这里,继电器...
  • 电视机与电视体验已经来到了一个转折点。今天,英特尔公司高层金炳国(Eric Kim)和贾斯汀(Justin Rattner)在英特尔信息技术峰会上发表主题演讲,探讨了互联网与广播网络实现全面融合时的情况及... 金炳国表示:“驱动
  • 单片机编程魔法师之高级裸编程思想》以单片机裸环境为基础,为编程者定义了一个微操作系统(MOS)的编程环境,并面向应用中不断提高的需求对编程策略进行了深度剖析与研究,从而分离出数据驱动、并行多任务、面向...
  • 单片机编程魔法师之高级裸编程思想》以单片机裸环境为基础,为编程者定义了一个微操作系统(MOS)的编程环境,并面向应用中不断提高的需求对编程策略进行了深度剖析与研究,从而分离出数据驱动、并行多任务、面向...
  • 28点工业高可靠单片机控制板JMDM-28DIOMRrar,28点工业高可靠单片机控制板 RS232串口控制器 步进电机控制器 继电器气缸电磁阀控制器 精密转速控制 精密运动控制 精密机械加工控制器包括晶体管输出(JMDM-28DIOMT)...
  • 工业8~20点单片机控制器JMDM-20DIOV2rar,防雷击 抗强干扰全光电隔离数字量 工业8~20点单片机控制器 RS232串口控制器 步进电机控制器 气缸电磁阀控制器 精密转速控制、精密运动控制、精密机械加工控制器 JMDM-...
  •  单片机是一种集成在电路 芯片,是采用超大规模集成电路 技术把具有数据处理能力的中央处理器CPU随机存储RAM、只读存储器ROM 、多种I/O口和中断系统、定时器/计时器 等功能(可能还包括显示驱动电路、脉宽调制 电路...
  • 8个74h595连,驱动数码管显示,利用定时器进行动态显示。 在keil5下的c51工程,可以移植到别的单片机
  • 本文介绍如何使用STM32F103单片机,通过官方固件库,设置高级定时器TIM1输出嵌入死区的互补PWM,来驱动直流电机的程序设计与电路设计。硬件电路采用IR2110S芯片作为mos管的驱动驱动IRF840组成的H桥。IR2110S芯片...
  • 驱动电流在mA以下.而要把它用于一些大功率场合,比如控制电动机,显然是不行的.所以,就要有一个环节来衔接,这个环节就是所谓的"功率驱动".继电器驱动就是一个典型的、简单的功率驱动环节。  首先看看继电器的驱动 ...
  • 凌阳科技(sunplus)推出16位马达驱动控制的工业级单片机——SPMC75系列,针对SPMC75的系统开发,凌阳科技公司推出了相应的变频评估套件。   SPMC75系列单片机是由凌阳科技设计开发的16位微控制器芯片,其内核...
  • 这里针对电磁干扰较强以及要求低成本应用的场合,采用超强抗干扰、小巧低功耗的工业STC12C系列单片机,充分利用单片机内部的硬件资源,设计实用的步进电机控制和驱动系统。  1 控制系统总体方案设计  系统功能...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 290
精华内容 116
关键字:

单片机驱动级