-
51单片机驱动普中科技LCD12864显示(ST7565驱动)
2019-09-26 00:38:1251单片机驱动普中科技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,构成一个驱动器,电路如下所示。注意:不发音的时候,应该保持引脚的输出为高电平;
如果难以保证,则应该在电阻支路中,再串联一个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驱动光耦内阻比较大,不能直接驱动负载,后面要加一级驱动管
-
单片机高级裸机编程(一)-- 数据驱动程序
2018-10-06 14:22:51我理解的所谓数据驱动程序的方法,简单而言:将数据与程序分析,将代码逻辑的组织转换成数字规律的统计。即将数据作为一个要处理的脚本(当做数据库),然后程序作为解释器,将脚本的内容用代码逻辑解释出来,实现...我理解的所谓数据驱动程序的方法,简单而言:将数据与程序分析,将代码逻辑的组织转换成数字规律的统计。即将数据作为一个要处理的脚本(当做数据库),然后程序作为解释器,将脚本的内容用代码逻辑解释出来,实现编程功能。
这就要求我们将代码逻辑分解出其内在数据关系,这样我们就可以写出与数据无关的函数,这样的函数通用性很大,利于复用,耦合性也比较低,利于修改,且修改后不易出错。
这样的方法也有坏处,就是可读性变差,解决的办法就是多写点关于逻辑的注释。
下面举个例子:(来自书籍--单片机编程魔法师之高级裸编程思想,挺好的一本书,可以看看,可以去下载下载链接处,待有缘人! )
(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)总结:
虽然数据驱动代码这种高阶的方法不是万能,但是对于相似的编程要求,则给我们提供了一种可复用的方法,避免一些简单却繁琐的工作任务。
还有, 用这种方法记得写注释,不然不仅别人看不懂, 就连几天后的你再次回顾时,都不知道是怎么写出来的。
-
单片机学习笔记————51单片机实现两片联级74HC595驱动16个LED灯(把74HC595驱动程序翻译成类似单片机IO...
2020-05-24 20:54:28--- @File: main.c ---- @Edit: ZHQ ---- @Version: V1.0 ---- @CreationTime: 20200524 ---- @ModifiedTime: 20200524 ---- @Description: 两片联级的74HC595驱动的16个LED灯交叉闪烁。比如,先是第1,3,5,7,9,11,13...一、使用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(); } }
三、仿真实现
-
STC15单片机驱动WS2812B七彩LED(汇编混合编程)
2015-12-24 12:48:58但是800K的数据速率(IO变化速率高达2.4M),对单片机提出了较高的要求,通常是采用SPI+DMA方式驱动, 也有人采用汇编实现,但是要预先把数据转换为按bit存放,在LED级连数量较多的情况下,需要占用极多的存储空间。... -
基于51单片机的高级自走车资料
2018-07-28 10:32:05里面有电机驱动介绍,高级自走车程序,红外遥控,完整架构,安装指南,自坐车接线说明,遥控器 -
单片机学习笔记————51单片机实现两片联级74HC595驱动16个LED灯
2020-05-15 19:46:14--- @File: main.c ---- @Edit: ZHQ ---- @Version: V1.0 ---- @CreationTime: 20200515 ---- @ModifiedTime: 20200515 ---- @Description: 两片联级的74HC595驱动的16个LED灯交叉闪烁。比如,先是第1,3,5,7,9,11,13... -
基于51单片机的步进电机驱动程序
2020-09-05 10:46:08基于51单片机的步进电机驱动程序一、步进电机分类三级目录二、相关参数及计算二级目录三级目录三、驱动编写二级目录三级目录 一、步进电机分类 三级目录 二、相关参数及计算 二级目录 三级目录 三、驱动编写 二级... -
基于飞思卡尔MC9S12XEP100单片机读取8G 高速SDHC卡完整底层驱动程序(汽车级)
2018-02-08 23:08:36基于飞思卡尔MC9S12XEP100单片机读取8G 高速SDHC卡完整底层驱动程序;重点讲述了如何分析SD卡返回值,SD卡和SDHC卡初始化时的区别。 -
驱动级的自动按键_太牛了!业余单片机爱好者用DS3231制作自动亮度的4位数码管时钟...
2020-11-17 23:30:13作为一名业余的单片机爱好者,从开始玩到现在,做的最多的就是各种各样的时钟了。从最初的纯软件计时,到DS1302时钟芯片再到后来的GPS、 SNTP对时的都做过。纯软件计时一断电就全归零了,完全没有实用价值;DS1302的... -
单片机ofeh_05级单片机原理及应用重修复习卷.doc
2021-01-12 03:11:3505级单片机原理及应用重修复习卷05级《单片机原理及应用》重修复习卷试卷C卷答案题号一二三四五六总分得分得分评卷人 一.填空(25*1=25)1.+1010110B的原码是 ;-0110111B的反码是 ;-15的补码是 ;96的BCD码是CD 。... -
单片机常用芯片MAX7219驱动
2017-05-17 16:32:09MAX7219是MAXIM公司生产的串行输入/输出共阴极数码管显示驱动芯片,一片MAX7219可驱动8个7段(包括小数点共8段)数字LED、LED条线图形显示器、或64个分立的LED发光二级管。该芯片具有10MHz传输率的三线串行接口可与... -
工业级wifi模块。普通单片机可以驱动。SPI UART SDIO接口。内置协议,天线。
2012-03-02 21:08:01芯片内集成了完整的网络协议,使网络连接到现有的嵌入式系统中而不增加中控芯片的负担。 -
51单片机控制DM542驱动步进电机
2020-11-12 15:03:3551单片机与DM542接线。P10接PUL- P11接DIR- P12接ENA- 信号端加个10K电阻串联 采用共阳级接法 PUL+、DIR+、ENA+ 接5V DIR //控制方向 ENA//使能步进电机 //简单驱动程序 speed代表步进电机速度 speed越大速度越... -
基于51单片机的GY-26驱动程序
2018-09-23 17:43:31大一的时候需要用到GY-26模块配合调试机器人转向,当时花了不少的功夫才把GY-26模块成功驱动,希望我的代码能给大家一些帮助,格式和注释写的不规范的地方希望大家多多理解,这是大一的时候的作品。下面给大家列出... -
单片机与DSP中的基于电子快门自动增益的CCD驱动电路研究
2020-11-04 23:33:29该驱动电路的一大特性就是电子快门,其将光积分时间缩短了一个数量级,至几个微秒,极大地提高了测量速度;同时,通过对CCD输出信号A/D采样分析,实时调节电予快门时间,实现自动调节控制,提高了测量精度。经实验... -
单片机与DSP中的基于DSP的欠驱动体操机器人的摇起控制设计
2020-11-09 23:44:571 引言 欠驱动机器人是一种部分关节为被动关节,能用较少的驱动装置完成复杂任务的机械系统。...该控制系统采用两级控制结构。以通用PC作为上位机,完成目标设定、轨迹生成、系统管理和人机接口 -
jqc3ff继电器引脚图_单片机控制继电器驱动电路图原理分析
2020-12-21 18:27:59驱动电流在mA级以下.而要把它用于一些大功率场合,比如控制电动机,显然是不行的.所以,就要有一个环节来衔接,这个环节就是所谓的"功率驱动".继电器驱动就是一个典型的、简单的功率驱动环节.在这里,继电器... -
单片机与DSP中的英特尔技术及处理能力驱动电视革命 (1)
2020-11-10 10:28:51电视机与电视体验已经来到了一个转折点。今天,英特尔公司高层金炳国(Eric Kim)和贾斯汀(Justin Rattner)在英特尔信息技术峰会上发表主题演讲,探讨了互联网与广播网络实现全面融合时的情况及... 金炳国表示:“驱动电 -
好书推荐---单片机编程魔法师之高级裸编程思想
2018-10-04 22:16:47《单片机编程魔法师之高级裸编程思想》以单片机裸环境为基础,为编程者定义了一个微操作系统(MOS)的编程环境,并面向应用中不断提高的需求对编程策略进行了深度剖析与研究,从而分离出数据驱动、并行多任务、面向... -
单片机编程魔法师之高级裸编程思想 ,余灿基主编;张玮,张志柏,苏永刚编著编著
2018-05-23 11:49:43《单片机编程魔法师之高级裸编程思想》以单片机裸环境为基础,为编程者定义了一个微操作系统(MOS)的编程环境,并面向应用中不断提高的需求对编程策略进行了深度剖析与研究,从而分离出数据驱动、并行多任务、面向... -
28点工业级高可靠单片机控制板JMDM-28DIOMR.rar
2019-11-02 07:09:0528点工业级高可靠单片机控制板JMDM-28DIOMRrar,28点工业级高可靠单片机控制板 RS232串口控制器 步进电机控制器 继电器气缸电磁阀控制器 精密转速控制 精密运动控制 精密机械加工控制器包括晶体管输出(JMDM-28DIOMT)... -
工业级8~20点单片机控制器JMDM-20DIOV2.rar
2019-09-22 05:32:12工业级8~20点单片机控制器JMDM-20DIOV2rar,防雷击 抗强干扰全光电隔离数字量 工业级8~20点单片机控制器 RS232串口控制器 步进电机控制器 气缸电磁阀控制器 精密转速控制、精密运动控制、精密机械加工控制器 JMDM-... -
单片机与DSP中的什么是单片机,单片机开发有哪些技巧巧
2020-10-21 23:41:09单片机是一种集成在电路 芯片,是采用超大规模集成电路 技术把具有数据处理能力的中央处理器CPU随机存储RAM、只读存储器ROM 、多种I/O口和中断系统、定时器/计时器 等功能(可能还包括显示驱动电路、脉宽调制 电路... -
74HC595多个级连驱动多位数码管.7z
2020-10-12 17:53:168个74h595级连,驱动数码管显示,利用定时器进行动态显示。 在keil5下的c51工程,可以移植到别的单片机上 -
STM32驱动直流电机的程序与电路设计(IR2110S自举电路+H桥+高级定时器和死区PWM)
2018-08-26 14:23:37本文介绍如何使用STM32F103单片机,通过官方固件库,设置高级定时器TIM1输出嵌入死区的互补PWM,来驱动直流电机的程序设计与电路设计。硬件电路采用IR2110S芯片作为mos管的驱动,驱动IRF840组成的H桥。IR2110S芯片... -
单片机与DSP中的单片机控制继电器原理
2020-10-16 01:28:47驱动电流在mA级以下.而要把它用于一些大功率场合,比如控制电动机,显然是不行的.所以,就要有一个环节来衔接,这个环节就是所谓的"功率驱动".继电器驱动就是一个典型的、简单的功率驱动环节。 首先看看继电器的驱动 ... -
单片机与DSP中的SUNPLUS推出单片机开发评估套件..
2020-12-02 03:17:21凌阳科技(sunplus)推出16位马达驱动控制的工业级单片机——SPMC75系列,针对SPMC75的系统开发,凌阳科技公司推出了相应的变频评估套件。 SPMC75系列单片机是由凌阳科技设计开发的16位微控制器芯片,其内核... -
单片机与DSP中的低功耗单片机的步进电机设计
2020-10-16 04:47:19这里针对电磁干扰较强以及要求低成本应用的场合,采用超强抗干扰、小巧低功耗的工业级STC12C系列单片机,充分利用单片机内部的硬件资源,设计实用的步进电机控制和驱动系统。 1 控制系统总体方案设计 系统功能...
-
程序员必修基础套餐课
-
Python启蒙到架构师的核心技术精讲课程
-
【MyBatis】执行原理(一):创建会话工厂(SqlSessionFactory) 源码分析
-
MyRichtextProject.7z
-
鸿蒙系统Harmonyos源码架构分析-第1期第2课
-
深究字符编码的奥秘,与乱码说再见
-
风扇空调清洁剂杀菌剂详情页模板.zip
-
access应用的3个开发实例
-
2019年下半年 信息系统运行管理员 上午试卷 综合知识 软考真题【含答案和答案解析】
-
在线拍卖系统后台,主界面&布局,逻辑
-
2021-02-26
-
分享一个自己做的简易敏捷开发管理工具——AgileLite
-
java NIO之SelectionKey
-
MySQL NDB Cluster 负载均衡和高可用集群
-
django-rest-api的重量-源码
-
Windows系统管理
-
DHCP 动态主机配置服务(在Linux环境下,配置单网段或跨网段提)
-
工程制图 AutoCAD 2012 从二维到三维
-
你不是一个人在战斗-软件项目团队模型
-
Android手机开发(三)