基于STC89C51單片機(jī)的智能電熱水器的控制器的設(shè)計(jì),要達(dá)到的控制要求有:(1)用LCD1602液晶顯示水溫、設(shè)置上下限和定時(shí)時(shí)間,(2)水溫檢測(cè)顯示范圍為00~99℃,精度為±1℃。(3)溫度預(yù)設(shè)范圍為0~99℃,當(dāng)檢測(cè)溫度低于預(yù)設(shè)溫度時(shí),開始加熱;檢測(cè)溫度高于預(yù)設(shè)溫度時(shí),停止加熱。(4)設(shè)置4個(gè)程序按鍵。分別問設(shè)置按鍵、加鍵、減鍵、確定。(5)可以紅外遙控,通過紅外一體接收探頭接收遙控器信號(hào),執(zhí)行與主板按鍵同等功能。(6)有水位檢測(cè)功能,無水自動(dòng)上水,無水不加熱。//外部中斷解碼程序_外部中斷0Void intersvr1(Void) interrupt 2 using 1{ TR0=1; Tc=TH0*256+TL0;//提取中斷時(shí)間間隔時(shí)長(zhǎng) TH0=0; TL0=0; //定時(shí)中斷重新置零 if((Tc>Imin)&&(Tc<Imax)) { m=0; f=1; return; } //找到啟始碼 if(f==1) { if(Tc>Inum1&&Tc<Inum3) { Im[m/8]=Im[m/8]>>1|0x80; m++; } if(Tc>Inum2&&Tc<Inum1) { Im[m/8]=Im[m/8]>>1; m++; //取碼 } if(m==32) { m=0; f=0; if(Im[2]==~Im[3]) { IrOK=1; TR0=0; } else IrOK=0; //取碼完成后判斷讀碼是否正確 } //準(zhǔn)備讀下一碼 }}
標(biāo)簽: 51單片機(jī) 智能熱水器 控制系統(tǒng)
上傳時(shí)間: 2022-05-14
上傳用戶:
本設(shè)計(jì)由數(shù)據(jù)顯示模塊、溫度采集模塊、時(shí)間處理模塊和調(diào)整設(shè)置模塊四個(gè)模塊組成。系統(tǒng)以AT89S52單片機(jī)為控制器,以串行時(shí)鐘日歷芯片DS1302記錄日歷和時(shí)間,它可以對(duì)年、月、日、時(shí)、分、秒進(jìn)行計(jì)時(shí),還具有閏年補(bǔ)償?shù)榷喾N功能。溫度采集選用DS18B20芯片,萬(wàn)年歷采用直觀的數(shù)字顯示,數(shù)據(jù)顯示采用1602A液晶顯示模塊,可以在LCD上同時(shí)顯示年、月、日、星期、時(shí)、分、秒,還具有時(shí)間校準(zhǔn)等功能。此萬(wàn)年歷具有讀取方便、顯示直觀、功能多樣、電路簡(jiǎn)潔、成本低廉等諸多優(yōu)點(diǎn),具有廣闊的市場(chǎng)前景。 設(shè)計(jì)要求:(1)用4個(gè)按鍵實(shí)現(xiàn)所有功能,計(jì)時(shí)準(zhǔn)確。(2)可以設(shè)定鬧鐘功能。(3)有陰歷功能,平年閏年準(zhǔn)確無誤。(4)液晶能顯示年、月、日、星期、時(shí)、分、秒、溫度。//*******************主函數(shù)**************************//***************************************************Void main(){uint i;lcd_init(); //調(diào)用液晶屏初始化子函數(shù)ds1302_init(); //調(diào)用DS1302時(shí)鐘的初始化子函數(shù)for(i=0;i<RsBuf_N;i++)RsBuf[i]='0';Uart_init(); //調(diào)用定時(shí)計(jì)數(shù)器的設(shè)置子函數(shù)while(1) //無限循環(huán)下面的語(yǔ)句:{ keyscan(); //調(diào)用鍵盤掃描子函數(shù)GPS_TIME(); }}
上傳時(shí)間: 2022-05-15
上傳用戶:
#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));}
上傳時(shí)間: 2022-06-01
上傳用戶:kingwide
其它原創(chuàng)視頻第72講 視頻教程說明及實(shí)戰(zhàn)書籍推薦.avi - 99.51MB第71講 怎樣加密PCB文件.avi - 17.65MB第70講 怎樣生成坐標(biāo)文件.avi - 36.32MB第69講 怎樣利用gerber層檢查視圖.avi - 16.50MB第68講 出光繪文件:三.avi - 75.70MB第67講 出光繪文件:二.avi - 72.89MB第66講 出光繪文件:一.avi - 52.13MB第65講 調(diào)整位號(hào)絲印.avi - 71.91MB第64講 刪除死銅.avi - 17.68MB第63講 怎樣合并銅皮.avi - 40.67MB第62講 Shape Void操作演示.avi - 38.01MB第61講 修改銅皮輪廓及提高銅皮優(yōu)先級(jí).avi - 51.99MB第60講 Shape的層間復(fù)制及其換層.avi - 54.76MB
上傳時(shí)間: 2022-06-05
上傳用戶:
采用C代碼編寫的8位LED流水燈程序,附件是用PROTEUS設(shè)計(jì)的仿真電路工程,直接可以使用。請(qǐng)用Proteus 8以上版本。下面是驗(yàn)證好的源代碼,供大家參考學(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 電路仿真
上傳時(shí)間: 2022-06-09
上傳用戶:zhanglei193
delay.c 文件實(shí)現(xiàn)iic的精準(zhǔn)延遲..如果有其他的精準(zhǔn)延遲程序可以替代.miic.c 文件 實(shí)現(xiàn)模擬iic通信tcs34725.c 文件實(shí)現(xiàn)對(duì)顏色傳感器的通信 通信常用程序如下TCS34725_Init() 為顏色傳感器初始化程序 返回值 true或者false 例 if(TCS34725_Init()==true)TCS34725_GetRawData() 為采集顏色. 返回值 true或者false 例 if(TCS34725_GetRawData()==true) 顏色數(shù)據(jù)儲(chǔ)存在已經(jīng)定義的靜態(tài)變量中.顏色讀取 為 調(diào)用u16 GetRData(Void);u16 GetGData(Void);u16 GetBData(Void);u16 GetCData(Void); 這四個(gè)函數(shù)讀取靜態(tài)變量的數(shù)值并分別返回16位的R,G,B,C值.RGBLEDOFF RGBLEDON 分別是燈光開關(guān).顏色傳感器,采集時(shí)長(zhǎng)設(shè)置在 tcs34725.c 文件中 的Void TCS34725_Setup(Void){ TCS34725_SetIntegrationTime(TCS34725_INTEGRATIONTIME_154MS); TCS34725_SetGain(TCS34725_GAIN_16X);}TCS34725_SetIntegrationTime 是設(shè)置單次采集時(shí)長(zhǎng)TCS34725_SetGain 是設(shè)置多次采集的次數(shù). 這兩個(gè)函數(shù)需要的參數(shù) 選擇在tcs34725.h 中. 自行組合在速度和準(zhǔn)確間取舍.
標(biāo)簽: stm32 驅(qū)動(dòng) tcs34725 顏色傳感器
上傳時(shí)間: 2022-06-11
上傳用戶:XuVshu
/產(chǎn)初始化RTL8019AS,PAGE2寄存器只讀,PAGE3寄存器不是NE2000兼容的,均不用設(shè)置材/使用0x40-0x4b為網(wǎng)卡的發(fā)送緩沖區(qū),共12頁(yè),剛好存儲(chǔ)2個(gè)最大的以太網(wǎng)數(shù)據(jù)包。使用0x4c-0x7f為網(wǎng)卡的接收緩沖區(qū),共52頁(yè),因此PSTART=0x4c,PSTOP=0x80(0x80為停止頁(yè),接收緩沖區(qū)直到Ox7f,不包括0x80),剛開始時(shí),網(wǎng)卡沒有接收到任何數(shù)據(jù)包,因此BNRY設(shè)置為指向第一個(gè)接收緩沖區(qū)的頁(yè)0x4c)*/Void RTL8019lnitO REG00=0×21;/選擇頁(yè)0的寄存器,網(wǎng)卡停止運(yùn)行,因?yàn)檫€沒有初始化REGO1=Ox4c;/寄存器PSTART,設(shè)置接收緩沖區(qū)的起始頁(yè)的地址REG02=0×80;/寄存器PSTOP,設(shè)置接收緩沖區(qū)的結(jié)束頁(yè)的地址REG03=0x4c;//寄存器BNRY,設(shè)置為指向第一個(gè)接收緩沖區(qū)的頁(yè)Ox4c(用作讀指針)REG04=0x40;/寄存器TPSR.發(fā)送起始頁(yè)地址初始化為指向第一個(gè)發(fā)送緩沖區(qū)的頁(yè)REGOx=0xce;/*接收配置寄存器RCR,設(shè)置為僅接收自己地址的數(shù)據(jù)包以及廣播地址和多點(diǎn)播送地址數(shù)據(jù)包,小于64字節(jié)的包丟棄,校驗(yàn)錯(cuò)的數(shù)據(jù)包不接收材REG0d=0xe0;/發(fā)送配置寄存器TCR,設(shè)置為啟用crc自動(dòng)生成和校驗(yàn),正常模式工作REG0e=0xc8;/*數(shù)據(jù)配置寄存器DCR,設(shè)置為使用FIFO緩存,普通模式,8位數(shù)據(jù)傳輸,字節(jié)順序?yàn)楦呶蛔止?jié)在前,低位字節(jié)在后*制REGOf=0x00;/中斷屏蔽資存器IMR,設(shè)置為屏蔽所有中斷SelectPage(l);/選擇頁(yè)l的寄存器REG07-0x4d;/寄存器CURR.設(shè)置為指向當(dāng)前正在寫的頁(yè)的下一頁(yè)(用作寫指針)
上傳時(shí)間: 2022-06-24
上傳用戶:
基于單片機(jī)的密碼鎖設(shè)計(jì),內(nèi)含工程文件和源碼文件以及電路圖#include "config.h" Void main(){ LCD_Initial(); //lcd初始化 init_sys(); //硬件系統(tǒng)初始化 setpsw(); //密碼設(shè)置 while(1) { time=3; //限定嘗試3次 while(1) { inputpsw(); //輸入密碼 checkpsw(); //密碼驗(yàn)證 checksuper(); //驗(yàn)證是否是超級(jí)密碼 if(error_flag==0) {right();break;} else if(time>1) error(); //允許2次嘗試錯(cuò)誤 else {lock();break;} //3次錯(cuò)誤,系統(tǒng)鎖定 } }}
上傳時(shí)間: 2022-07-17
上傳用戶:默默
本源代碼是基于STM32F4xx硬件平臺(tái)設(shè)計(jì)的貪吃蛇小游戲,主要難點(diǎn)在:隨機(jī)點(diǎn)產(chǎn)生、貪吃蛇轉(zhuǎn)向、貪吃蛇貪吃點(diǎn);本部分主要接收產(chǎn)生隨機(jī)點(diǎn),產(chǎn)生隨機(jī)點(diǎn)需要注意兩個(gè)方面:1、隨機(jī)點(diǎn)在有效的范圍內(nèi);2、貪吃點(diǎn)與貪吃蛇不重合。產(chǎn)生隨機(jī)點(diǎn)主要有兩個(gè)函數(shù),分別如下://隨機(jī)數(shù)產(chǎn)生任務(wù)Void rng_chansheng(Void *p_arg){OS_ERR err;while(1){OSSemPend(&RNG_SEM,0,OS_OPT_PEND_BLOCKING,0,&err);zou.x = RNG_Get_RandomRange(0,50)*8 + 40;zou.y = RNG_Get_RandomRange(0,50)*8 + 260;lcd_fangkuan(zou.x,zou.y,zou.x+SHE_FAANGKUAN_SIZE,zou.y+SHE_FAANGKUAN_SIZE);OSTimeDlyHMSM(0,0,0,500,OS_OPT_TIME_HMSM_STRICT,&err); //延時(shí)500ms}}//往下方向畫一個(gè)實(shí)心的正方形,代表貪食蛇的一段Void lcd_fangkuan(u16 x1,u16 y1,u16 x2 ,u16 y2){u16 i,j;u16 xx,yy;if(((x2 - x1) != SHE_FAANGKUAN_SIZE)||((y2 - y1) != SHE_FAANGKUAN_SIZE))return ;if(x1 > x2) {xx = x1;x1 = x2;x2 = xx;}if(y1 > y2){yy = y1;y1 = y2;y2 = yy;}if((y1 < 260)|| (y2 > 660)||(x1 < 40)||(x2 > 448)){game_yun_error = 1;LCD_ShowString(150,300,500,24,24,"GAME OVER!!");return ;}for(i=x1; i<x2; i++){for(j=y1; j<y2; j++){LCD_DrawPoint(i,j);}}}
上傳時(shí)間: 2022-08-10
上傳用戶:
#include"main.h"#include"cc1101.h"#include"lcd1602.h"Void main(Void){inti;UCHAR leng=0;//待接收字節(jié)長(zhǎng)度UCHAR TXBuf[8]={0};//8字節(jié),如果需要更長(zhǎng)的數(shù)據(jù)包,請(qǐng)正確設(shè)置UCHAR RXBuf[8]={0};l/接收緩存區(qū)InitLcd1602();WriteAddressLcd1602(1,0);WriteCharForLCD1602("The CC1101 Test!");WriteAddressLcd1602(2,0);WriteCharForLCD1602("Design by XuJiel");Delaynms(6000);ClearLcd16020;Cpulnit();POWER_UP_RESET_CC1100(0;halRfWriteRfSetings();halSpiWriteBurstReg(CCxxx0_PATABLE,PaTabel,8);TxBuf[0]=1;
上傳時(shí)間: 2022-08-10
上傳用戶:ttalli
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1