该巡线小车智能控制系统主要由以下模块组成,分别是主控模块、巡线模块、电机驱动模块、电源模块及节点任务模块。系统以 STM32 单片机作为控制核心。采用调制激光传感器进行路径信息采集,将实际路径信号转换为电信号传送到单片机进行处理,然后结合 PID 算法以及记忆算法实现路径最优及路径记忆;对于障碍物的检测,可采用光电开关进行检测并灵活避障
上传时间: 2022-06-10
上传用户:zhanglei193
方便大家安装JLINK仿真器驱动,更新JLINK仿真器固件。
上传时间: 2022-07-20
上传用户:
程序为STM32F103VET6驱动CMOS摄像头OV7670的程序。采用AL422B作为FIFO帧缓冲,显示采用3.5寸TFT ILI9481,单片机FSMC方式驱动TFT,非常好用。-
上传时间: 2013-07-06
上传用户:aappkkee
试过可以使用,对自己做JLINK的是很好的选择!!
上传时间: 2013-04-24
上传用户:songnanhua
实现stm32内部ADC的驱动接口,有多个通道可以选择,且本身具有自动校准功能。
上传时间: 2013-04-24
上传用户:qq1604324866
开关在电路中起接通信号或断开信号的作用。最常见的可控开关是继电器,当给驱动继电器的驱动电路加高电平或低电平时,继电器就吸合或释放,其触点接通或断开电路。CMOS模拟开关是一种可控开关,它不象继电器那样可以用在大电流、高电压场合,只适于处理幅度不超过其工作电压、电流较小的模拟或数字信号。 一、常用CMOS模拟开关引脚功能和工作原理 1.四双向模拟开关CD4066 CD4066 的引脚功能如图1所示。每个封装内部有4个独立的模拟开关,每个模拟开关有输入、输出、控制三个端子,其中输入端和输出端可互换。当控制端加高电平时,开关导通;当控制端加低电平时开关截止。模拟开关导通时,导通电阻为几十欧姆;模拟开关截止时,呈现很高的阻抗,可以看成为开路。模拟开关可传输数字信号和模拟信号,可传输的模拟信号的上限频率为40MHz。各开关间的串扰很小,典型值为-50dB。
上传时间: 2013-10-27
上传用户:bibirnovis
关于stm32单片机与上位机串口通讯的论文介绍,可以总体了解一下吧
上传时间: 2014-01-19
上传用户:qw12
ADI16480和16405惯导模块原理图 STM32单片机驱动模块原理图
上传时间: 2013-11-03
上传用户:gy592333
单片机显卡——(VGA控制板)让您的单片机轻易的点亮大尺寸LCD或CRT显示器 VGA控制板——单片机跟电脑一样,也需要显卡才可以外接显示器。这样就需要做一块驱动板,这块驱动板一般称为——VGA控制板。VGA控制板,顾名思义就是驱动具有"15针VGA接口"的显示器或者电视机。接收用户单片机串口发送过来的指令, 完成在显示器或者电视机上绘图的所有操作。有了它,用户单片机就可以驱动8寸至52寸的VGA接口显示器或者电视机。本控制板支持各种单片机、多种PLC通信,支持USB鼠标、USB键盘、SD卡小硬盘。 单片机人机界面组态软件——VGA控制板还需配套一款组态软件,让显示器轻易的显示和监控单片机的各种状态。HMImaker组态软件,专为串口屏和VGA控制板开发的的界面编辑设计软件,具有绘图、按钮、位开关、字符控件、数据监控、实时曲线、动态图片等功能。做到“所见即所得”、“0”代码 快速生成超炫图形界面设计,让开发者做到如“制作PPT”一样容易、快速!HMImaker 组态软件的设计方法跟西门子,PROFACE,威论等名牌厂家的组态软件一样,功能相当。
上传时间: 2013-11-18
上传用户:wendy15
TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。 TLC2543的特点 (1)12位分辩率A/D转换器; (2)在工作温度范围内10μs转换时间; (3)11个模拟输入通道; (4)3路内置自测试方式; (5)采样率为66kbps; (6)线性误差±1LSBmax; (7)有转换结束输出EOC; (8)具有单、双极性输出; (9)可编程的MSB或LSB前导; (10)可编程输出数据长度。 TLC2543的引脚排列及说明 TLC2543有两种封装形式:DB、DW或N封装以及FN封装,这两种封装的引脚排列如图1,引脚说明见表1 TLC2543电路图和程序欣赏 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上传时间: 2013-11-19
上传用户:shen1230