freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

電子電路]基于at89s52的智能電風(fēng)扇控制系統(tǒng)設(shè)計-閱讀頁

2024-12-06 17:44本頁面
  

【正文】 平,當某個發(fā)光二極管的陰極為低電平時,即被點亮,相應(yīng)的段被顯示。 16 圖 211 共陰極數(shù)碼管結(jié)構(gòu) 由 N 個數(shù)碼管 按一定的方式 連在一 11 起即可形成一個 N 位的數(shù)碼管, 也分為共陽極和共陰極, 其顯示方式可分為靜態(tài)顯示和動態(tài)顯示。 圖 212 4位 數(shù)碼管結(jié)構(gòu) N位數(shù)碼管工作于靜態(tài)顯示方式時, 各個數(shù)碼管的 共陰極(或共陽極)連在一起并接地(或接 +5V),各個 段選端分別連接不同的 8 位 I/O 口或經(jīng)不同的鎖存器與 I/O 口相連。 這種顯示方式編程容易,但占用 I/O 口或鎖存器較多,隨著顯示位數(shù)的增多,資源浪費將會更嚴重。 N位 數(shù)碼管動態(tài)顯示時,其所有的段選端都連在一起,有 1個 8位 I/O 口控制,形成段碼線的多路復(fù)用,而各位的 共陽極(或共陰極)也即 位選端則由不同 的 I/O線控制,形成各位的分時選通。若要各位都夠同時顯示出與本位相應(yīng)的顯示字符,就必須采用動態(tài)17 顯示,即在某一時刻,只讓某一位的位選端處于選通狀態(tài),而其他各位都不選通,同時段碼線上輸出相應(yīng)位要顯示的字符的段碼;在下一時刻只讓下一位的位選端處于選通狀態(tài),在段碼線上再輸出其要顯示的字符的段碼。這種顯示方式節(jié)省硬件資源,但占用 CPU 時間較多,適于顯示位數(shù)較多的情況。設(shè)計電路 如圖 213 所示 。 其中,當某位輸出為低電平時對應(yīng)的與之連接那個 9015 導(dǎo)通,當單片機 輸出 段選碼 時 ,對應(yīng)的那位 數(shù)碼管 就會顯示相應(yīng)的段碼的內(nèi)容,當 ~ ,并且 P0 口在不同 的 位選中時輸出段碼時, 4 位數(shù)碼管 就會輪流顯示不同的值,如果掃描時間足夠的短,那么 利18 用 其余暉和 我們的視覺暫留效應(yīng),就會看到 4位數(shù)碼管 同時在發(fā)亮而且在顯示不同的內(nèi)容。 獨立式鍵盤就是 各按鍵相互獨立,每個按鍵各接一根輸入線,通過檢測輸入線上電平的狀態(tài)就可以很容易地判斷出哪個鍵被按下。 故此種鍵盤適用于按鍵較少或操作速度較高的場合。最常用的 4*4 的行、列結(jié)構(gòu)的鍵盤即可提供 16 個按鍵,與獨立式鍵盤相比可節(jié)約大量 I/O 口線。 獨立式鍵盤的設(shè)計 由于本系統(tǒng)為智能化設(shè)計,需要的按鍵數(shù)目很少,所以系統(tǒng)采用簡單的獨立式鍵盤,與單片機的 P1 口相連, 電路 如圖 214所示 。此外,工作方式、定時時間、計數(shù)值、啟動、中斷請求等都可以由程序設(shè)定。 定時器 0,定時器 1是 16 位加法計數(shù)器,分別由兩個 8 位專用寄存器組成:定時器 0由 TH0 和 TL0 組成,定時器 1由 TH1 和 TL1 組成。定時器 0 或定時器 1 用作計數(shù)器時,對芯片引腳 T0( )或 T1( )上輸入的脈沖計數(shù),每輸入一個脈沖,加法 計數(shù)器加 1;其用作定時器時,對內(nèi)部機器周期脈沖計數(shù),由于機器周期是定值,故計數(shù)值確定時,時間也隨之確定。 二 .定時 器 /計數(shù)器的初始化 由于定時 /計數(shù)器的功能是由軟件編程確定的,所以,一般在使用定時器 /計數(shù)前都要對其進行初始化。 (2)預(yù)置定時或計數(shù)的初值 —— 直接將初值寫入 TH0、 TL0 或 TH TL1 或 TH TL2。設(shè)最大計數(shù)值為 M,則各種工作方式下的 M 值如下: 方式 0: M=213=8192 20 方式 1: M=216=65536 方式 2: M=28=256 方式 3:定時器 0分成兩個 8 位計數(shù)器,所以兩個定時器的 M 值均為 256。 (4)啟動定時 /計數(shù)器工作 —— 將 TR0 或 TR1 置 “1” 。 繼電器控制電路的設(shè)計 本系統(tǒng)中由單片機內(nèi)部定時器 T2 設(shè)置定時時間, 由繼電器做開關(guān)控制電路。繼電器控制電路的設(shè)計如圖 215 所示。其電路設(shè)計如圖 216所示。其電路如圖 217所示。 //定義 18B20 端口 DQ sbit wei1 =P2^4。 sbit wei3 =P2^6。 unsigned char code LEDData1 [ ] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}。 //09帶點數(shù)字 開始 DS18B20初始化 初始化成功 讀一個字節(jié) 寫一個字節(jié) 讀取并顯示程序 結(jié)束 23 unsigned char T。 } /////////////////////////////////////////////////// Init_18B20()//初始化 18B20 { unsigned char x = 0。 //DQ 復(fù)位 Delay(10)。 //單片機將 DQ 拉低 Delay(80)。 //拉高總線 Delay(10)。 //稍做延時后 如果 x=0 則初始化成功 x=1 則初始化失敗 Delay(20)。 unsigned char dat = 0。 i 0。 // 給脈沖信號 dat = 1。 // 給脈沖信號 if(DQ) dat |= 0x80。 } return (dat)。 for (i = 8。 i) { DQ = 0。0x01。 DQ = 1。 } } 24 /////////////////////////////////////////////////// void Read_Display()//讀取并顯 示溫度 { unsigned int a = 0, b = 0, c = 0, t = 0。 Init_18B20()。 // 跳過讀序號列號的操作 WriteOneChar(0x44)。 WriteOneChar(0xCC)。 //讀取溫度寄存器 a = ReadOneChar()。 t = b。 t = t | a。 t = tt * 10 + 。 //保存當前溫度 a = t / 100。 //個位 c = t a * 100 b * 10。 //顯示 C字符 wei1 = 0。 wei1 = 1。 //顯示小數(shù)位 wei2 = 0。 wei2 = 1。 //顯示個位 wei3 = 0。 wei3 = 1。 //顯示十位 wei4 = 0。 wei4 = 1。wei2=1。wei4=1。 } } /////////////////////////////////////////////////// 25 調(diào)速、 測速子程序 程序流程圖 圖 32 調(diào)速、測速模塊程序流程圖 子程序設(shè)計 include //頭文件 /////////////////////////////////////////////////////// //宏定義 define uchar unsigned char define uint unsigned int define ulong unsigned long int define HI_T0 (6553610000)/256 //給定時器 T0 高 8 位賦值,定時 10ms define LO_T0 (6553610000)/256 //給定時器 T0 低 8 位賦值 define HI_T1 (6553610000)/256 //給定時器 T1 高 8 位賦 值 define LO_T1 (6553610000)/256 //給定時器 T1 低 8 位賦值 ////////////////////////////////////////////////////// //位定義 sbit wei1=P2^0。 sbit wei3=P2^2。 sbit wei5=P2^4。 開始 初始化計時器 T0, T1,外部中斷 INT0 啟動定時器 風(fēng)扇轉(zhuǎn)動一圈, INT0產(chǎn)生一次中斷 根據(jù)溫度變化,調(diào)節(jié)定時器初值,以調(diào)節(jié) PWM占空比 10s內(nèi)中斷的次數(shù)乘以 6,即平均轉(zhuǎn)速 顯示轉(zhuǎn)速 PWM控制可控硅導(dǎo)通時間以調(diào)節(jié)有效電壓,使轉(zhuǎn)速變化 結(jié)束 26 sbit K1 = P1^0。 //sbit buzzer=P3^7。 sbit su=P3^6。 //T0 中斷次數(shù), M*10ms 即輸出低定平維持時間 uint N=2。 //定時 10s,用于測取 10s 內(nèi)風(fēng)扇平均速度 ulong V,VV。//共陽極數(shù)碼管 09數(shù)字段碼 uchar code SEG_TAB_1[] = {0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78, 0x00, 0x10}。 //初始化位選 void show(uchar date,uchar wei)。 //速度顯示函數(shù) /////////////////////////////////////////////////////////// void delay(uint x) //延時子函數(shù),延時約 x ms { uint i,j。i0。j0。 } /////////////////////////////////////////////////////////// void EX_int0Init(void) //初始化外部中斷 0 { IT0=0。 //INT0 中斷開 EA=1。 //設(shè)置定時器 0 工作方式 1 TH0=HI_T0。 //低位賦初值 TR0 = 1。 //定時器 0 中斷開 EA = 1。 //設(shè)置定時器 1 工作方式 1 TH1=HI_T1。 //低位賦初值 ET1 = 1。 //總中斷開 } /////////////////////////////////////////////////////////// 27 void main() { EX_int0Init()。 Timer1Init()。 if(K1==0) { M += 2。 } while(!K1)。 //顯示速度 } } //////////////////////////////////////////////////////// void EX_int0(void) interrupt 0 //INT0 中斷服務(wù)程序 { V++。 // static ulong count00。 //高位重裝初值 TL0=LO_T0。 count0++。 if(count00==M_V)//10s 時間到 { count00=0。 V=0。 } if (count0==M) { count0=0。 //啟動定時器 1,輸出高定平 PWM=1。 } } /////////////////////////////////////////////////////// void Timer1(void) interrupt 3 //定時器 1中斷服務(wù)程序 { 28 static uchar count1。 //高位重裝初值 TL0=LO_T0。 count1++。 //TR0=1。 TR1=0。 a=VV/1000。 //速度的百位 c=VV%100/10。 //速度的個位 init_wei()。 delay(5)。 //顯示速度十位 show(c,2)。 init_wei()。 delay(5)。 //顯示速度千位 show(a,4)。 } void init_wei(void) //初始化位選 { wei1=0。wei3=0。wei5=0。 } void show(uchar date,uchar wei)//在哪一個( wei)數(shù)碼管上顯示什么數(shù)據(jù) (date) { P0=SEG_TAB[date]。wei2=0。wei4=0。wei6=0。 case 2:wei1=0。wei3=0。wei5=0。break。wei2=0。wei4=0。wei6=0。 case 4:wei1=0。wei3=0。wei5=0。break。wei2=0。wei4=0。wei6=0。 case 6:wei1=0。wei3=0。wei5=0。brea
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1