單片機源程序如下:
#include #include "intrins.h" #define u8 unsigned char #define u16 unsigned int #define uchar unsigned char #define uint unsigned int uchar yushe_wendu=50; //溫度預設值 uchar yushe_yanwu=45; //煙霧預設值 uint wendu; //溫度值全局變量 uchar yanwu; //用于讀取ADC數(shù)據(jù) //運行模式 uchar Mode=0; //=1是設置溫度閥值 =2是設置煙霧閥值 =0是正常監(jiān)控模式 //管腳聲明 sbit Led_Reg =P2^2; //紅燈 sbit Led_Yellow =P2^4; //黃燈 sbit Buzzer =P2^0; //蜂鳴器 sbit Fan =P3^3; // /******************************************************************** * 名稱 : delay_1ms() * 功能 : 延時1ms函數(shù) * 輸入 : q * 輸出 : 無 ***********************************************************************/ void delay_ms(uint q) { uint i,j; for(i=0;i } /*********************************************************************************************************** LCD1602相關函數(shù) ***********************************************************************************************************/ //LCD管腳聲明 (RW引腳實物直接接地,因為本設計只用到液晶的寫操作,RW引腳一直是低電平) sbit LCDRS = P2^7; sbit LCDEN = P2^6; sbit D0 = P0^0; sbit D1 = P0^1; sbit D2 = P0^2; sbit D3 = P0^3; sbit D4 = P0^4; sbit D5 = P0^5; sbit D6 = P0^6; sbit D7 = P0^7; //LCD延時 void LCDdelay(uint z) //該延時大約100us(不精確,液晶操作的延時不要求很精確) { uint x,y; for(x=z;x>0;x--) for(y=10;y>0;y--); } void LCD_WriteData(u8 dat) { if(dat&0x01)D0=1;else D0=0; if(dat&0x02)D1=1;else D1=0; if(dat&0x04)D2=1;else D2=0; if(dat&0x08)D3=1;else D3=0; if(dat&0x10)D4=1;else D4=0; if(dat&0x20)D5=1;else D5=0; if(dat&0x40)D6=1;else D6=0; if(dat&0x80)D7=1;else D7=0; } //寫命令 void write_com(uchar com) { LCDRS=0; LCD_WriteData(com); // DAT=com; LCDdelay(5); LCDEN=1; LCDdelay(5); LCDEN=0; } //寫數(shù)據(jù) void write_data(uchar date) { LCDRS=1; LCD_WriteData(date); // DAT=date; LCDdelay(5); LCDEN=1; LCDdelay(5); LCDEN=0; } /*------------------------------------------------ 選擇寫入位置 ------------------------------------------------*/ void SelectPosition(unsigned char x,unsigned char y) { if (x == 0) { write_com(0x80 + y); //表示第一行 } else { write_com(0xC0 + y); //表示第二行 } } /*------------------------------------------------ 寫入字符串函數(shù) ------------------------------------------------*/ void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) { SelectPosition(x,y) ; while (*s) { write_data( *s); s ++; } } //======================================================================== // 函數(shù): void LCD_Write_Char(u8 x,u8 y,u16 s,u8 l) // 應用: LCD_Write_Char(0,1,366,4) ; // 描述: 在第0行第一個字節(jié)位置顯示366的后4位,顯示結果為 0366 // 參數(shù): x:行,y:列,s:要顯示的字,l:顯示的位數(shù) // 返回: none. // 版本: VER1.0 // 日期: 2013-4-1 // 備注: 最大顯示65535 //======================================================================== void LCD_Write_Char(u8 x,u8 y,u16 s,u8 l) { SelectPosition(x,y) ; if(l>=5) write_data(0x30+s/10000%10); //萬位 if(l>=4) write_data(0x30+s/1000%10); //千位 if(l>=3) write_data(0x30+s/100%10); //百位 if(l>=2) write_data(0x30+s/10%10); //十位 if(l>=1) write_data(0x30+s%10); //個位 } /*1602指令簡介 write_com(0x38);//屏幕初始化 write_com(0x0c);//打開顯示 無光標 無光標閃爍 write_com(0x0d);//打開顯示 陰影閃爍 write_com(0x0d);//打開顯示 陰影閃爍 */ //1602初始化 void Init1602() { uchar i=0; write_com(0x38);//屏幕初始化 write_com(0x0c);//打開顯示 無光標 無光標閃爍 write_com(0x06);//當讀或寫一個字符是指針后一一位 write_com(0x01);//清屏 } void Display_1602(yushe_wendu,yushe_yanwu,c,temp) { //顯示預設溫度 LCD_Write_Char(0,6,yushe_wendu,2) ; //顯示預設煙霧 LCD_Write_Char(0,13,yushe_yanwu,3) ; //時時溫度 LCD_Write_Char(1,6,c/10,2) ; write_data('.'); LCD_Write_Char(1,9,c%10,1) ; //時時煙霧 LCD_Write_Char(1,13,temp,3) ; } /*********************************************************************************************************** ADC0832相關函數(shù) ***********************************************************************************************************/ sbit ADCS =P1^5; //ADC0832 片選 sbit ADCLK =P1^2; //ADC0832 時鐘 sbit ADDI =P1^3; //ADC0832 數(shù)據(jù)輸入 /*因為單片機的管腳是雙向的,且ADC0832的數(shù)據(jù)輸入輸出不同時進行, sbit ADDO =P1^3; //ADC0832 數(shù)據(jù)輸出 /*為節(jié)省單片機引腳,簡化電路所以輸入輸出連接在同一個引腳上 //======================================================================== // 函數(shù): unsigned int Adc0832(unsigned char channel) // 應用: temp=Adc0832(0); // 描述: 讀取0通道的AD值 // 參數(shù): channel:通道0和通道1選擇 // 返回: 選取通道的AD值 // 版本: VER1.0 // 日期: 2015-05-29 // 備注: //======================================================================== for(j=0;j<110;j++);
上一篇:STC15系列單片機ADC函數(shù)庫的20200208優(yōu)化版
下一篇:51單片機自動售水機
推薦閱讀
史海拾趣
在電子產(chǎn)品制造行業(yè),品質是企業(yè)的生命線。EVER-WAY公司一直高度重視品質管理,建立了完善的質量管理體系。公司從原材料采購、生產(chǎn)制造到產(chǎn)品檢驗等各個環(huán)節(jié)都嚴格把關,確保產(chǎn)品質量的穩(wěn)定性和可靠性。同時,公司還加強了對員工的培訓和教育,提高了員工的品質意識和操作技能。這些品質管理的提升不僅保證了公司產(chǎn)品的優(yōu)良品質,也贏得了客戶的信任和好評。
隨著產(chǎn)品質量的不斷提升和市場份額的逐步擴大,Califia Lighting開始積極尋求與國際市場的合作。他們與多個國家和地區(qū)的合作伙伴建立了穩(wěn)定的合作關系,將產(chǎn)品出口到全球各地。同時,公司還參加了多個國際電子照明展會,與全球同行交流學習,進一步提升了公司的國際影響力。
隨著業(yè)務的不斷擴展,F(xiàn)INISAR開始在全球范圍內(nèi)布局。公司在中國、馬來西亞、美國、澳大利亞、以色列、新加坡、印度、韓國等多個國家設立了子公司和研發(fā)中心,形成了全球化的生產(chǎn)和服務網(wǎng)絡。這一戰(zhàn)略布局不僅增強了FINISAR的市場競爭力,還為公司帶來了更多的發(fā)展機遇。特別是在中國市場,F(xiàn)INISAR憑借其先進的技術和優(yōu)質的產(chǎn)品,贏得了眾多知名企業(yè)的青睞,如思科、IBM、華為等。
Defense Supply Center Columbus公司自成立之初,就深知技術創(chuàng)新對于電子行業(yè)的重要性。公司投入大量資源,建立起一支專業(yè)的研發(fā)團隊,專注于研發(fā)先進的軍事電子設備和系統(tǒng)。通過不斷的技術創(chuàng)新,公司成功開發(fā)出了一系列高性能、高可靠性的軍事電子產(chǎn)品,為國防事業(yè)做出了重要貢獻。這些產(chǎn)品的成功推出,不僅提升了公司的市場地位,也為公司贏得了眾多客戶的信賴和好評。
奇美公司自成立以來,始終堅持品質至上的原則。公司注重產(chǎn)品質量和性能的提升,通過引進先進的生產(chǎn)設備和工藝技術,不斷提升產(chǎn)品的品質和競爭力。同時,奇美還建立了完善的質量管理體系,從原材料采購到產(chǎn)品出廠,每一個環(huán)節(jié)都嚴格把控,確保產(chǎn)品的品質達到客戶的要求。這種對品質的執(zhí)著追求,使得奇美的產(chǎn)品在市場上贏得了良好的口碑。
數(shù)據(jù)存儲: 指針型為16位。 浮點型(float double long double)都是32位。 所有32位類型(long float等)的存儲方式都是低位在前,高位在后。 DSP增強的C語法 DSP的C語言規(guī)定:沒有顯式初始化的,仍保持未初始化狀態(tài)。 1. 強制類型轉換的錯誤 ...… 查看全部問答∨ |
個人很看好手機嵌入式方向,經(jīng)過多方研究一定是將來發(fā)展迅速行業(yè)之一。想找這方面工作,但在學校沒學這個方向,學的是web應用。所以想通過培訓快速學成。 特此求一專業(yè)培訓機構,要求如下: 有針對3G嵌入式方向的專業(yè)培訓 培訓出來工作工資在500 ...… 查看全部問答∨ |
1.WINCE下開發(fā)與電腦上的C/S模式開發(fā)是否不同? 2.手機開發(fā)最關鍵是什么?(如注意事項,技術要點) 3.WINCE6.0能訪問WEBSERVICES嗎?WINCD6.0是否內(nèi)置了XML解釋器? 4.WINCE6.0下,用什么方式與服務器通信?與我們C/S,B/S下有區(qū)別嗎? 5.WINC ...… 查看全部問答∨ |
|
最近想學習一下讀寫內(nèi)存和端口的方法,但遇到了幾個問題,希望高手指點一下: 1.2G內(nèi)存,我可以操作的最大內(nèi)存地址是多少? (是不是2048M * 1024K * 1024B * 8 的十六進制,結果是400000000,這個好像不 對 2.為什么有的地址寫進去值之后再 ...… 查看全部問答∨ |
client為windows的PPP協(xié)議棧,在服務器端串口讀出下面的數(shù)據(jù),看起來根本就不是PPP的幀格式,都沒有看到7E碼。 0x43 0x4c 0x49 0x45 0x4e 0x54 0x43 0x4c 0x49 0x45 0x4e 0x54 0x43 0x4c 0x49 0x45 0x4e 0x54 0x43 0x4c 0x49 0x45 0x4e 0x54… 查看全部問答∨ |
dsp新手求賜教:畢業(yè)設計用dsp控制氣動伺服系統(tǒng) 本人是機械專業(yè)的,畢業(yè)設計是氣動機械手的速度控制,想用dsp做控制器,但是本人接觸dsp才一個多月,看了幾本dsp的書看得云里霧里,想請教論壇里的大神,像這種運動控制的算法怎么用c語言編出來(本人c語言學的也不好),能否提供一個模板框架給我 ...… 查看全部問答∨ |
我用ltc1966做取平均值的電路 電路就是數(shù)據(jù)手冊上給的電路 能用 當電壓表測定的時候就是對的值 但是我在后級加了一個滯回比較器 連接后1966輸出的值就固定到1點多伏 這是為什么啊 … 查看全部問答∨ |
設計資源 培訓 開發(fā)板 精華推薦
- 華米科技宣布推自研可穿戴系統(tǒng) 還有新的芯片
- OPPO Reno6 Z將于7月21日推出 搭天璣800U芯片
- 高通驍龍Insiders手機國行價格:9999元
- 有主動降噪功能的諾基亞BH-805耳機在歐洲市場推出
- 三星的Galaxy S22可能采用熱管冷卻解決方案
- 芯盟科技研發(fā)出了超高性能異構AI芯片
- 電子汽車衡的部件組成及未來發(fā)展趨勢
- 精密結構件業(yè)務整合效果顯著,創(chuàng)世紀上半年凈利潤增928.4%
- 智能網(wǎng)聯(lián)本質是“服務化”,汽車服務型網(wǎng)關賦能什么?
- 外媒:印度逐步將華為等中國企業(yè)設備從電信網(wǎng)絡中移走