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個(gè)字符。 (3)IR 為指令寄存器,負(fù)責(zé)存儲 MCU要寫個(gè) LCD 的指令碼。當(dāng) RS及 R/W 引腳信號為 0 且 E 引腳信號為由 1變?yōu)?0 時(shí), D0~ D7 引腳上的數(shù)據(jù)便會存入到 IR 寄存器中。 (4)DR 為數(shù)據(jù)寄存器,負(fù)責(zé)存儲單片機(jī)要寫到 CGRAM 或 DDROM 的數(shù)據(jù)。因此,可將 DR視為一個(gè)數(shù)據(jù)緩沖區(qū)。 14 當(dāng) RS及 R/W 引腳信號為 1 且 E 引腳信號為由 1變?yōu)?0時(shí),讀取數(shù)據(jù)。當(dāng) RS 引腳信號為1, R/W 引腳信號為 0 且 E 引腳信號為由 1 變?yōu)?0時(shí),存入數(shù)據(jù) 。 圖 210 LCD液晶顯示原理圖 如圖 210 所示為液晶顯示原理圖, 8 位數(shù)據(jù)總線由單片機(jī)的 I/O 口 P2 控制, RS腳的高低電平控制數(shù)據(jù)和指令的寫入, R/W 腳的高低電平控制數(shù)據(jù)的讀取和寫入。如圖211為模擬接線方式圖。 LCD 液晶屏的第三引腳接了個(gè)滑動變阻,目的是對 LCD 對比度進(jìn)行調(diào)節(jié),使顯示達(dá)到合適的效果。當(dāng)電阻器滑到最靠近電源端時(shí)對比度最弱,當(dāng)滑到最靠近地端時(shí)對比度最高。但對比度過高時(shí)會產(chǎn)生“鬼影”,因此用一個(gè)滑動變阻來調(diào)整對比度。表 22為 LCD1602 液晶顯示屏的主要技術(shù)參數(shù)。圖 212所示為讀 操作時(shí)序的控制器接口圖。 15 表 22 LCD1602的主要技術(shù)參數(shù) 顯示容量 16 2個(gè)字符 芯片工作電壓 工作電流 () 模塊最佳工作電壓 字符尺寸 ( 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 讀操作時(shí)序的控制器接口圖 17 3 系統(tǒng)軟件設(shè)計(jì) 程序的編寫就要涉及到程序語言的選擇,下面先看看匯編語言和 C 語言的特性,再進(jìn)行語言的選擇。 ( 1) C 語言: C語言是國內(nèi)外廣泛使 用的計(jì)算機(jī)語言,是計(jì)算機(jī)應(yīng)用人員應(yīng)掌握的一種程序設(shè)計(jì)工具。 C語言功能豐富,表達(dá)能力強(qiáng),使用靈活方便,應(yīng)用面廣,目標(biāo)程序效率高,可移植性好,既具有高級語言的優(yōu)點(diǎn),又具有低級語言的許多特點(diǎn)。因此, C 語言特別適合編寫系統(tǒng)軟件。除了這些特點(diǎn)外, C語言還具有以下優(yōu)越性:在不需要完全了解單片機(jī)系統(tǒng)具體硬件的情況下,也能夠編出符合硬件實(shí)際的專業(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)格的句法檢查,錯(cuò)誤很少,可容易地在高級語言的水平上迅速地被排除掉;可方便地接受多種實(shí)用程序的服務(wù):如片上資源的初始化有專門的實(shí)用程序自動生成;再如,有實(shí)時(shí)多任務(wù)操作系統(tǒng)可調(diào)度多道任務(wù),簡化用戶編程,提高運(yùn)行的安全性等等。 ( 2)匯編語言: 匯編語言是計(jì)算機(jī)能提供給用戶的最快而又最有效的語言,也是能夠利用計(jì)算機(jī)所有硬件特性并能直接控制硬件的唯一語言,因而在對于程序的空間和時(shí)間要求很高的場合,匯編語言是必不可少的,至于對于很多需要 直接控制硬件的應(yīng)用場合,更是非用匯編語言不可。除了這些特性,匯編語言還具有下列特性: ① 占用的內(nèi)存單元和 CPU 資源少,能直接對硬件進(jìn)行控制; ② 程序簡短執(zhí)行速度快; ③ 可直接調(diào)用單片機(jī)的全部資源,并可有效地利用單片機(jī)的專有特性; ④ 能準(zhǔn)確地掌握指令的執(zhí)行時(shí)間,適用于實(shí)時(shí)控制系統(tǒng)。 紅外抄表系統(tǒng)的軟件程序設(shè)計(jì)主要由主程序、發(fā)射程序、顯示程序、接收程序組成。通過對以上兩種語言的分析, 由于 C 語言程序有利于實(shí)現(xiàn)較復(fù)雜的算法,同時(shí)該程序也比較復(fù)雜,要控制多個(gè)部件模塊。為了能簡單有條理的編輯程序。 兩種語言都有其 獨(dú)有的特性,結(jié)合自身的情況,對 C 語言比匯編語言要熟悉,并且應(yīng)用 C的時(shí)間比匯編長, 18 所以我最終選擇了以 C語言來編寫系統(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ā)送程序 否 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 計(jì)算得 T≈ 如圖 35所示發(fā)射管接在單片機(jī)的 引腳上, 所以只要控制單片機(jī) 引腳的高、低電平周期為 。程序如下: for(a=aa。a0。a) out=1。 i=7。 while(i0)i。 out=0。 如下程序首先發(fā)送 頻率,再停止發(fā)送 。這兩個(gè)段是為了讓接收模塊識別防止其他信號的干擾。接著開始發(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ā)射和接收波形圖。 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 比 快一點(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è)按鍵對應(yīng)位加一。利用軟件編程對各位進(jìn)行相加計(jì)算。每位最大只能按 21 到 9, 當(dāng)超過 9,則返回到 0并且蜂鳴器響一聲,如此反復(fù)循環(huán)計(jì)算。如個(gè)、十、百位各按一下,則得數(shù)據(jù) 111。計(jì)算規(guī)則十分簡單,如下程序?yàn)榘傥豢刂疲?key1 為百位控制鍵,首先進(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ù)碼管動態(tài)顯示程序中,各個(gè)位的延時(shí)時(shí)間長短非常重要,如果延時(shí)時(shí)間長,則會出現(xiàn)閃爍現(xiàn)象;如果延時(shí)時(shí)間太短,則會出現(xiàn)顯示暗且有重影。所有數(shù)碼管的段選全部連接在一起,動態(tài)顯示是多個(gè)數(shù)碼管,交替顯示,利用人的視覺暫留作用使人看到多個(gè)數(shù)碼管同時(shí)顯示。在編程時(shí),需要輸出段選和位選信號,位選信號選中其中 一個(gè)數(shù)碼管,然后輸出段碼,使該數(shù)碼管顯示所需要的內(nèi)容,延時(shí)一段時(shí)間后,再選中另一個(gè)數(shù)碼管,再輸出對應(yīng)的段碼,高速交替。 例如需要顯示數(shù)字“ 12”時(shí),先輸出位選信號選中第一個(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]。 P0=dispbitcode[0]。 22 delay_ms(10)。 P0=dispbitcode[3]。 P2=dispcode[shi]。 P0=dispbitcode[1]。 delay_ms(10)。 P0=dispbitcode[3]。 LCD 液晶顯示程序 液晶顯示 屏 的分類方法有很多種,通??砂雌滹@示方式分為段式、字符式、點(diǎn)陣式等。除了黑白顯示外,液晶顯示器還有多灰度有彩色顯示等。如果根據(jù)驅(qū)動方式來分,可以分為靜態(tài)驅(qū)動( Static)、 單純矩陣驅(qū)動( Simple Matrix)和主動矩陣驅(qū)動( Active Matrix)三種。 ( 1) 線段的顯示 點(diǎn)陣圖形式液晶由 MN 個(gè)顯示單元組成,假設(shè) LCD 顯示屏有 64 行,每行有 128列,每 8列對應(yīng) 1 字節(jié)的 8 位,即每行由 16字節(jié),共 168=128 個(gè)點(diǎn)組成,屏上 6416個(gè)顯示單元與顯示 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 時(shí),則屏幕的左上角顯示一條短亮線,長度為 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è)位置對應(yīng)的顯示 RAM 區(qū)的 8 字節(jié),還要使每字節(jié)的不同位為“1” ,其它的為 “0” ,為 “1” 的點(diǎn)亮,為 “0” 的不亮。這樣一來就組成某個(gè)字符。但由于內(nèi)帶字 符發(fā)生器的控制器來說,可以讓控制器工作在文本方式,根據(jù)在 LCD 上開始顯示的行列號及每行的列數(shù)找出顯示 RAM 對應(yīng)的地址,設(shè)立光標(biāo),在此送上該字符對應(yīng)的代碼即可。 ( 3) 漢字的顯示 漢字的顯示一般采用圖形的方式,事先從微機(jī)中提取要顯示的漢字的點(diǎn)陣碼(一般用字模提取軟件),每個(gè)漢字占 32B,分左右兩半,各占 16B,左邊為 5?? 右邊為 6?? 根據(jù)在 LCD 上開始顯示的行列號及每行的列數(shù)可找出顯示 RAM 對應(yīng)的地址,設(shè)立光標(biāo),送上要顯示的漢字的第一字節(jié),光標(biāo)位置加 1,送第二個(gè)字節(jié),換行 23 按列對齊,送第三個(gè)字節(jié) ?? 直到 32B 顯示完就可以 LCD 上得到一個(gè)完整漢字。 如表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
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1