




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
學習單片機小小幫助第一頁,共五十七頁,2022年,8月28日鍵盤可分為編碼式鍵盤和非編碼式鍵盤。編碼鍵盤能夠由硬件自動提供與被按鍵對應的ASCII碼或其它編碼。但是它要求采用較多的硬件,價格昂貴。非編碼鍵盤則僅提供行和列的矩陣,其硬件邏輯與按鍵編碼不存在嚴格的對應關系,而要由所用的程序來確定。非編碼鍵盤的硬件接口簡單,但是要占用較多的CPU時間。任何鍵盤接口均要解決三個主要問題:1、反彈跳2、串鍵保護3、按鍵識別第二頁,共五十七頁,2022年,8月28日1、反彈跳當按鍵開關的觸點閉合或斷開到其穩定,會產生一個短暫的抖動和彈跳,如下圖所示,這是機械式開關的一個共同性問題。消除由于鍵抖動和彈跳產生的干擾可采用硬件方法,也可采用軟件延遲的方法。
采用RS觸發器實現硬件反彈跳第三頁,共五十七頁,2022年,8月28日當鍵數較多時經常用軟件延時的方法來反彈跳,如流程圖所示。當檢出有鍵按下后,先執行一個反顫延時20ms的子程序,待前沿彈跳消失后再轉入鍵閉合CLOSE子程序。然后再判斷此次按鍵是否松開,如果沒有,則進行等待。若已松開,則又執行一次延時20ms的子程序以消除后沿彈跳的影響,再去檢測下次按鍵的閉合。
第四頁,共五十七頁,2022年,8月28日2、串鍵保護由于操作不慎,可能會造成同時有幾個鍵被按下,這種情況稱為串鍵。有三種處理串鍵的技術:兩鍵同時按下、n鍵同時按下和n鍵鎖定。“兩鍵同時按下”技術是在兩個鍵同時按下時產生保護作用。最簡單的辦法是當只有一個鍵按下時才讀取鍵盤的輸出,最后仍被按下的鍵是有效的正確按鍵。當用軟件掃描鍵盤時常采用這種方法。另一種方法是當第一個按鍵未松開時,按第二個鍵不產生選通信號。這種方法常藉助硬件來實現。“n鍵同時按下”技術或者不理會所有被按下的鍵,直至只剩下一鍵按下時為止,或者將所有按鍵的信息都存入內部緩沖器中,然后逐個處理,這種方法成本較高。“n鍵鎖定”技術只處理一個鍵,任何其它按下又松開的鍵不產生任何碼。通常第一個被按下或最后一個松開的鍵產生碼。這種方法最簡單也最常用。第五頁,共五十七頁,2022年,8月28日3、按鍵識別決定是否有鍵被按下,如有則應識別鍵盤矩陣中被按鍵對應的編碼。編碼鍵盤通過硬件直接提供按鍵與被按鍵對應的ASCII碼或其它編碼。非編碼鍵盤則需要通過編程方式提供按鍵編碼。其優點是結構簡單、成本低廉第六頁,共五十七頁,2022年,8月28日非編碼鍵盤接口技術非編碼鍵盤接口技術主要是如何確定被按鍵的行、列位置,即鍵碼(值)。按鍵識別是接口技術的關鍵問題。常用按鍵識別方法有行掃描法(Row-Scanning)和線反轉法(Line-Reverse)。第七頁,共五十七頁,2022年,8月28日典型非編碼鍵盤結構
非編碼鍵盤大都采用按行、列排列的矩陣開關結構,這種結構可以減少硬件和連線。
矩陣鍵盤接口第八頁,共五十七頁,2022年,8月28日行掃描法識別按鍵
行掃描法是采用步進掃描方式,CPU通過輸出口把一個“步進的0”逐行加至鍵盤的行線上,然后通過輸入口檢查列線的狀態。由行線列線電平狀態的組合來確定是否有鍵按下,并確定被按鍵所處的行、列位置。
第九頁,共五十七頁,2022年,8月28日R1K13K14K15K16R2K9K10K11K12R3K5K6K7K8R4K1K2K3K4C1C2C3C4鍵位與行列線關系表上表列出了識別按鍵位置與各行之間的關系。其中,R1、R2、R3、R4表示行,C1、C2、C3、C4表示列。當掃描第一行時,R1=0,若讀入的列值C1=0,則表明按鍵K13被壓下,如果C3=0,則表明按鍵K15被壓下。第一行掃描完畢后再掃描第二行,逐行掃描至最后一行為止,即可識別出所有的按鍵。第十頁,共五十七頁,2022年,8月28日線反轉法識別按鍵線反轉法是藉助程控并行接口實現的,比行掃描法的速度快。如圖所示為一個4×4鍵盤與并行接口的連接。并行接口有一個方向寄存器和一個數據寄存器,方向寄存器規定了接口總線的方向,寄存器的某位置“1”,規定該位口線為輸出。寄存器的某位置“0”,規定該位口線為輸入。
第十一頁,共五十七頁,2022年,8月28日線反轉法的具體操作分兩步
第一步:先把控制字0FH置入并行接口的方向寄存器,使4條行線(PB0~PB3)作輸出,4條列線(PB4-PB7)作輸入。然后把控制字F0H寫入數據寄存器,PB0~PB3將輸出“0”到鍵盤行線。這時若無鍵按下,則4條列線均為“1”;若有某鍵按下,則該鍵所在行線的“0”電平通過閉合鍵使相應的列線變為“0”,并經與非門發出鍵盤中斷請求信號給單片機。圖4.6(a)是第2行第1列有鍵按下的情況。這時PB7~PB4線的輸入為1011,其中0對應于被按鍵所在的列。第二步:使接口總線的方向反轉,把控制字F0H寫入方向寄存器,使PB0~PB3作輸入,PB4~PB7作輸出。這時PB7~PB4線的輸出為1011,PB3~PB0的輸入為1011,其中“0”對應于被按鍵的行。單片機現在讀取數據寄存器的完整內容為10111011,其中兩個0分別對應于被按鍵所在的行列位置。根據此位置碼到ROM中去查表,就可識別是何鍵被按下。第十二頁,共五十七頁,2022年,8月28日單片機通過8155實現的鍵盤、顯示器接口如圖所示為單片機8051與矩陣鍵盤及LED顯示器的一種接口電路,通過編程設定8155的PA口、PB口作為輸出口,PC口作為輸入口。PA口完成鍵盤的行掃描輸出,同時又對LED顯示器作字位掃描,PC口輸入鍵盤列線狀態。7407為同相驅動器,75452為反相驅動器。接口電路中采用8031的P2.7作為8155的片選線,P2.0作為8155的IO端口和片內RAM選擇線,因此8155的命令寄存器地址為7F00H,PA~PC口地址為7F01H~7F03H。第十三頁,共五十七頁,2022年,8月28日按鍵識別子程序KEY:MOVDPTR,#7F00H;8155命令口地址MOVA,#03H;置PA、PB口為輸出,MOVX@DPTR,A;PC口為輸入 MOVR4,#00H;0→鍵號寄存器R4 MOVR2,#01H;掃描模式01H→R2KEY1:MOVDPTR,#7F01H MOVA,R2 MOVX@DPTR,A;掃描模式→8155PA口 INCDPTR INCDPTR MOVXA,@DPTR;讀8155PC口 JBACC.0,KEY2;0列無鍵閉合,轉判1列 MOVA,#00H;0列有鍵閉合,0→A AJMPKEY5KEY2:JBACC.1,KEY3;1列無鍵閉合,轉判2列 MOVA,#01H;1列有鍵閉合,列線號01H→A AJMPKEY5第十四頁,共五十七頁,2022年,8月28日KEY3:JBACC.2,KEY4;2列無鍵閉合,轉判3列 MOVA,#02H;2列有鍵閉合,02H→A AJMPKEY5KEY4:JBACC.3,NEXT;3列無鍵閉合,轉判下一行 MOVA,#03H;3列有鍵閉合,03H→AKEY5:ADDA,R4;列線號+(R4)作為鍵值→A MOVR4,A;鍵值→R4 RET;返回NEXT:MOVA,R4; ADDA,#04;鍵號寄存器加4 MOVR4,A MOVA,R2 JBACC.3,NEXT1;判別是否已掃描到最后一行 RLA;掃描模式左移一位 MOVR2,A AJMPKEY1;重新開始掃描下一行NEXT1:MOVR4,#88H;掃描到最后一行仍無按鍵 RET;置無鍵閉合標志后返回第十五頁,共五十七頁,2022年,8月28日鍵值分析單片機從鍵盤接口獲得鍵值后究竟執行什么操作,完全取決于鍵盤解釋程序。常用的方法:
1、查表法根據得到的鍵值代碼,到固化在ROM里的表格中查找對應該代碼的動作例行程序的首地址。這種方法適用于一個鍵就產生一個動作的單個命令鍵。
2.狀態分析法根據鍵碼和當前所處的狀態找出下一個應進入的狀態及動作例行程序。這種方法適用于多個鍵互相配合產生一個動作的多義鍵。
第十六頁,共五十七頁,2022年,8月28日查表法查表法的核心是一個固化在ROM中的功能子程序入口地址轉移表。如下表所示。在轉移表內存有各個功能子程序的入口地址,根據鍵值代碼查閱此表獲得相應功能的子程序入口地址,從而可以轉移到相應的命令處理子程序。功能子程序入口地址子程序1子程序2子程序3…入口地址1入口地址2入口地址3…功能子程轉移地址第十七頁,共五十七頁,2022年,8月28日例:鍵盤接口調用按鍵識別子程序所獲得的鍵值如下表所示,當鍵值小于10H時代表數字鍵,鍵值大于等于10H時代表功能鍵。
鍵值表按鍵鍵值0~F00H~0FHRUN10HRET11HADRS12HSTORE13HREAD14HWRITE15H第十八頁,共五十七頁,2022年,8月28日處理功能鍵的程序:
INPUT:LCALLKEY;調按鍵識別子程序,獲得鍵值在A中 MOVR0,A;鍵值暫存于R0 ANLA,#10H JZDATIN;小于10H為數字鍵,轉入數字操作 MOVA,R0;大于等于10H為命令鍵 ANLA,#0FH;保留鍵值低4位 MOVR0,A;(A)×3 RLA ADDA,R0 MOVDPTR,#TABEL;取轉移表首地址 JMP@A+DPTR;按不同鍵值散轉至子程序TABEL:LJMP#RUN;轉RUN命令子程序 LJMP#RET;轉RET命令子程序 LJMP#ADRS;轉ADRS命令子程序 LJMP#STORE;轉STORE命令子程序 LJMP#READ;轉READ命令子程序 LJMP#WRITE;轉WRITE命令子程序DATIN:;數字鍵操作程序,略;第十九頁,共五十七頁,2022年,8月28日LED顯示器接口技術LED數碼顯示器結構與原理
LED數碼顯示器是由發光二極管顯示字段的顯示器件。在應用系統中通常使用的是七段LED數碼顯示器。這種顯示塊有共陰極與共陽極兩種,如下圖所示。第二十頁,共五十七頁,2022年,8月28日使用LED顯示器時,要注意區分共陰極和共陽極兩種不同的接法。為了顯示數字或字符,必須對數字或字符進行編碼,簡稱段碼。七段數碼管加上一個小數點,共計8段。因此為LED顯示器提供的段碼正好是一個字節。實際使用中,通過單片機向LED顯示接口輸出不同段碼,即可顯示相應的數字。第二十一頁,共五十七頁,2022年,8月28日LED數碼顯示器共陰極和共陽極段碼
存儲器地址顯示數字共陰極接法的七段狀態gfedcba共陰極接法段碼(十六進制數)共陽極接法段碼(十六進制數)SEG001111113F40SEG+1100001100679SEG+2210110115B24SEG+3310011114F30SEG+4411001106619SEG+5511011016D12SEG+6611111017D02SEG+7700001110778SEG+8811111117F00SEG+9911001116718SEG+10A11101117708SEG+11B11111007C03SEG+12C01110013946SEG+13D10111105E21SEG+14E11110017906SEG+15F1110001710E第二十二頁,共五十七頁,2022年,8月28日
硬件譯碼LED顯示接口
如圖所示為采用硬件譯碼器的七段LED接口電路,顯示器是共陰極的。9368是硬件段譯碼器,它能自動將輸入的16進制數轉換成段碼輸出,在+5V時能輸出約30mA的電流點亮顯示器的段。7475是4位鎖存器,4個數據輸入端接到系統數據總線的D3~D0。鎖存器的選通端E接到地址譯碼器,若該接口的地址為0088H,執行以下指令即可在顯示器上顯示數字“0”。
MOVDPTR,#0088HMOVA,#00HMOVX@DPTR,A第二十三頁,共五十七頁,2022年,8月28日軟件譯碼LED顯示接口
設計思想:先在內存中存儲一張段碼表,根據要顯示的數字或字符去查表取得相應的段碼,并輸出到LED顯示器。具體顯示時,采用逐位掃描的方法控制哪一位LED被點亮。
第二十四頁,共五十七頁,2022年,8月28日程序清單:DISPB:MOVDPTR,#7F00H;8155命令口地址 MOVA,#03H MOVX@DPTR,A;置PA口、PB口為輸出 MOVR0,#7AH;置顯示緩沖器指針初值 MOVR3,#01H;置掃描模式初值 MOVA,R3DISPB1:MOVDPTR,#7F01H;8155PA口地址 MOVX@DPTR,A;掃描模式→8155PA口 INCDPTRMOVA,@R0;取顯示數據ADDA,#0DH;加偏移量MOVCA,@A+PC;查表取段碼MOVX@DPTR,A;段碼→8155PB口第二十五頁,共五十七頁,2022年,8月28日
ACALLDELAY;延時 INCR0 MOVA,R3 JBACC.5,DISPB2;判6位LED顯示完否 RLA;掃描模式左移1位 MOVR3,A AJMPDISPB1DISPB2:RETSEGPT2:DB3FH,06H,5BH,4FH,66H,6DH…;段碼表DELAY:MOVR5,#02H;延時子程序DELAY1:MOVR4,#0FFHDELAY2:DJNZR4,DELAY2 DJNZR5,DELAY1RET第二十六頁,共五十七頁,2022年,8月28日串行接口LED驅動器MAX7219
MAX7219是MAXIM公司生產的一種串行接口方式7段共陰極LED顯示驅動器,其片內包含有一個BCD碼到B碼的譯碼器、多路復用掃描電路、字段和字位驅動器以及存儲每個數字的8×8RAM,每位數字都可以被尋址和更新,允許對每一位數字選擇B碼譯碼或不譯碼。采用三線串行方式與單片機接口,電路十分簡單,只需要一個10k左右的外接電阻來設置所有LED的段電流。
第二十七頁,共五十七頁,2022年,8月28日MAX7219采用串行數據傳輸方式,由16位數據包發送到DIN引腳的串行數據在每個CLK的上升沿被移入到內部16位移位寄存器中,然后在LOAD的上升沿將數據鎖存到數字或控制寄存器中。LOAD信號必須在第16個時鐘上升沿同時或之后,但在下一個時鐘上升沿之前變高,否則將會丟失數據。DIN端的數據通過移位寄存器傳送,并在16.5個時鐘周期后出現在DOUT端。DOUT端的數據在CLK的下降沿輸出。串行數據以16位為一幀,其中D15~D12可以任意,D11~D8為內部寄存器地址,D7~D0為寄存器數據,工作時序如下:第二十八頁,共五十七頁,2022年,8月28日寄存器地址D15~D12D11D10D9D8十六進制代碼NO-OP×0000×0H數字0×0001×1H數字1×0010×2H數字2×0011×3H數字3×0100×4H數字4×0101×5H數字5×0110×6H數字6×0111×7H數字7×1000×8H譯碼方式×1001×9H亮度×1010×AH掃描界限×1011×BH停機×1100×CH顯示測試×1111×FHMAX7219的內部寄存器及其地址
第二十九頁,共五十七頁,2022年,8月28日如圖所示為8051單片機與MAX7219的一種接口,8051的P1.0連到MAX7219的DIN端,P1.1連到LOAD端,P1.2連到CLK端,采用軟件模擬方式產生所需的工作時序。下面給出根據該圖設計的MAX7219顯示驅動程序例子,程序執行后在LED上顯示8031字樣。
第三十頁,共五十七頁,2022年,8月28日主程序MAIN:MOVSP,#60H;設置堆棧指針MOVR7,#0AH;亮度寄存器MOVR5,#07H;亮度值LCALLDINPUT;調用7219命令寫入子程序MOVR7,#0BH;掃描界限寄存器MOVR5,#07H;顯示7位數字LCALLDINPUTMOVR7,#09H;譯碼方式寄存器MOVR5,#0FFH;#FFH=7-0位均譯為B碼,#00=不譯碼LCALLDINPUTMOVR7,#0CH;停機寄存器MOVR5,#01H;正常工作LCALLDINPUTMOV30H,#08H;顯示8031MOV31H,#00HMOV32H,#03HMOV33H,#01HMOVR7,#30HLCALLDISPLY;調用7219顯示子程序SJMP$
第三十一頁,共五十七頁,2022年,8月28日7219命令寫入子程序
DINPUT:MOVA,R7;傳遞來的第1個參數保存在R7中
MOVR2,#08;作為MAX7219控制寄存器的8位地址值
LOOP1:RLCA;A的D7位移至P1.0,依次為D6~D0
MOVP1.0,C;8位地址輸入DIN
CLRP1.2;P1.2輸出時鐘信號
SETBP1.2
DJNZR2,LOOP1
MOVA,R5;傳遞來的第2個參數保存在R5中
MOVR2,#08;作為寫入控制寄存器的8位命令數據值
LOOP2:RLCA;A的D7位移至P1.0,依次為D6~D0
MOVP1.0,C;8位數據輸入DIN
CLRP1.2;P1.2輸出時鐘信號
SETBP1.2
DJNZR2,LOOP2
CLRP1.1;P1.1輸出LOAD信號,
SETBP1.1
RET第三十二頁,共五十七頁,2022年,8月28日7219顯示子程序
DISPLY:MOVA,R7;R7的內容為7219顯示緩沖區入口地址
MOVR0,A;R0指向顯示緩沖區首地址
MOVR1,#01;R1指向8字節顯示RAM首地址
MOVR3,#08
LOOP3:MOVA,@R0;取出顯示數據→R5
MOVR5,A
MOVA,R1;取出顯示RAM地址→R7
MOVR7,A
LCALLDINPUT;調用7219命令寫入子程序
INCR0
INCR1
DJNZR3,LOOP3
RET第三十三頁,共五十七頁,2022年,8月28日8279可編程鍵盤/顯示器接口技術8279的工作原理鍵盤部分提供64按鍵陣列(可擴展為128)的掃描接口,也可以接傳感器陣列。鍵的按下可以是雙鍵鎖定或N鍵互鎖。鍵盤輸入經過反彈跳電路自動消除前后沿按鍵抖動影響之后,被選通送入一個8字符的FIFO(先進先出棧)存儲器。如果送入的字符多于8個,則溢出狀態置位。按鍵輸入后將中斷輸出線升到高電平向CPU發中斷申請。顯示部分對7段LED、白熾燈或其他器件提供顯示接口。8279有一個內部的16×8顯示RAM,組成一對16×4存儲器。顯示RAM可由CPU寫入或讀出。顯示方式有從右進入的計算器方式和從左進入的電傳打字方式。顯示RAM每次讀寫之后,其地址自動加1。第三十四頁,共五十七頁,2022年,8月28日8279內部邏輯結構框圖第三十五頁,共五十七頁,2022年,8月28日I/O控制和數據緩沖
控制與定時寄器及定時控制掃描計數器
返回緩沖器和鍵盤消顫及控制
FIFO/傳感器RAM和狀態
顯示地址寄存器和顯示RAM
8279內部主要組成模塊
第三十六頁,共五十七頁,2022年,8月28日8279功能命令一覽表第三十七頁,共五十七頁,2022年,8月28日8279功能命令一覽表(續表)第三十八頁,共五十七頁,2022年,8月28日8279與單片機的一般接口方法第三十九頁,共五十七頁,2022年,8月28日單片機在初始化8279后,把顯示字符送到8279內部的一個16字節寄存器內,并將字符轉換成段碼,經A0~A3、B0~B3線把段碼送到顯示器,同時經SL0~SL3線發出4位數位選通碼。4-16譯碼器對選通碼進行譯碼后輪流選通各位顯示器。SL0~SL2線同時連到3-8譯碼器。該譯碼器的輸出用于掃描鍵盤8行。8279經8根返回線(RL0~RL7)讀取鍵盤的狀態。如果發現按鍵閉合則等待10ms,顫動過去后再檢驗按鍵是否閉合。若按鍵仍然閉合,則把被按鍵的鍵值選通輸入8279內部的先進先出(FIFO)存儲器,同時經INT線發出一個高電平,指出FIFO內已經有一個字符。INT線連接到CPU的中斷請求輸入線。當單片機接收到中斷請求后,若開中斷,則轉到鍵盤服務程序,從FIFO中讀取按鍵的鍵值。在這種接口中,單片機要做的事僅是初始化8279、送出要顯示的字符、接到中斷請求后讀取按鍵的鍵值,其它工作均由8279自動完成。第四十頁,共五十七頁,2022年,8月28日單片機與8279的具體接口電路第四十一頁,共五十七頁,2022年,8月28日8031的P2.7接到8279的片選端,最低位地址A0接到8279的C/D端,因此該接口對用戶來說只有二個口地址:命令口地址7FFFH和數據口地址7FFEH。圖中8279外接4×8鍵盤和8位共陰極LED顯示器,采用編碼掃描方式,譯碼器74LS138對掃描線譯碼后一方面接鍵盤的列線,同時通過驅動器接到顯示器上。
第四十二頁,共五十七頁,2022年,8月28日8279初始化程序:INI79:MOVDPTR,#7FFFH;清除命令→8279 MOVA,#0D1H MOVX@DPTR,AWNDU:MOVXA,@DPTR;等8279清除結束
JBACC.7,WNDUMOVA,#0;方式命令→8279MOVX@DPTR,AMOVA,#34H;掃描頻率設置命令→8279MOVX@DPTR,AMOVIE,#84H;允許8279中斷
RET第四十三頁,共五十七頁,2022年,8月28日顯示器更新程序:RDIR:MOVDPTR,#7FFFH;寫顯示RAM命令→8279MOVA,#90HMOVX@DPTR,AMOVR0,#78H;顯示緩沖器首地址→R0MOVR7,#8MOVDPTR,#7FFEHRDLO:MOVA,@R0;取顯示數據ADDA,#5;加偏移量MOVCA,@A+PC;查表轉換為段碼數據MOVX@DPTR,AINCR0DJNZR7,RDLORETSEG:DB3FH,06H,5BH,4FH;根據硬件線路設計的段碼DB66H,6DH,7DH,07HDB7FH,6FH77H,7CH第四十四頁,共五十七頁,2022年,8月28日鍵輸入中斷服務程序:PKEYI:PUSHPSW PUSHDPL PUSHDPH PUSHACC PUSHB SETBPSW.3;選工作寄存器1區
MOVDPTR,#7FFFH;讀FIFO狀態字
MOVXA,@DPTR ANLA,#0FH JZPKYR;判FIFO中是否有數據? MOVA,#40H;讀FIFO命令→8279 MOVX@DPTR,A MOVDPTR,#7FFEH MOVXA,@DPTR;讀數據
MOVR2,A ANLA,#38H;計算鍵值
RRA第四十五頁,共五十七頁,2022年,8月28日
RRA RRA MOVB,#04H MULAB XCHA,R2 ANLA,#7 ADDA,R2 MOVR0,40;鍵值→(40H)指出的環形緩沖器單元
MOV@R0,A INCR0 MOVA,R0 ANLA,#3FH;環形緩沖器指針處理
ORLA,#30H MOV40H,A SETB0;置標志供主程序查詢處理PKYR:POPB POPACC POPDPH POPDPL POPPSW RETI第四十六頁,共五十七頁,2022年,8月28日LCD顯示器接口
LCD的基本結構及工作原理LCD的特點是體積小、重量輕、功耗極低、抗干擾能力強。第四十七頁,共五十七頁,2022年,8月28日LCD的驅動方式
LCD常采用交流驅動,通常采用異或門把顯示控制信號和顯示頻率信號合并為交變的驅動信號,如圖所示。當顯示控制電極上的波形與公共電極上的方波相位相反時,則為顯示狀態。顯示控制信號由C端輸入,高電平為顯示狀態。顯示頻率信號是一個方波。當異或門的C端為低電平時,輸出端B的電位與A端相同,LCD兩端的電壓為0,LCD不顯示,當異或門的C端為高電平時,B端的電位與A端相反,LCD兩端呈現交替變化的電壓,LCD顯示。
第四十八頁,共五十七頁,2022年,8月28日段式LCD顯示器的驅動接口顯示器4N07,譯碼驅動器采用帶鎖存器的MC14543,可以將輸入的BCD碼轉換為7段顯示碼輸出。驅動方式由PH端控制,PH端輸入顯示方波信號。LD是內部鎖存器選通端,LD為高電平時,允許A~D端輸入BCD碼數據,LD為低電平時,鎖存輸入數據。BI為高電平時為消隱。每塊MC14543各驅動一位LCD,BCD碼輸入端A~D接到8051的P1.0~P1.3,鎖存器選通端LD分別接到P1.4~P1.7,分別控制4塊MC14543輸入BCD碼。MC14543的相位端PH接到8051的P3.7,由P3.7端提供一個顯示用的低頻方波信號,方波信號的產生由8031片內定時器T1的定時中斷產生第四十九頁,共五十七頁,2022年,8月28日主程序DISBEQU60H;定義顯示緩沖區ORG0000HINIT:LJMPSTART;主程序入口ORG001BHLJMPINTT1;定時器1中斷入口ORG0030HSTART:MOVTMOD,#10H;置定時器T1為方式1MOVTH1,#0ECH;10ms定時,fosc=6MHzMOVTL1,#78HSETBTR1;啟動T1SETBEA;開中斷SETBET1…;其它工作LCALLDISP;調用顯示子程序…;其它工作第五十頁,共五十七頁,2022年,8月28日顯示子程序:DISP:MOVR0,#DISB;R0指向顯示緩沖區首地址MOVR2,#10H;設定最高位鎖存控制標志DISP1:MOVA,@R0;取顯示數據ANLA,#0FH;保留BCD碼ORLA,R2;加上鎖存控制位MOVP1,A;送入MC14543ANLP1,#0FH;置所有MC14543為鎖存狀態INCR0;R0指向顯示緩沖區下一位MOVA,R2;鎖存端控制標志送ARLAMOVR2,AJNBACC.0,DISP1;未完成4位則繼續RET;已更新顯示,返回第五十一頁,共五十七頁,2022年,8月28日定時器1中斷服務程序:INTT:CPLP3.7;P3.7輸出電平取反MOVTH1,#0ECH;置定時器計數初值MOVTL1,#78HRETI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業園區規劃設計與質量監管策略
- 工業機器人市場及技術發展趨勢
- 工業機器人技術與應用趨勢
- 工業機器人技術及應用領域探討
- 工業廢物處理與循環經濟
- 工業自動化中機器視覺的發展趨勢
- 工業污染防治技術
- 工業綠色化改造的實踐與思考
- 工業質量管理與質量控制方法探討
- 工業自動化技術的應用與發展趨勢
- 期末試卷(五)(含答案含聽力原文無聽力音頻)-2024-2025學年人教PEP版英語(新教材)三年級下冊
- 湖南2024生地會考試卷及答案
- 廣東省深圳市2024年中考英語真題(含答案)
- 奇瑞入職在線測評題庫
- 墻面干掛瓷磚技術交底
- biggs學習策略問卷SPQ-英文版
- 1379]國開電大本科《人文英語3》歷年期末考試(第三大題閱讀選擇題)題庫
- 新聞發布系統-需求規格說明書
- (完整word版)最新防雷裝置檢測工程質量管理手冊
- DL_5000-2000_火力發電廠設計技術規程
- 四害密度監測工作實施方案
評論
0/150
提交評論