HD7279A的原理與應(yīng)用
接口程序?qū)嵗?
MOV P1,#0F9H;I/O口初始化
ACALL DEY25;等待25ms復(fù)位時間
MOV 029H,#0A4H;發(fā)復(fù)位指令
ACALL SEND
SETB P1.0;置CS高電平
MAIN: JB P1.3, MAIN;檢測按鍵,無鍵按下等待
MOV 029H,#15H;發(fā)讀鍵盤指令
ACALL SEND
ACALL RECE
SETB P1,0;置CS高電平
MOV B,#10;十六進制鍵碼轉(zhuǎn)換成BCD碼, ;以備顯示
MOV A,028H
DIV AB
MOV R1,A
MOV 029H,#0C9H;發(fā)送鍵碼的十位值,按 ;方式1譯碼下載顯示
ACALL SEND
MOV 029H,R1
ACALL SEND
MOV 029H,#0C8H;發(fā)送鍵碼的個位值,按 ;方式1譯碼下載顯示
ACALL SEND
MOV 029H,B
ACALL SEND
SETB P1.0;置CS高電平
WAIT: JNB P1.3,WAIT
AJMP MAIN
SEND: MOV R2,#08H;發(fā)送8位
CLR P1.0
ACALL DEY1;延時50μs(T1)
S_LOOP:MOV C,029H.7;輸出1位到HD7279A的 ;DATA端
MOV P1.2,C
SETB P1.1;置CLK高電平
MOV A,029H;待發(fā)數(shù)據(jù)左移
RL A
MOV 029H,A
ACALL DEY2;延時8μs(T2)
CLR P1.1;置CLK低電平
ACALL DEY2;延時8μs(T3)
DJNZ R2,S_LOOP;檢測8位是否發(fā)送完畢
CLR P1.2;發(fā)送完畢,DATA端置低,返回
RET
RESE: MOV R2,#08H;接收8位
SETB P1.2;DATA端置為高電平,輸入狀態(tài)
ACALL DEY1;延時50μs(T5)
R_LOOP:SETB P1.1;置CLK高電平
ACALL DEY2;延時8μs(T6)
MOV 028H,A
RL A;接收數(shù)據(jù)左移1位
MOV 028H,A
MOV C,P1.2;接收1位數(shù)據(jù)
MOV 028H.0,C
CLR P1.1;置CLK低電平
ACALL DEY2;延時8μs
DJNZ R2,R_LOOP;接收8位是否發(fā)送完畢
CLR P1.2;接收完畢,DATA端重新置成低電平(輸出狀態(tài))
RET延時子程序略。MES
參考文獻
1 何立民MCS-51系列單片機應(yīng)用系統(tǒng)設(shè)計.北京:北京航空航天大學(xué)出版社,1990
2 王幸之鋇テ機應(yīng)用系統(tǒng)抗干擾技術(shù).北京:北京航空航天大學(xué)出版社,2000
評論