虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

DELAY

  • STM32F407VGT6精确脉冲控制步进电机源码

    STM32F407VGT6精确脉冲控制步进电机源码,采用STM32F407VGT6芯片,抛弃单脉冲输出方式,直接使用普通PWM输出方式精确输出脉冲个数,每个脉冲都可以改变频率和占空比。PWM+中断,简单粗暴。#include "sys.h"#include "DELAY.h"#include "pwm1.h"#include "pwm2.h"#include "pwm3.h"//注释见pwm1.c文件extern int count2;int main(void){  DELAY_init(168);  //初始化延时函数     TIM2_Init(1,167); TIM3_Init(1,167); TIM5_Init(1,167); // DELAY_ms(1000); TIM2_OUTPUT(); TIM3_OUTPUT(); TIM5_OUTPUT(); while(1) { //TIM2每次输出完10个脉冲后间隔100ms再次输出 if(count2 >= 10){ DELAY_ms(100); TIM2_OUTPUT(); } }

    标签: stm32f407vgt6 脉冲控制 步进电机

    上传时间: 2021-10-26

    上传用户:xsr1983

  • 矩阵式键盘

    include<reg52.h> #define uint unsigned int #define uchar unsigned char uint temp,aa,wang,qian,bai,shi,ge; sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void display( uint wang,uint qian,uint bai,uint shi,uint ge); void DELAY(uint z); void init(); void main() { init();//初始化子程序 while(1) { if(aa==20)   { aa=0; temp++; if(temp==99999)    { temp=0;    } wang=temp/10000; qian=(temp-wang*10000)/1000; bai=(temp-wang*10000-qian*1000)/100; shi=(temp-wang*10000-qian*1000-bai*100)/10; ge=temp%10;   } display(wang,qian, bai,shi,ge); } }   void DELAY(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }   void display(uint wang,uint qian,uint bai,uint shi,uint ge) {         dula=1; P0=table[wang]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; DELAY(1);   dula=1; P0=table[qian]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; DELAY(1);           dula=1; P0=table[bai]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; DELAY(1);   dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; DELAY(1);   dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xef; wela=0; DELAY(1); }   void init() { wela=0; dula=0; temp=0; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; }   void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa++; } include<reg52.h> #define uint unsigned int #define uchar unsigned char uint temp,aa,wang,qian,bai,shi,ge; sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void display( uint wang,uint qian,uint bai,uint shi,uint ge); void DELAY(uint z); void init(); void main() { init();//初始化子程序 while(1) { if(aa==20)   { aa=0; temp++; if(temp==99999)    { temp=0;    } wang=temp/10000; qian=(temp-wang*10000)/1000; bai=(temp-wang*10000-qian*1000)/100; shi=(temp-wang*10000-qian*1000-bai*100)/10; ge=temp%10;   } display(wang,qian, bai,shi,ge); } }   void DELAY(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }   void display(uint wang,uint qian,uint bai,uint shi,uint ge) {         dula=1; P0=table[wang]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; DELAY(1);   dula=1; P0=table[qian]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; DELAY(1);           dula=1; P0=table[bai]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; DELAY(1);   dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; DELAY(1);   dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xef; wela=0; DELAY(1); }   void init() { wela=0; dula=0; temp=0; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; }   void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa++; } include<reg52.h> #define uint unsigned int #define uchar unsigned char uint temp,aa,wang,qian,bai,shi,ge; sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void display( uint wang,uint qian,uint bai,uint shi,uint ge); void DELAY(uint z); void init(); void main() { init();//初始化子程序 while(1) { if(aa==20)   { aa=0; temp++; if(temp==99999)    { temp=0;    } wang=temp/10000; qian=(temp-wang*10000)/1000; bai=(temp-wang*10000-qian*1000)/100; shi=(temp-wang*10000-qian*1000-bai*100)/10; ge=temp%10;   } display(wang,qian, bai,shi,ge); } }   void DELAY(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }   void display(uint wang,uint qian,uint bai,uint shi,uint ge) {         dula=1; P0=table[wang]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; DELAY(1);   dula=1; P0=table[qian]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; DELAY(1);           dula=1; P0=table[bai]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; DELAY(1);   dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; DELAY(1);   dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xef; wela=0; DELAY(1); }   void init() { wela=0; dula=0; temp=0; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; }   void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa++; }

    标签: 矩阵式键盘

    上传时间: 2021-12-18

    上传用户:2590813506

  • PW3130_2.0.pdf规格书下载

    The PW3130 series product is a high integration solution for lithium-lion/polymer batteryprotection.PW3130 contains advanced power MOSFET, high-accuracy voltage detection circuits andDELAY circuits. PW3130 is put into an ultra-small SOT23-5 package and only one external componentmakes it an ideal solution in limited space of battery pack. PW3130 has all the protection functionsrequired in the battery application including overcharging, overdischarging, overcurrent and loadshort circuiting protection etc. The accurate overcharging detection voltage ensures safe and fullutilization charging.The low standby current drains little current from the cell while in storage. Thedevice is not only targeted for digital cellular phones, but also for any other Li-Ion and Li-Polybattery-powered information appliances requiring long-term battery life

    标签: pw3130

    上传时间: 2022-02-11

    上传用户:fliang

  • 电子书- 十天学会单片机实例100.pdf

    电子书-十天学会单片机实例100.pdf//实例 4:用单片机控制一个灯闪烁:认识单片机的工作频率 #include<reg51.h> //包含单片机寄存器的头文件 /**************************************** 函数功能:延时一段时间 *****************************************/ void DELAY(void) //两个 void 意思分别为无需返回值,没有参数传递 { unsigned int i; //定义无符号整数,最大取值范围 65535 for(i=0;i<20000;i++) //做 20000 次空循环 ; //什么也不做,等待一个机器周期 } /******************************************************* 函数功能:主函数 (C 语言规定必须有也只能有 1 个主函数) ********************************************************/ void main(void) { while(1) //无限循环 { P1=0xfe; //P1=1111 1110B, P1.0 输出低电平 DELAY(); //延时一段时间 P1=0xff; //P1=1111 1111B, P1.0 输出高电平 www.91

    标签: 单片机

    上传时间: 2022-03-19

    上传用户:kingwide

  • 史上最全的FreeRTOS资料

    参考 FreeRTOs,orq怎样工作小节获取多任务的基本概念任务和联合程序文档提供了怎样判断何时适合以及何时不适合使用联合程序的方法,下面是简单的总结。注意一个系统可以只使用任务、或者只使用联合程序、或混合使用-但是任务和联合程序使用不同的API函数,因此一个队列(或者信号)不能用于从任务传递数据到联合程序,反之亦然。任务"的特性FreeRTOS低于V4.0.0.0的版本只允许实时系统的结构以一组任务的方式组成,这是RTOS调度的传统模式。简评 In brief:一个使用RTos的实时应用系统可以由一组独立的任务组成,每个任务执行它自己的内容而不依赖于其他任务或者调度器。在任何时候只有个任务可以被执行,调度器负责决定哪个任务应当被执行。调度器反复启动和停止任务(切换任务),因为个任务不清楚调度器的活动,所以在任务切换时保证处理器内容不变(寄存器值、堆栈等)就是实时内核调度器的工作。要做到这点每个任务都需要使用自己的堆栈,当任务切换时运行的参数保存到堆栈中任务再次运行时就可以从堆栈中恢复参数。参考 FreeRTOs怎样工作小节获得更多内容。就绪的任务是那些可以执行(没有被阻塞或暂停),但是因为其他相同或更高优先级任务正在运行造成还没有运行的任务。阻塞当一个任务等待临时事件或外部事件时它就是处于阻塞状态。例如,任务调用 VAsk DELAY(),它将被阻塞(置为阻塞状态)直到超过延时时间个临时事件。任务也可以阻塞等待队列和信号事件。阻塞状态的任务般有一个超时时间,超时后任务将解锁。阻塞的任务不会参与调度。

    标签: freertos

    上传时间: 2022-03-19

    上传用户:kingwide

  • arduino电子秤程序

    HX711_1Kg#include "HX711.h"float Weight = 0;void setup(){ Init_Hx711(); //初始化HX711模块连接的IO设置 Serial.begin(9600); Serial.print("Welcome to use!\n"); DELAY(3000); Get_Maopi(); //获取毛皮}void loop(){ Weight = Get_Weight(); //计算放在传感器上的重物重量 Serial.print(float(Weight/1000),3); //串口显示重量 Serial.print(" kg\n"); //显示单位 Serial.print("\n"); //显示单位 DELAY(1000); //延时1s}

    标签: arduino 电子秤

    上传时间: 2022-03-20

    上传用户:

  • STM32F103开发板 DHT11温湿度DS18B20 气体MQ-2光敏声控雨滴传感器实验程序

    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); } }

    标签: stm32f103 传感器

    上传时间: 2022-05-03

    上传用户:得之我幸78

  • 基于TMS320F28335的超声波流量计硬件原理图+软件源码

    基于TMS320F28335的超声波流量计硬件原理图+软件源码本文以TMS320F28335 处理器为核心,设计一种用于管道流量测量的超声波流量计。系统硬件由核心板,超声波发射和接收电路,切换电路,超声换能器,基于ADS805 的高速信号采集电路,人机交互以及电源等模块构成。采用时差法进行管道流量测量,时差测量采用SCOT 加权的广义互相关时延估计算法。本论文设计的超声波流量计具有测量速度快、准确性好、成本低等优点。关键字:C2000,超声波,流量,广义互相关算法AbstractA kind of ultrasonic flowmeter using for the pipe flow measurement is designed based onTMS320F28335 in this paper. The system hardware consists of the following parts: the core board,ultrasonic signal transmitter and receiver circuits, switch circuit, ultrasonic transducer, signalacquisition circuit based on ADS805, human-computer interaction module and power supplymodule, etc. The system use the method of time difference for pipeline flow measurement and thetime difference is calculated by the time-DELAY algorithm of SCOT weighted generalizedcross-correlation. The ultrasonic flowmeter has the features of high testing speed, high precisionand low cost, etc.Keywords: C2000,Ultrasonic, Flow, Generalized Cross-Correlation Algorithm

    标签: tms320f28335 超声波流量计

    上传时间: 2022-05-06

    上传用户:

  • stm32驱动tcs34725颜色传感器

    DELAY.c 文件实现iic的精准延迟..如果有其他的精准延迟程序可以替代.miic.c 文件 实现模拟iic通信tcs34725.c 文件实现对颜色传感器的通信 通信常用程序如下TCS34725_Init() 为颜色传感器初始化程序 返回值 true或者false 例 if(TCS34725_Init()==true)TCS34725_GetRawData() 为采集颜色. 返回值 true或者false 例 if(TCS34725_GetRawData()==true) 颜色数据储存在已经定义的静态变量中.颜色读取 为 调用u16 GetRData(void);u16 GetGData(void);u16 GetBData(void);u16 GetCData(void); 这四个函数读取静态变量的数值并分别返回16位的R,G,B,C值.RGBLEDOFF   RGBLEDON 分别是灯光开关.颜色传感器,采集时长设置在 tcs34725.c 文件中 的void TCS34725_Setup(void){    TCS34725_SetIntegrationTime(TCS34725_INTEGRATIONTIME_154MS);    TCS34725_SetGain(TCS34725_GAIN_16X);}TCS34725_SetIntegrationTime 是设置单次采集时长TCS34725_SetGain   是设置多次采集的次数. 这两个函数需要的参数 选择在tcs34725.h 中. 自行组合在速度和准确间取舍.

    标签: stm32 驱动 tcs34725 颜色传感器

    上传时间: 2022-06-11

    上传用户:XuVshu

  • 应广单片机 MINI-C编程指南.pdf

    应广单片机 MINI-C编程指南.Mini-c总结文档一、缺点:(一)函数不能带参数.解决方法:通过A或全局变量进行参数传递;(二)不能使用for循环解决方法:用while循环代替for循环.(三)数组和指针功能弱化解决方法:① 使用rom查表② 使用ram查表(四)不支持全局变量定义同时进行初始化解决方法:        在初始化的时候记得对全局变量进行初始化. (五)Bit变量只支持写入0,或1,不支持直接bit变量取反解决方法 :if(uBitFlag){    uBitFlag=0;}Else{    uBitFlag=1; } 二、优点:(一)函数不带参数,可以节省堆栈空间(二)支持ROM查表(三).DELAY时间非常准确,无需手工计算(四)支持bit变量,节省ram空间,支持字,字节拆分.(五)烧录支持滚动码写入.(六)端口配置可以使用脚本(七) 代码自动生成

    标签: 单片机

    上传时间: 2022-06-17

    上传用户: