STM32F103開發(fā)板 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); //將外設(shè)GPIOA寄存器重設(shè)為缺省值 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); //將外設(shè)GPIOA寄存器重設(shè)為缺省值 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); //初始狀態(tài),熄滅指示燈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函數(shù) * 入 參 : 無 * 返回值 : 無 **************************************************************************************/int main(void){ SystemInit(); //設(shè)置系統(tǒng)時鐘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開發(fā)板配套軟件源碼 基礎(chǔ)例程30例/**********************基于STC15F2K60S2系列單片機(jī)C語言編程實現(xiàn)使用如下頭文件,不用另外再包含"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和數(shù)碼管選擇引腳 高:LED有效 低:數(shù)碼管有效 // SEL連接的單片機(jī)引腳必須為帶有上拉電阻的引腳 或?qū)⑵渲苯舆B接VCC#define data P2 // 數(shù)據(jù)輸入定義 /**********************函數(shù)名稱:Delay_1ms功能描述:延時入口參數(shù):unsigned int t 表示要延時t個1ms 出口參數(shù):無備注:通過參數(shù)t,控制延時的時間長短***********************/void Delay_1ms(uint t){ uchar j; for(;t>0;t--) for(j=110;j>0;j--) ;}/**********************函數(shù)名稱:Led_test功能描述:對8個二極管進(jìn)行測試,依次輪流點亮8個二極管入口參數(shù):無出口參數(shù):無備注: ***********************/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; } }}/***********************主函數(shù)************************/void main(){ ///////////////////////////////////////////////// //注意: STC15W4K32S4系列的芯片,上電后所有與PWM相關(guān)的IO口均為 // 高阻態(tài),需將這些口設(shè)置為準(zhǔn)雙向口或強推挽模式方可正常使用 //相關(guān)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設(shè)為推挽 Led_test(); }
標(biāo)簽: STC15F2K60S2
上傳時間: 2022-05-03
上傳用戶:
本設(shè)計由數(shù)據(jù)顯示模塊、溫度采集模塊、時間處理模塊和調(diào)整設(shè)置模塊四個模塊組成。系統(tǒng)以AT89S52單片機(jī)為控制器,以串行時鐘日歷芯片DS1302記錄日歷和時間,它可以對年、月、日、時、分、秒進(jìn)行計時,還具有閏年補償?shù)榷喾N功能。溫度采集選用DS18B20芯片,萬年歷采用直觀的數(shù)字顯示,數(shù)據(jù)顯示采用1602A液晶顯示模塊,可以在LCD上同時顯示年、月、日、星期、時、分、秒,還具有時間校準(zhǔn)等功能。此萬年歷具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優(yōu)點,具有廣闊的市場前景。//*******************主函數(shù)**************************//***************************************************void main(){uint i;lcd_init(); //調(diào)用液晶屏初始化子函數(shù)ds1302_init(); //調(diào)用DS1302時鐘的初始化子函數(shù)for(i=0;i<RsBuf_N;i++)RsBuf[i]='0';Uart_init(); //調(diào)用定時計數(shù)器的設(shè)置子函數(shù)while(1) //無限循環(huán)下面的語句:{ keyscan(); //調(diào)用鍵盤掃描子函數(shù)GPS_TIME();//獲取gps時間 }}
上傳時間: 2022-05-07
上傳用戶:
本設(shè)計由數(shù)據(jù)顯示模塊、溫度采集模塊、時間處理模塊和調(diào)整設(shè)置模塊四個模塊組成。系統(tǒng)以AT89S52單片機(jī)為控制器,以串行時鐘日歷芯片DS1302記錄日歷和時間,它可以對年、月、日、時、分、秒進(jìn)行計時,還具有閏年補償?shù)榷喾N功能。溫度采集選用DS18B20芯片,萬年歷采用直觀的數(shù)字顯示,數(shù)據(jù)顯示采用1602A液晶顯示模塊,可以在LCD上同時顯示年、月、日、星期、時、分、秒,還具有時間校準(zhǔn)等功能。此萬年歷具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優(yōu)點,具有廣闊的市場前景。 設(shè)計要求:(1)用4個按鍵實現(xiàn)所有功能,計時準(zhǔn)確。(2)可以設(shè)定鬧鐘功能。(3)有陰歷功能,平年閏年準(zhǔn)確無誤。(4)液晶能顯示年、月、日、星期、時、分、秒、溫度。//*******************主函數(shù)**************************//***************************************************void main(){uint i;lcd_init(); //調(diào)用液晶屏初始化子函數(shù)ds1302_init(); //調(diào)用DS1302時鐘的初始化子函數(shù)for(i=0;i<RsBuf_N;i++)RsBuf[i]='0';Uart_init(); //調(diào)用定時計數(shù)器的設(shè)置子函數(shù)while(1) //無限循環(huán)下面的語句:{ keyscan(); //調(diào)用鍵盤掃描子函數(shù)GPS_TIME(); }}
上傳時間: 2022-05-15
上傳用戶:
用的是沁恒CH552e淘寶買的評估板,USB中斷上傳程序用的是沁恒提供的做了些修改。程序使用2個端點一個,端點1作為普通鍵盤,端點2作為多媒體按鍵,有詳細(xì)注釋多媒體按鍵報告,以下是主函數(shù)內(nèi)容。/****主函數(shù)****/main(){ CfgFsys( ); //CH552時鐘選擇配置 mDelaymS(5); //修改主頻等待內(nèi)部晶振穩(wěn)定,必加 ConfigT0(2); //配置2ms T0中斷 USBDeviceInit(); //USB設(shè)備模式初始化 EA = 1; //允許單片機(jī)中斷 UEP1_T_LEN = 0; //預(yù)使用發(fā)送長度一定要清空 UEP2_T_LEN = 0; //清空端點2發(fā)送長度 FLAG = 0; //清空USB中斷傳輸完成標(biāo)志 Ready = 0; LED_VALID = 1; //給一個默認(rèn)值 P1_DIR_PU &= 0xE0; //在MOD_OC為0時 p1.5 p1.6 P1.7為推挽輸出 P1_MOD_OC = P1_MOD_OC & ~0xE0; //3個口的bit4 = 0 p1.5 p1.6 P1.7設(shè)置為推挽輸出 P1_DIR_PU = P1_DIR_PU | 0xE0; //3個口的bit4 = 1 p1.5 p1.6 P1.7設(shè)置為輸出 key1 = 1; key2 = 1; key3 = 1; while(1) { KeyDrive(); //按鍵驅(qū)動 }}
上傳時間: 2022-05-15
上傳用戶:
隨著現(xiàn)在物流技術(shù)的成熟和目前知識型勞動力的發(fā)展,傳統(tǒng)意義上的倉庫管理與運輸系統(tǒng)由于其庫存統(tǒng)計復(fù)雜繁瑣、運輸效率低下等原因,已經(jīng)漸漸不能適應(yīng)時代的發(fā)展。本課題以學(xué)校實驗室倉庫為背景,設(shè)計一套基于QR二維碼的自動化立體倉庫管理與AGV運輸系統(tǒng),一方面解決目前實驗室倉庫管理的繁瑣性和低效性;另一方面大大降低系統(tǒng)開發(fā)成本,使得該系統(tǒng)能為中小型立體倉庫所使用。 本系統(tǒng)的研究內(nèi)容主要包括二維碼生成器、倉庫管理系統(tǒng)以及AGV運輸系統(tǒng)。二維碼生成器主要用于倉庫管理的前期準(zhǔn)備工作,將需要入庫的詳細(xì)物品信息存儲到二維碼圖片,依據(jù)QR碼的結(jié)構(gòu)特性和編碼流程采用Qt5.3為開發(fā)軟件,設(shè)計一套界面良好、方便錄入和準(zhǔn)確率高的二維碼生成與打印系統(tǒng);倉庫管理系統(tǒng)是整個自動化立體倉庫的核心控制系統(tǒng),負(fù)責(zé)物品的盤點以及出入庫調(diào)度操作。在對實驗室倉庫管理的功能需求深入分析的基礎(chǔ)上,對系統(tǒng)進(jìn)行整體架構(gòu)設(shè)計并對各個關(guān)鍵模塊和數(shù)據(jù)庫進(jìn)行詳細(xì)設(shè)計,采用MySQL數(shù)據(jù)庫以及Qt5.3為軟件開發(fā)系統(tǒng),對系統(tǒng)的功能進(jìn)行實際實現(xiàn);AGV運輸系統(tǒng)是整個系統(tǒng)的執(zhí)行結(jié)構(gòu),采用STC12C5410AD單片機(jī)為主控芯片,利用其AD采集、PWM信號發(fā)生模塊和高速SPI接口,完成了主控板電路、PWM驅(qū)動器、無線通訊和工位檢測模塊的硬件設(shè)計,并利用keil開發(fā)調(diào)試工具,采用模塊化的設(shè)計方式,完成AGV系統(tǒng)軟件設(shè)計。 最后搭建整個系統(tǒng)的實驗平臺,在室內(nèi)鋪設(shè)模擬現(xiàn)場環(huán)境的導(dǎo)引路徑,對各個模塊單獨測試的基礎(chǔ)上進(jìn)行系統(tǒng)整體聯(lián)調(diào)。實驗表明,二維碼生成器準(zhǔn)確率與糾錯能力強,倉庫管理系統(tǒng)基本信息管理、庫存統(tǒng)計和出入庫管理功能正常,AGV接收上位機(jī)調(diào)度指令自動循跡行走與定點停止,整個系統(tǒng)滿足自動化立體倉庫的出入庫調(diào)度和監(jiān)管要求,基于QR碼的自動化管理與AGV運輸系統(tǒng)對中小型自動化立體倉庫的后續(xù)開發(fā)與應(yīng)用有著重要的意義。
標(biāo)簽: AGV控制器
上傳時間: 2022-05-28
上傳用戶:trh505
#include "NUC1xx.h"#include "Hal.h"#include "pwm.h"//wait current PWM cycle done, otherwise there maybe short pulse on FETvoid PWM_Stop(U8 ch){ switch(ch) { case PWM_CHANNEL_A: PWMA->u32CNR1 = 0; PWMA->u32CMR1 = 0; while(PWMA->u32PDR1 != 0); break; case PWM_CHANNEL_B: PWMA->u32CNR2 = 0; PWMA->u32CMR2 = 0; while(PWMA->u32PDR2 != 0); break; case PWM_CHANNEL_C: PWMA->u32CNR3 = 0; PWMA->u32CMR3 = 0; while(PWMA->u32PDR3 != 0); break; default: while(1); } PWMA->u32POE &= ~(1<<ch); PWMA->u32PCR &= ~(1<<(ch*8));}
上傳時間: 2022-06-01
上傳用戶:kingwide
This manual documents the Microcontroller profile of version 7 of the ARM? Architecture, the ARMv7-M architecture profile. For short definitions of all the ARMv7 profiles see About the ARMv7 architecture, and architecture profiles on page A1-20.ARMv7 is documented as a set of architecture profiles. The profiles are defined as follows: ARMv7-A The application profile for systems supporting the ARM and Thumb instruction sets, and requiring virtual address support in the memory management model. ARMv7-R The realtime profile for systems supporting the ARM and Thumb instruction sets, and requiring physical address only support in the memory management model ARMv7-M The microcontroller profile for systems supporting only the Thumb instruction set, and where overall size and deterministic operation for an implementation are more important than absolute performance. While profiles were formally introduced with the ARMv7 development, the A-profile and R-profile have implicitly existed in earlier versions, associated with the Virtual Memory System Architecture (VMSA) and Protected Memory System Architecture (PMSA) respectively.
標(biāo)簽: arm
上傳時間: 2022-06-02
上傳用戶:
采用C代碼編寫的8位LED流水燈程序,附件是用PROTEUS設(shè)計的仿真電路工程,直接可以使用。請用Proteus 8以上版本。下面是驗證好的源代碼,供大家參考學(xué)習(xí):------------------------------------------#include <reg51.h>void main(){LED;t0,t1,t2,t3,t4,t5,t6,t7;LED=P1;P1=0xFF;while(10){P1=0xFE;for(t0=10;t0<25000;t0++){;}P1=0xFD;for(t1=0;t1<25000;t1--) {;}P1=0xFB;for(t2=0;t2<25000;t2++) {;}P1=0xF7;for(t3=0;t3<25000;t3--) {;}P1=0xEF;for(t4=0;t4<25000;t4++) {;}P1=0xDF;for(t5=0;t5<25000;t5--){;}P1=0xBF;for(t6=0;t6<25000;t6++){;}P1=0x7F;for(t7=0;t7<25000;t7++){;}P1=0xBF;for(t6=0;t6<25000;t6++){;}P1=0xDF;for(t5=0;t5<25000;t5++){;}P1=0xEF;for(t4=0;t4<25000;t4++) {;}P1=0xF7;for(t3=0;t3<25000;t3++) {;}P1=0xFB;for(t2=0;t2<25000;t2++) {;}P1=0xFD;for(t1=0;t1<25000;t1++){;}P1=0xFE;}} ----------------------------------------------------
標(biāo)簽: at89c51 單片機(jī) proteus 電路仿真
上傳時間: 2022-06-09
上傳用戶:zhanglei193
筆者詳細(xì)的談?wù)撛S多在整合里會出現(xiàn)的微妙思路,如:如何把計數(shù)器/定時器整合在某個步驟里,從何提升模塊解讀性和擴(kuò)展性。此外,在整合篇還有一個重要的討論,那就是 for,while 和 do ... while 等循環(huán)。這些都是一些順序語言的佼佼者,可是在 Verilog HDL 語言里它們就黯然失色。整合篇所討論的內(nèi)容不單是循環(huán)而已,整合篇的第二個重點是理想時序和物理時序的整合。說實話,筆者自身也認(rèn)為要結(jié)合“兩個時序”是一件苦差事,理想時序是 Verilog的行為,物理時序則是硬件的行為。不過在它們兩者之間又有微妙的 “黏糊點”,只要稍微利用一下這個“黏糊點”我們就可以非常輕松的寫出符合“兩個時序”的模塊,但是前提條件是充足了解“理想時序”。整合篇里還有一個重點,那就是“精密控時”。實現(xiàn)“精密控時”最笨的方法是被動式的設(shè)計方法,亦即一邊仿真,一邊估算時鐘的控制精度。這顯然是非常“傳統(tǒng)”而且“古老”的方法,雖然有效但往往就是最費精神和時間的。相反的,主動式是一種講求在代碼上和想象上實現(xiàn)“精密控時”的設(shè)計方法。主動式的設(shè)計方法是基于“理想時序”“建模技巧”和“仿順序操作”作為后盾的整合技巧。不說筆者吹牛,如果采用主動式的設(shè)計方法驅(qū)動 IIC 和 SDRAM 硬件,任何一段代碼都是如此合情合理。
標(biāo)簽: verilogl
上傳時間: 2022-06-13
上傳用戶:
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1