最近经理通知要做项目了,让我选型一个LCD开始试着做下。这是我用仿真实现的一个smt32的硬件SPI1来驱动的ST7735R,难度挺小的,因为大部分的代码LCD的厂商已经给我们提供了,我们主要修改成硬件SPI来驱动就好了。 此次仿真上面有2个问题,不知道是代码的问题还是仿真图上的问题。第一个问题是仿真运行时有时会出通信数据传输问题,导致指令越界报警,这个可能是SPI不稳定导致的;第二个问题是在改用SPI2或者SPI3来驱动没有任何反应,猜测是代码时钟没开对或者仿真图上面还要加上具体晶振。 代码工程和仿真工程都已压缩打包,可放心下载。。。先贴上仿真实现图: 再贴上部分代码:/**ST7735驱动**/#include "ST7735.h"#include "usart.h" u16 BACK_COLOR, POINT_COLOR; //背景色,画笔色 void WriteCommand_7735(u8 CmdData) //写指令{SPI_LCD_CS_LOW; //片选SPI_LCD_COMMAND_W;//写指令SPI_I2S_SendData(LCD_SPIx,CmdData);while (SPI_I2S_GetFlagStatus(LCD_SPIx, SPI_I2S_FLAG_TXE) == RESET){}SPI_LCD_CS_HIGH;} void WriteDate_7735(u8 Data) //写8位数据{SPI_LCD_CS_LOW; //片选SPI_LCD_DATA_W;//写数据SPI_I2S_SendData(LCD_SPIx,Data);while(SPI_I2S_GetFlagStatus(LCD_SPIx, SPI_I2S_FLAG_TXE) == RESET){} SPI_LCD_CS_HIGH; } void WriteDate16(int data) //写16位数据{WriteDate_7735(data>>8);WriteDate_7735(data);} 字符限制了,贴不了多少,2积分即可下载。。。
标签: stm32 硬件 spi 驱动 tft lcd proteus
上传时间: 2022-04-12
上传用户:
产品型号:VK3603 产品品牌:VINKA/永嘉微电 封装形式:ESOP8 产品年份:新年份 联 系 人:陈锐鸿 Q Q:361 888 5898 联系手机:188 2466 2436(信) 概述: VK3603具有3个触摸按键,可用来检测外部触摸按键上人手的触摸动作。该芯片具有较 高的集成度,仅需极少的外部组件便可实现触摸按键的检测。 提供了3路直接输出功能。芯片内部采用特殊的集成电路,具有高电源电压抑制比,可 减少按键检测错误的发生,此特性保证在不利环境条件的应用中芯片仍具有很高的可靠性。 此触摸芯片具有自动校准功能,低待机电流,抗电压波动等特性,为各种触摸按键+IO 输出的应用提供了一种简单而又有效的实现方法。 特点: • 工作电压 2.4-5.5V • 待机电流7uA/3.3V,14uA/5V • 上电复位功能(POR) • 低压复位功能(LVR) • 触摸输出响应时间: 工作模式 48mS 待机模式160mS • CMOS输出,低电平有效,支持多键 • 有效键最长输出16S • 无触摸4S自动校准 • 专用脚接对地电容调节灵敏度(1-47nF) • 各触摸通道单独接对地小电容微调灵敏度(0-50pF) • 上电0.25S内为稳定时间,禁止触摸 • 封装SOP8-EP(150mil)(4.9mm x 3.9mm PP=1.27mm) 产品型号:VK3601 产品品牌:VINKA/永嘉微电 封装形式:SOT23-6 产品年份:新年份 联 系 人:陈锐鸿 概述: VK3601 是一款单触摸通道带1个逻辑控制输出的电容式触摸芯片。 特点和优势: • 可通过触摸实现各种逻辑功能控制,操作简单、方便实用 • 可在有介质(如玻璃、亚克力、塑料、陶瓷等)隔离保护的情况下实现触摸功能,安全性高。 • 应用电压范围宽,可在 2.4~5.5V 之间任意选择 • 应用电路简单,外围器件少,加工方便,成本低 • 低待机工作电流(没有负载) @VDD=3.3V,典型值 4uA,最大值 8uA。@VDD=5.0V,典型值 8uA,最大值 16Ua • 专用管脚接外部电容(1nF-47nF)调灵敏度 • 抗电源干扰及手机干扰特性好。EFT 可以达到±2KV 以上;近距离、多角度手机干扰情况下, 触摸响应灵敏度及可靠性不受影响。 • 上电后的初始输出状态由上电前 AHLB 的输入状态决定。AHLB 管脚接 VDD(高电平)或者悬空上电,上电后SO 输出高电平;AHLB 管脚接 GND(低电平)上电,上电后SO输出低电平。•按住 TI,对应 SO的输出状态翻转;松开后回复初始状态 • 上电后约为0.25秒的稳定时间,此期间内不要触摸检测点,此时所有功能都被禁止 • 自动校准功能刚上电的4秒内约62.5毫秒刷新一次参考值,若在上电后的4秒内有触摸按键或4秒后仍未触摸按键,则重新校准周期切换时间约为1秒 • 4S无触摸进入待机模式 ————————————————— 标准触控IC-电池供电系列: VKD223EB --- 工作电压/电流:2.0V-5.5V/5uA-3V 感应通道数:1 通讯界面 最长回应时间快速模式60mS,低功耗模式220ms 封装:SOT23-6 VKD223B --- 工作电压/电流:2.0V-5.5V/5uA-3V 感应通道数:1 通讯界面 最长回应时间快速模式60mS,低功耗模式220ms 封装:SOT23-6 VKD233DB --- 工作电压/电流:2.4V-5.5V/2.5uA-3V 1感应按键 封装:SOT23-6 通讯界面:直接输出,锁存(toggle)输出 低功耗模式电流2.5uA-3V VKD233DH ---工作电压/电流:2.4V-5.5V/2.5uA-3V 1感应按键 封装:SOT23-6 通讯界面:直接输出,锁存(toggle)输出 有效键最长时间检测16S VKD233DS --- 工作电压/电流:2.4V-5.5V/2.5uA-3V 1感应按键 封装:DFN6(2*2超小封装) 通讯界面:直接输出,锁存(toggle)输出 低功耗模式电流2.5uA-3V VKD233DR --- 工作电压/电流:2.4V-5.5V/1.5uA-3V 1感应按键 封装:DFN6(2*2超小封装) 通讯界面:直接输出,锁存(toggle)输出 低功耗模式电流1.5uA-3V VKD233DG --- 工作电压/电流:2.4V-5.5V/2.5uA-3V 1感应按键 封装:DFN6(2*2超小封装) 通讯界面:直接输出,锁存(toggle)输出 低功耗模式电流2.5uA-3V VKD233DQ --- 工作电压/电流:2.4V-5.5V/5uA-3V 1感应按键 封装:SOT23-6 通讯界面:直接输出,锁存(toggle)输出 低功耗模式电流5uA-3V VKD233DM --- 工作电压/电流:2.4V-5.5V/5uA-3V 1感应按键 封装:SOT23-6 (开漏输出) 通讯界面:开漏输出,锁存(toggle)输出 低功耗模式电流5uA-3V VKD232C --- 工作电压/电流:2.4V-5.5V/2.5uA-3V 感应通道数:2 封装:SOT23-6 通讯界面:直接输出,低电平有效 固定为多键输出模式,内建稳压电路 MTP触摸IC——VK36N系列抗电源辐射及手机干扰: VK3601L --- 工作电压/电流:2.4V-5.5V/4UA-3V3 感应通道数:1 1对1直接输出 待机电流小,抗电源及手机干扰,可通过CAP调节灵敏 封装:SOT23-6 VK36N1D --- 工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:1 1对1直接输出 触摸积水仍可操作,抗电源及手机干扰,可通过CAP调节灵敏封装:SOT23-6 VK36N2P --- 工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:2 脉冲输出 触摸积水仍可操作,抗电源及手机干扰,可通过CAP调节灵敏封装:SOT23-6 VK3602XS ---工作电压/电流:2.4V-5.5V/60UA-3V 感应通道数:2 2对2锁存输出 低功耗模式电流8uA-3V,抗电源辐射干扰,宽供电电压 封装:SOP8 VK3602K --- 工作电压/电流:2.4V-5.5V/60UA-3V 感应通道数:2 2对2直接输出 低功耗模式电流8uA-3V,抗电源辐射干扰,宽供电电压 封装:SOP8 VK36N2D --- 工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:2 1对1直接输出 触摸积水仍可操作,抗电源及手机干扰,可通过CAP调节灵敏封装:SOP8 VK36N3BT ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:3 BCD码锁存输出 触摸积水仍可操作,抗电源及手机干扰,可通过CAP调节灵敏 封装:SOP8 VK36N3BD ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:3 BCD码直接输出 触摸积水仍可操作,抗电源及手机干扰,可通过CAP调节灵敏 封装:SOP8 VK36N3BO ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:3 BCD码开漏输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP8/DFN8(超小超薄体积) VK36N3D --- 工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:3 1对1直接输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N4B ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:4 BCD输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N4I---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:4 I2C输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N5D ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:5 1对1直接输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N5B ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:5 BCD输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N5I ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:5 I2C输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N6D --- 工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:6 1对1直接输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N6B ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:6 BCD输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N6I ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:6 I2C输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N7B ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:7 BCD输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N7I ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:7 I2C输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N8B ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:8 BCD输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N8I ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:8 I2C输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N9I ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:9 I2C输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N10I ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:10 I2C输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) 1-8点高灵敏度液体水位检测IC——VK36W系列 VK36W1D ---工作电压/电流:2.2V-5.5V/10UA-3V3 1对1直接输出 水位检测通道:1 可用于不同壁厚和不同水质水位检测,抗电源/手机干扰封装:SOT23-6 备注:1. 开漏输出低电平有效 2、适合需要抗干扰性好的应用 VK36W2D ---工作电压/电流:2.2V-5.5V/10UA-3V3 1对1直接输出 水位检测通道:2 可用于不同壁厚和不同水质水位检测,抗电源/手机干扰封装:SOP8 备注:1. 1对1直接输出 2、输出模式/输出电平可通过IO选择 VK36W4D ---工作电压/电流:2.2V-5.5V/10UA-3V3 1对1直接输出 水位检测通道:4 可用于不同壁厚和不同水质水位检测,抗电源/手机干扰封装:SOP16/DFN16 备注:1. 1对1直接输出 2、输出模式/输出电平可通过IO选择 VK36W6D ---工作电压/电流:2.2V-5.5V/10UA-3V3 1对1直接输出 水位检测通道:6 可用于不同壁厚和不同水质水位检测,抗电源/手机干扰封装:SOP16/DFN16 备注:1. 1对1直接输出 2、输出模式/输出电平可通过IO选择 VK36W8I ---工作电压/电流:2.2V-5.5V/10UA-3V3 I2C输出 水位检测通道:8 可用于不同壁厚和不同水质水位检测,抗电源/手机干扰封装:SOP16/DFN16 备注:1. IIC+INT输出 2、输出模式/输出电平可通过IO选择 KPP878
标签: 3603 VK 脚位 电源供电 电子秤 触摸检测 芯片
上传时间: 2022-04-14
上传用户:shubashushi66
反激式开关电源变压器设计的详细步骤85W反激变压器设计的详细步骤 1. 确定电源规格. 1).输入电压范围Vin=90—265Vac; 2).输出电压/负载电流:Vout1=42V/2A, Pout=84W 3).转换的效率=0.80 Pin=84/0.8=105W 2. 工作频率,匝比, 最低输入电压和最大占空比确定. Vmos*0.8>Vinmax+n(Vo+Vf)600*0.8>373+n(42+1)得n<2.5Vd*0.8>Vinmax/n+Vo400*0.8>373/n+42得n>1.34 所以n取1.6最低输入电压Vinmin=√[(Vacmin√2)* (Vacmin√2)-2Pin(T/2-tc)/Cin=(90√2*90√2-2*105*(20/2-3)/0.00015=80V取:工作频率fosc=60KHz, 最大占空比Dmax=n(Vo+Vf)/[n(Vo+Vf)+Vinmin]= 1.6(42+1)/[1.6(42+1)+80]=0.45 Ton(max)=1/f*Dmax=0.45/60000=7.5us 3. 变压器初级峰值电流的计算. Iin-avg=1/3Pin/Vinmin=1/3*105/80=0.4AΔIp1=2Iin-avg/D=2*0.4/0.45=1.78AIpk1=Pout/?/Vinmin*D+ΔIp1=84/0.8/80/0.45=2.79A 4. 变压器初级电感量的计算. 由式子Vdc=Lp*dip/dt,得: Lp= Vinmin*Ton(max)/ΔIp1 =80*0.0000075/1.78 =337uH 取Lp=337 uH 5.变压器铁芯的选择. 根据式子Aw*Ae=Pt*1000000/[2*ko*kc*fosc*Bm*j*?],其中: Pt(标称输出功率)= Pout=84W Ko(窗口的铜填充系数)=0.4 Kc(磁芯填充系数)=1(对于铁氧体), 变压器磁通密度Bm=1500Gs j(电流密度): j=4A/mm2;Aw*Ae=84*1000000/[2*0.4*1*60*103*1500Gs*4*0.80]=0.7cm4 考虑到绕线空间,选择窗口面积大的磁芯,查表: ER40/45铁氧体磁芯的有效截面积Ae=1.51cm2 ER40/45的功率容量乘积为 Ap = 3.7cm4 >0.7cm4 故选择ER40/45铁氧体磁芯. 6.变压器初级匝数 1).由Np=Vinmin*Ton/[Ae*Bm],得: Np=80*7.5*10n-6/[1.52*10n-4*0.15] =26.31 取 Np =27T 7. 变压器次级匝数的计算. Ns1(42v)=Np/n=27/1.6=16.875 取Ns1 = 17T Ns2(15v)=(15+1)* Ns1/(42+1)=6.3T 取Ns2 = 7T
上传时间: 2022-04-15
上传用户:
历时四年,在好评如潮的《你好,放大器》之后,西安交通大学电气工程学院杨建国老师携模电力作《新概念模拟电路》再度归来!一样的风趣幽默,一扫模电的枯燥无趣;一样的生活化语言,深入浅出让深奥的模电简单易懂。不一样主题,更深入详细的阐述和丰富的电路案例,杨教授要将每一个技术主题讲透讲明白。新的模电经典已出,模拟的江湖从此波澜壮阔!
标签: 模拟电路
上传时间: 2022-04-28
上传用户:
STM32 F0系列 MCU 集成库 原理图库 PCB封装库文件CSV text has been written to file : STM32 F0.csvLibrary Component Count : 17Name Description----------------------------------------------------------------------------------------------------STM32F050C4T6A ARM Cortex-M0 32-bit RISC core (48 MHz max), 16kB Flash, 4 kB Internal RAM, 39 High Current I/Os, -40 to +85癈, 48-Pin LQFP, TraySTM32F050C6T6 ARM Cortex-M0 32-bit RISC core (48 MHz max), 32kB Flash, 4 kB Internal RAM, 39 High Current I/Os, -40 to +85癈, 48-Pin LQFP, TraySTM32F050C6T6A ARM Cortex-M0 32-bit RISC core (48 MHz max), 32kB Flash, 4 kB Internal RAM, 39 High Current I/Os, -40 to +85癈, 48-Pin LQFP, TraySTM32F050K4U6A ARM Cortex-M0 32-bit RISC core (48 MHz max), 16kB Flash, 4 kB Internal RAM, 27 High Current I/Os, -40 to +85癈, 32-Pin UFQFPN, TraySTM32F050K6U6A ARM Cortex-M0 32-bit RISC core (48 MHz max), 32kB Flash, 4 kB Internal RAM, 27 High Current I/Os, -40 to +85癈, 32-Pin UFQFPN, TraySTM32F051C4T6 ARM Cortex-M0 32-bit RISC core (48 MHz max), 16kB Flash, 4 kB Internal RAM, 39 High Current I/Os, -40 to +85癈, 48-Pin LQFP, TraySTM32F051C6T6 ARM Cortex-M0 32-bit RISC core (48 MHz max), 32kB Flash, 4 kB Internal RAM, 39 High Current I/Os, -40 to +85癈, 48-Pin LQFP, TraySTM32F051C8T6 ARM Cortex-M0 32-bit RISC core (48 MHz max), 64kB Flash, 8 kB Internal RAM, 39 High Current I/Os, -40 to +85癈, 48-Pin LQFP, TraySTM32F051K4U6 ARM Cortex-M0 32-bit RISC core (48 MHz max), 16kB Flash, 4 kB Internal RAM, 27 High Current I/Os, -40 to +85癈, 32-Pin UFQFPN, TraySTM32F051K6U6 ARM Cortex-M0 32-bit RISC core (48 MHz max), 32kB Flash, 4 kB Internal RAM, 27 High Current I/Os, -40 to +85癈, 32-Pin UFQFPN, TraySTM32F051K8U6 ARM Cortex-M0 32-bit RISC core (48 MHz max), 64kB Flash, 8 kB Internal RAM, 27 High Current I/Os, -40 to +85癈, 32-Pin UFQFPN, TraySTM32F051R4T6 ARM Cortex-M0 32-bit RISC core (48 MHz max), 16kB Flash, 4 kB Internal RAM, 55 High Current I/Os, -40 to +85癈, 64-Pin LQFP, TraySTM32F051R4T6TR ARM Cortex-M0 32-bit RISC core (48 MHz max), 16kB Flash, 4 kB Internal RAM, 55 High Current I/Os, -40 to +85癈, 64-Pin LQFP, Tape and ReelSTM32F051R6T6 ARM Cortex-M0 32-bit RISC core (48 MHz max), 32kB Flash, 4 kB Internal RAM, 55 High Current I/Os, -40 to +85癈, 64-Pin LQFP, TraySTM32F051R8T6 ARM Cortex-M0 32-bit RISC core (48 MHz max), 64kB Flash, 8 kB Internal RAM, 55 High Current I/Os, -40 to +85癈, 64-Pin LQFP, TraySTM32F051R8T7 ARM Cortex-M0 32-bit RISC core (48 MHz max), 64kB Flash, 8 kB Internal RAM, 55 High Current I/Os, -40 to +105癈, 64-Pin LQFP, TraySTM32F051R8TR ARM Cortex-M0 32-bit RISC core (48 MHz max), 64kB Flash, 8 kB Internal RAM, 55 High Current I/Os, -40 to +105癈, 64-Pin LQFP, Tape and Reel
上传时间: 2022-04-30
上传用户:
STM32F103开发板 DHT11温湿度DS18B20 气体MQ-2光敏声控雨滴传感器实验程序**--------------------------------------------------------------------------------------------------------** Created by: FiYu** Created date: 2015-12-12** Version: 1.0** Descriptions: DHT11温湿度传感器实验 **--------------------------------------------------------------------------------------------------------** Modified by: FiYu** Modified date: ** Version: ** Descriptions: ** Rechecked by: **********************************************************************************************************/#include "stm32f10x.h"#include "delay.h"#include "dht11.h"#include "usart.h"DHT11_Data_TypeDef DHT11_Data;/************************************************************************************** * 描 述 : GPIO/USART1初始化配置 * 入 参 : 无 * 返回值 : 无 **************************************************************************************/void GPIO_Configuration(void){ GPIO_InitTypeDef GPIO_InitStructure; /* Enable the GPIO_LED Clock */ RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO , ENABLE); GPIO_DeInit(GPIOB); //将外设GPIOA寄存器重设为缺省值 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出 GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_DeInit(GPIOA); //将外设GPIOA寄存器重设为缺省值 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //推挽输出 GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空输入 GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_SetBits(GPIOB , GPIO_Pin_9); //初始状态,熄灭指示灯LED1}/************************************************************************************** * 描 述 : 串口显示实时温湿度 * 入 参 : 无 * 返回值 : 无 **************************************************************************************/void DHT11_SCAN(void){ if( Read_DHT11(&DHT11_Data)==SUCCESS) { printf("\r\n读取DHT11成功!\r\n\r\n湿度为%d.%d %RH ,温度为 %d.%d℃ \r\n",\ DHT11_Data.humi_int,DHT11_Data.humi_deci,DHT11_Data.temp_int,DHT11_Data.temp_deci); //printf("\r\n 湿度:%d,温度:%d \r\n" ,DHT11_Data.humi_int,DHT11_Data.temp_int); } else { printf("Read DHT11 ERROR!\r\n"); }}/************************************************************************************** * 描 述 : MAIN函数 * 入 参 : 无 * 返回值 : 无 **************************************************************************************/int main(void){ SystemInit(); //设置系统时钟72MHZ GPIO_Configuration(); USART1_Init(); //初始化配置TIM DHT11_GPIO_Config(); // 初始化温湿度传感器PB1引脚初始时为推挽输出 GPIO_ResetBits(GPIOB , GPIO_Pin_9); delay_ms(500); while(1) { GPIO_SetBits(GPIOB , GPIO_Pin_9); DHT11_SCAN(); //实时显示温湿度 delay_ms(1500); } }
上传时间: 2022-05-03
上传用户:得之我幸78
宏晶 STC15F2K60S2开发板配套软件源码 基础例程30例/**********************基于STC15F2K60S2系列单片机C语言编程实现使用如下头文件,不用另外再包含"REG51.H"#include <STC15F2K60S2.h>***********************/#include "STC15F2K60S2.H"//#include "REG51.H" //sfr P4 = 0xC0;#define uint unsigned int #define uchar unsigned char /**********************引脚别名定义***********************/sbit SEL=P4^3; // LED和数码管选择引脚 高:LED有效 低:数码管有效 // SEL连接的单片机引脚必须为带有上拉电阻的引脚 或将其直接连接VCC#define data P2 // 数据输入定义 /**********************函数名称:Delay_1ms功能描述:延时入口参数:unsigned int t 表示要延时t个1ms 出口参数:无备注:通过参数t,控制延时的时间长短***********************/void Delay_1ms(uint t){ uchar j; for(;t>0;t--) for(j=110;j>0;j--) ;}/**********************函数名称:Led_test功能描述:对8个二极管进行测试,依次轮流点亮8个二极管入口参数:无出口参数:无备注: ***********************/void Led_test(){ uchar G_value=0x01; // 给变量赋初值 SEL=1; //高电平LED有效 while(1) { data=G_value; Delay_1ms(10000); G_value=G_value<<1; if(G_value==0x00) { data=G_value; Delay_1ms(10000); G_value=0x01; } }}/***********************主函数************************/void main(){ ///////////////////////////////////////////////// //注意: STC15W4K32S4系列的芯片,上电后所有与PWM相关的IO口均为 // 高阻态,需将这些口设置为准双向口或强推挽模式方可正常使用 //相关IO: P0.6/P0.7/P1.6/P1.7/P2.1/P2.2 // P2.3/P2.7/P3.7/P4.2/P4.4/P4.5 ///////////////////////////////////////////////// P4M1=0x00; P4M0=0x00; P2M0=0xff; P2M1=0x00; //将P2设为推挽 Led_test(); }
标签: STC15F2K60S2
上传时间: 2022-05-03
上传用户:
作为一种全新的探测技术,激光雷达已广泛应用于大气、陆地、海洋探测、空中交会对接、侦察成像、化学试剂探测等领域。与传统雷达技术相比,激光雷达是一种通过发射特定波长的激光,处理并分析回波信号,实现目标探测的技术,具有高测量精度、精细的时间和空间分辨率,以及极大的探测距离等优点,目前已成为一种重要的探测手段。激光雷达探测系统需采用硬件电路实现系统的控制以及回波信号的处理、分析,从而实现目标距离、速度、姿态等参数的测量,因此研制高速、高精度、性能稳定、性价比高、保密性强的处理电路,对提升激光雷达探测系统的整体性能有着十分重要的意义。 激光雷达系统控制及信号处理电路有多种实现方案,传统的MCU实现方案较为普遍,但受线程的带宽限制,且难以提高系统的精度与复杂性;采用 FPGA、ARM或DSP实现信号处理架构,一定程度上提高了系统的带宽与复杂度,但成本较高,功耗较大,且开发周期较长。针对目前激光目标探测系统中,对系统控制复杂度,信号处理实时性,整体性能与功耗等要求,论文提出了一种基于 CPLD与MCU架构的电路改进方案。该方案采用高速并行的现场可编程PLD器件,完成相关电路的控制与回波信号的实时处理、分析;同时选用线程处理优势较强的MCU,实现相关信号的控制与高速串口的收发,完成PC软件终端的通信。 本文结合所提出的基于 CPLD与 MCU架构的硬件电路设计方案,选用了Altera的MAX II CPLD器件EPM240T100C5N,以及宏晶科技公司的增强型单片机STC12LE5A60S2,实现了激光雷达系统控制及信号处理等功能。文中详细介绍了实验系统的设备资源与硬件电路的模块化设计,完成了相关外设的驱动控制,并采用 CPLD与 MCU完成了回波信号的采集、处理与分析,最终通过与所设计PC软件终端的通信,实现与硬件电路板的实时数据上传。 目前板卡在100MHz主频下工作,可完成10kHz激光器的触发,并行实现回波信号的实时处理与分析,以及921600波特率下的高速串口通信。结合激光雷达实验系统,多次进行硬件电路的测试与实验,表明本文设计的激光雷达系统控制及信号处理硬件电路功能正常,性能稳定,且功耗低,保密性强,符合设计的需求,实验证明本文所提出方案的具有一定的可...
上传时间: 2022-05-28
上传用户:xsr1983
#define PI (3.14159265)// 度数表示的角速度*1000#define MDPS (70)// 弧度表示的角速度#define RADPS ((float)MDPS*PI/180000)// 每个查询周期改变的角度#define RADPT (RADPS/(-100))// 平衡的角度范围;+-60度(由于角度计算采用一阶展开,实际值约为46度)#define ANGLE_RANGE_MAX (60*PI/180)#define ANGLE_RANGE_MIN (-60*PI/180)// 全局变量pid_s sPID; // PID控制参数结构体float radian_filted=0; // 滤波后的弧度accelerometer_s acc; // 加速度结构体,包含3维变量gyroscope_s gyr; // 角速度结构体,包含3维变量int speed=0, distance=0; // 小车移动的速度,距离int tick_flag = 0; // 定时中断标志int pwm_speed = 0; // 电机pwm控制的偏置值,两个电机的大小、正负相同,使小车以一定的速度前进int pwm_turn = 0; // 电机pwm控制的差异值,两个电机的大小相同,正负相反,使小车左、右转向float angle_balance = 0; // 小车的平衡角度。由于小车重心的偏移,小车的平衡角度不一定是radian_filted为零的时候
上传时间: 2022-06-01
上传用户:
PID-小车类-手机遥控十分mimi蓝牙小车V2资料全部开源/**************************************************************************函数功能:增量PI控制器入口参数:编码器测量值,目标速度返回 值:电机PWM根据增量式离散PID公式 pwm+=Kp[e(k)-e(k-1)]+Ki*e(k)+Kd[e(k)-2e(k-1)+e(k-2)]e(k)代表本次偏差 e(k-1)代表上一次的偏差 以此类推 pwm代表增量输出在我们的速度控制闭环系统里面,只使用PI控制pwm+=Kp[e(k)-e(k-1)]+Ki*e(k)**************************************************************************/int Speed_Incremental_PI (int Encoder,int Target){ static int Bias,Pwm,Last_bias; Bias=Encoder-Target; //计算偏差 Pwm+=Speed_Kp*(Bias-Last_bias)+Speed_Ki*Bias; //增量式PI控制器if(Pwm>500)Pwm=500;else if(Pwm<-500)Pwm=-500; Last_bias=Bias; //保存上一次偏差 return Pwm; //增量输出}
上传时间: 2022-06-01
上传用户:20125101110