HD7279A的原理与应用
接口程序实例:
MOV P1,#0F9H;I/O口初始化
ACALL DEY25;等待25ms复位时间
MOV 029H,#0A4H;发复位指令
ACALL SEND
SETB P1.0;置CS高电平
MAIN: JB P1.3, MAIN;检测按键,无键按下等待
MOV 029H,#15H;发读键盘指令
ACALL SEND
ACALL RECE
SETB P1,0;置CS高电平
MOV B,#10;十六进制键码转换成BCD码, ;以备显示
MOV A,028H
DIV AB
MOV R1,A
MOV 029H,#0C9H;发送键码的十位值,按 ;方式1译码下载显示
ACALL SEND
MOV 029H,R1
ACALL SEND
MOV 029H,#0C8H;发送键码的个位值,按 ;方式1译码下载显示
ACALL SEND
MOV 029H,B
ACALL SEND
SETB P1.0;置CS高电平
WAIT: JNB P1.3,WAIT
AJMP MAIN
SEND: MOV R2,#08H;发送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;待发数据左移
RL A
MOV 029H,A
ACALL DEY2;延时8μs(T2)
CLR P1.1;置CLK低电平
ACALL DEY2;延时8μs(T3)
DJNZ R2,S_LOOP;检测8位是否发送完毕
CLR P1.2;发送完毕,DATA端置低,返回
RET
RESE: MOV R2,#08H;接收8位
SETB P1.2;DATA端置为高电平,输入状态
ACALL DEY1;延时50μs(T5)
R_LOOP:SETB P1.1;置CLK高电平
ACALL DEY2;延时8μs(T6)
MOV 028H,A
RL A;接收数据左移1位
MOV 028H,A
MOV C,P1.2;接收1位数据
MOV 028H.0,C
CLR P1.1;置CLK低电平
ACALL DEY2;延时8μs
DJNZ R2,R_LOOP;接收8位是否发送完毕
CLR P1.2;接收完毕,DATA端重新置成低电平(输出状态)
RET延时子程序略。MES
参考文献
1 何立民MCS-51系列单片机应用系统设计.北京:北京航空航天大学出版社,1990
2 王幸之钡テ机应用系统抗干扰技术.北京:北京航空航天大学出版社,2000
评论