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

正文內(nèi)容

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

2024-10-04 11:35 本頁面
 

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