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

正文內(nèi)容

紅外抄表電度表——抄表器(編輯修改稿)

2024-07-27 23:59 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 端 12 D5 Data I/O5 R/W 讀/寫選擇端 13 D6 Data I/O6 E 使能信號(hào) 14 D7 Data I/O7 D0 Data I/O 15 BLA 背光源正極8 D1 Data I/O 16 BLK 背光源負(fù)極圖 211 模擬接線圖15圖 212 讀操作時(shí)序的控制器接口圖163 系統(tǒng)軟件設(shè)計(jì)程序的編寫就要涉及到程序語(yǔ)言的選擇,下面先看看匯編語(yǔ)言和 C 語(yǔ)言的特性,再進(jìn)行語(yǔ)言的選擇。(1)C 語(yǔ)言:C 語(yǔ)言是國(guó)內(nèi)外廣泛使用的計(jì)算機(jī)語(yǔ)言,是計(jì)算機(jī)應(yīng)用人員應(yīng)掌握的一種程序設(shè)計(jì)工具。C 語(yǔ)言功能豐富,表達(dá)能力強(qiáng),使用靈活方便,應(yīng)用面廣,目標(biāo)程序效率高,可移植性好,既具有高級(jí)語(yǔ)言的優(yōu)點(diǎn),又具有低級(jí)語(yǔ)言的許多特點(diǎn)。因此,C 語(yǔ)言特別適合編寫系統(tǒng)軟件。除了這些特點(diǎn)外,C 語(yǔ)言還具有以下優(yōu)越性:在不需要完全了解單片機(jī)系統(tǒng)具體硬件的情況下,也能夠編出符合硬件實(shí)際的專業(yè)水平的程序;以適應(yīng)片上存儲(chǔ)器的大??;中斷服務(wù)程序的現(xiàn)場(chǎng)保護(hù)和恢復(fù),中斷向量表的填寫,是直接與單片機(jī)相關(guān)的,都由 C 編譯器代辦;提供常用的標(biāo)準(zhǔn)函數(shù)庫(kù),以供用戶直接使用; 頭文件中定義宏、說明復(fù)雜數(shù)據(jù)類型和函數(shù)原型,有利于程序的移植和支持單片機(jī)的系列化產(chǎn)品的開發(fā);有嚴(yán)格的句法檢查,錯(cuò)誤很少,可容易地在高級(jí)語(yǔ)言的水平上迅速地被排除掉;可方便地接受多種實(shí)用程序的服務(wù):如片上資源的初始化有專門的實(shí)用程序自動(dòng)生成;再如,有實(shí)時(shí)多任務(wù)操作系統(tǒng)可調(diào)度多道任務(wù),簡(jiǎn)化用戶編程,提高運(yùn)行的安全性等等。(2)匯編語(yǔ)言:匯編語(yǔ)言是計(jì)算機(jī)能提供給用戶的最快而又最有效的語(yǔ)言,也是能夠利用計(jì)算機(jī)所有硬件特性并能直接控制硬件的唯一語(yǔ)言,因而在對(duì)于程序的空間和時(shí)間要求很高的場(chǎng)合,匯編語(yǔ)言是必不可少的,至于對(duì)于很多需要直接控制硬件的應(yīng)用場(chǎng)合,更是非用匯編語(yǔ)言不可。除了這些特性,匯編語(yǔ)言還具有下列特性:① 占用的內(nèi)存單元和 CPU 資源少,能直接對(duì)硬件進(jìn)行控制;② 程序簡(jiǎn)短執(zhí)行速度快;③ 可直接調(diào)用單片機(jī)的全部資源,并可有效地利用單片機(jī)的專有特性;④ 能準(zhǔn)確地掌握指令的執(zhí)行時(shí)間,適用于實(shí)時(shí)控制系統(tǒng)。紅外抄表系統(tǒng)的軟件程序設(shè)計(jì)主要由主程序、發(fā)射程序、顯示程序、接收程序組成。通過對(duì)以上兩種語(yǔ)言的分析,由于 C 語(yǔ)言程序有利于實(shí)現(xiàn)較復(fù)雜的算法,同時(shí)該程序也比較復(fù)雜,要控制多個(gè)部件模塊。為了能簡(jiǎn)單有條理的編輯程序。兩種語(yǔ)言都17有其獨(dú)有的特性,結(jié)合自身的情況,對(duì) C 語(yǔ)言比匯編語(yǔ)言要熟悉,并且應(yīng)用 C 的時(shí)間比匯編長(zhǎng),所以我最終選擇了以 C 語(yǔ)言來編寫系統(tǒng)的程序。如圖 31 所示為紅外抄表系統(tǒng)的整體程序流程圖,系統(tǒng)開始工作時(shí)進(jìn)行初始化操作。由按鍵控制數(shù)據(jù)是否發(fā)送。 圖 31 系統(tǒng)軟件流程圖 38kHz 頻率的產(chǎn)生及發(fā)射程序設(shè)計(jì)38kHz 頻率可以有效防止日光和燈光的干擾,使得通信距離更遠(yuǎn)?,F(xiàn)討論產(chǎn)生38kHz 頻率的兩種方案。方案一:分頻電路產(chǎn)生初始化子程序數(shù)值按鍵掃描數(shù)碼管顯示是運(yùn)行接收程序LCD 顯示后續(xù)處理接收按鍵掃描開始運(yùn)行發(fā)送程序否18圖 32 分頻電路圖如圖 32 所示 455kHz 晶振經(jīng) 12 分頻得到 38kHz。由 455kHz 的晶振 CRY,反相器74HC04 及電阻、電容構(gòu)成的振蕩器產(chǎn)生 455kHz 的方波信號(hào)。經(jīng)脈沖分頻器 74LS92,六分頻成為 的脈沖信號(hào)。再經(jīng)過 D 觸發(fā)器構(gòu)成的 2 分頻/整形電路變成 38kHz的方波信號(hào)。本方案的振蕩器采用了晶振,因晶振頻率十分穩(wěn)定。RC 振蕩器的穩(wěn)定性差,往往由于偏差很大而縮短控制距離。方案二:軟件生成 38kHz 頻率f=38kHz T=1/f 計(jì)算得 T≈ 如圖 35 所示發(fā)射管接在單片機(jī)的 引腳上,所以只要控制單片機(jī) 引腳的高、低電平周期為 。程序如下:for(a=aa。a0。a) out=1。i=7。while(i0)i。out=0。如下程序首先發(fā)送 頻率,再停止發(fā)送 。這兩個(gè)段是為了讓接收模塊識(shí)別防止其他信號(hào)的干擾。接著開始發(fā)送數(shù)據(jù),kHz(40)(發(fā)送時(shí)間為 1ms)后判斷數(shù)據(jù)的最后一位是“1”還是“0” 。如果數(shù)據(jù)是“1”則停止發(fā)送 delayms(93),否則停止發(fā)送 delayms(65)(1ms) 。一個(gè)數(shù)據(jù)為發(fā)送完畢,num=num1 數(shù)據(jù)位右移一位后判斷發(fā)送。如此循環(huán) 8 次數(shù)據(jù)就發(fā)送完畢。發(fā)送完畢指令 kHz(20),后停止發(fā)送。如圖 33 所示發(fā)射和接收波形圖。19 a=2ms b=1ms c=圖 33 發(fā)射接收波形圖khz(116)。delayms(125)。for(num1=8。num10。num1) khz(40)。if(numamp。0x001)delayms(93)。//delay elsedelayms(65)。//delay 1msnum=num1。如圖 34 所示為 38kHz 的載波頻率:低電平 17us、高電平 9us,17+9=26us 比 快一點(diǎn)點(diǎn)。高、低電平時(shí)間不是固定值,只要相加等于 26us 就是發(fā)送 38khz 的頻率。 圖 34 計(jì)算得出的載波頻率 數(shù)據(jù)計(jì)算程序本系統(tǒng)用發(fā)射板的三個(gè)按鍵來設(shè)置需要發(fā)送的數(shù)據(jù),三個(gè)按鍵分別是個(gè)、十、百位控制鍵,數(shù)值計(jì)算規(guī)則如下:每按一個(gè)按鍵對(duì)應(yīng)位加一。利用軟件編程對(duì)各位進(jìn)行相加計(jì)算。每位最大只能按20到 9,當(dāng)超過 9,則返回到 0 并且蜂鳴器響一聲,如此反復(fù)循環(huán)計(jì)算。如個(gè)、十、百位各按一下,則得數(shù)據(jù) 111。計(jì)算規(guī)則十分簡(jiǎn)單,如下程序?yàn)榘傥豢刂疲簁ey1 為百位控制鍵,首先進(jìn)行按鍵掃描,當(dāng)按鍵引腳為低電平時(shí)說明按鍵沒有按下,繼續(xù)等待;當(dāng)引腳為高電平時(shí)說明按鍵已按下,則蜂鳴器響一聲,百位加一。百位計(jì)算部分程序如下:if(key1==0)delay_ms(10)。if(key1==0)while(!key1)。bai++。if(bai==10) bai=0。beer=1。delay_ms(100)。beer=0。上述為百位計(jì)算程序,同理十位和個(gè)位也是一樣。掃描一遍按鍵后進(jìn)行總和計(jì)算程序,并由數(shù)碼管顯示??偤陀?jì)算公式為:zong=bai*100+shi*10+ge。 顯示模塊程序設(shè)計(jì) 數(shù)碼管顯示數(shù)碼管動(dòng)態(tài)顯示程序中,各個(gè)位的延時(shí)時(shí)間長(zhǎng)短非常重要,如果延時(shí)時(shí)間長(zhǎng),則會(huì)出現(xiàn)閃爍現(xiàn)象;如果延時(shí)時(shí)間太短,則會(huì)出現(xiàn)顯示暗且有重影。所有數(shù)碼管的段選全部連接在一起,動(dòng)態(tài)顯示是多個(gè)數(shù)碼管,交替顯示,利用人的視覺暫留作用使人看到多個(gè)數(shù)碼管同時(shí)顯示。在編程時(shí),需要輸出段選和位選信號(hào),位選信號(hào)選中其中一個(gè)數(shù)碼管,然后輸出段碼,使該數(shù)碼管顯示所需要的內(nèi)容,延時(shí)一段時(shí)間后,再選中另一個(gè)數(shù)碼管,再輸出對(duì)應(yīng)的段碼,高速交替。 例如需要顯示數(shù)字“12”時(shí),先輸出位選信號(hào)選中第一個(gè)數(shù)碼管,輸出 1 的段碼延時(shí)一段時(shí)間后選中第二個(gè)數(shù)碼管,輸出 2 的段碼。把上面的流程以一定的速度循環(huán)執(zhí)行就可以顯示出“12” ,由于交替的速度非???,人眼看到的就是連續(xù)的“12” 。先顯示百位,延時(shí)一段時(shí)間后顯示十位,最后顯示各位。一直按照設(shè)置時(shí)間循環(huán)顯示。交替顯示,利用人的視覺暫留作用使人看到多個(gè)數(shù)碼管同時(shí)顯示。使得看到連續(xù)的 3 位數(shù)。部分程序如下:P2=dispcode[bai]。21P0=dispbitcode[0]。delay_ms(10)。P0=dispbitcode[3]。P2=dispcode[shi]。P0=dispbitcode[1]。delay_ms(10)。P0=dispbitcode[3]。 LCD 液晶顯示程序液晶顯示屏的分類方法有很多種,通常可按其顯示方式分為段式、字符式、點(diǎn)陣式等。除了黑白顯示外,液晶顯示器還有多灰度有彩色顯示等。如果根據(jù)驅(qū)動(dòng)方式來分,可以分為靜態(tài)驅(qū)動(dòng)(Static)、單純矩陣驅(qū)動(dòng)(Simple Matrix)和主動(dòng)矩陣驅(qū)動(dòng)(Active Matrix)三種。(1)線段的顯示點(diǎn)陣圖形式液晶由 MN 個(gè)顯示單元組成,假設(shè) LCD 顯示屏有 64 行,每行有 128列,每 8 列對(duì)應(yīng) 1 字節(jié)的 8 位,即每行由 16 字節(jié),共 168=128 個(gè)點(diǎn)組成,屏上6416 個(gè)顯示單元與顯示 RAM 區(qū) 1024 字節(jié)相對(duì)應(yīng),每一字節(jié)的內(nèi)容和顯示屏上相應(yīng)位置的亮暗對(duì)應(yīng)。例如屏的第一行的亮暗由 RAM 區(qū)的 000H~00FH 的 16 字節(jié)的內(nèi)容決定,當(dāng)(000H)=FFH 時(shí),則屏幕的左上角顯示一條短亮線,長(zhǎng)度為 8 個(gè)點(diǎn);當(dāng)(3FFH)=FFH 時(shí),則屏幕的右下角顯示一條短亮線;當(dāng)(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H 時(shí),則在屏幕的頂部顯示一條由 8 段亮線和 8 條暗線組成的虛線。這就是 LCD 顯示的基本原理。(2)字符的顯示用 LCD 顯示一個(gè)字符時(shí)比較復(fù)雜,因?yàn)橐粋€(gè)字符由 68 或 88 點(diǎn)陣組成,既要找到和顯示屏幕上某幾個(gè)位置對(duì)應(yīng)的顯示 RAM 區(qū)的 8 字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點(diǎn)亮,為“0”的不亮。這樣一來就組成某個(gè)字符。但由于內(nèi)帶字符發(fā)生器的控制器來說,可以讓控制器工作在文本方式,根據(jù)在 LCD 上開始顯示的行列號(hào)及每行的列數(shù)找出顯示 RAM 對(duì)應(yīng)的地址,設(shè)立光標(biāo),在此送上該字符對(duì)應(yīng)的代碼即可。(3)漢字的顯示漢字的顯示一般采用圖形的方式,事先從微機(jī)中提取要顯示的漢字的點(diǎn)陣碼(一般用字模提取軟件),每個(gè)漢字占 32B,分左右兩半,各占 16B,左邊為 5……右邊為 6……根據(jù)在 LCD 上開始顯示的行列號(hào)及每行的列數(shù)可找出顯示 RAM 對(duì)22應(yīng)的地址,設(shè)立光標(biāo),送上要顯示的漢字的第一字節(jié),光標(biāo)位置加 1,送第二個(gè)字節(jié),換行按列對(duì)齊,送第三個(gè)字節(jié)……直到 32B 顯示完就可以 LCD 上得到一個(gè)完整漢字。如表 31 所示為 1602 液晶模塊內(nèi)部控制器的控制指令。如圖 35 所示為 LCD 液晶顯示流程圖。 表 31 1602 液晶模塊內(nèi)部控制器指令序號(hào) 指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D01 清顯示 0 0 0 0 0 0 0 0 0 12 光標(biāo)返回 0 0 0 0 0 0 0 0 1 *3 置輸入模式 0 0 0 0 0 0 0 1 I/D S4 顯示開/關(guān)控制 0 0 0 0 0 0 1 D C B5 光標(biāo)或字符移位 0 0 0 0 0 1 S/C R/L * *6 置功能 0 0 0 0 1 DL N F * *7置字符發(fā)生存貯器地址0 0 0 1字符發(fā)生存貯器地址8 置數(shù)據(jù)存貯器地址 0 0 1 顯示數(shù)據(jù)存貯器地址9 讀忙標(biāo)志或地址 0 1 BF 計(jì)數(shù)器地址10寫數(shù)到 CGRAM 或DDRAM)1 0要寫的數(shù)據(jù)內(nèi)容11從 CGRAM 或 DDRAM讀數(shù)1 1讀出的數(shù)據(jù)內(nèi)容1602 液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的。(說明:1 為高電平、0 為低電平)指令 1:清顯示,指令碼 01H,光標(biāo)復(fù)位到地址 00H 位置指令 2:光標(biāo)復(fù)位,光標(biāo)返回到地址 00H23指令 3:光標(biāo)和顯示模式設(shè)置指令 4:顯示開關(guān)控制指令 5:光標(biāo)或顯示移位指令 6:功能設(shè)置命令指令 7:字符發(fā)生器 RAM 地址設(shè)置指令 8:DDRAM 地址設(shè)置指令 9:讀忙信號(hào)和光標(biāo)地址指令 10:寫數(shù)據(jù)指令 11:讀數(shù)據(jù) 圖 35 液晶顯示流程圖液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,圖 36 為 LCD1602 液晶屏的內(nèi)部顯示地址。開始LCD 初始化延時(shí)設(shè)第一行顯示位置顯示第一行內(nèi)容設(shè)第二行并顯示位置顯示第二行內(nèi)容24圖 36 LCD1602 液晶屏內(nèi)部顯示地址例如第二行第一個(gè)字符的地址是 40H,那么是否直接寫入 40H 就可以將光標(biāo)定位在第二行第一個(gè)字符的位置呢?這樣不行,因?yàn)閷懭腼@示地址時(shí)要求最高位 D7 恒定為高電平 1 所以實(shí)際寫入的數(shù)據(jù)應(yīng)該是 01000000B(40H)+10000000B(80H)=11000000B(C0H)。在對(duì)液晶模塊的初始化中要先設(shè)置其顯示模式,在液晶模塊顯示字符時(shí)光標(biāo)是自動(dòng)右移的,無需人工干預(yù)。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。LCD1602 液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了 160 個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址 41H 中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”。部分程序如下:void adr_write(unsigned char adr) delay(20)。e=0。 rs=0。 rw=0。 e=1。 lcd_data=adr。 e=0。 使用時(shí)都要進(jìn)行初始化操作,如兩行顯示、清顯示、是否需光標(biāo),從哪里開
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1