1、基于 7279的键盘和 LED数码显示的课程设计设计内容2.1 键盘和LED 数码管显示设计按键和显示(通常称为人机接口)是单片机系统的最基础部分,实验仪采用当前应用广泛的HD7279A 串行接口8 位LED 及64 键键盘智能控制芯片,可同时驱动8位共阴式数码管(或64 只独立LED)以及连接多达64 键的键盘矩阵,单片即可完成LED 显示、键盘接口的全部功能。2.2 设计环境Super ICES-51 80C51 单片机实验仪使用当前流行的Keil C51 开发软件,采用uVision2 集成开发环境。一、预备知识有关 HD7279A 的详细使用说明见使用手册。二、设计目的掌握HD7279
2、A的使用,熟悉单片机人机接口设计,熟悉I2C总线的应用,提高用户实际应用的能力。三、设计内容1、设计键盘、LED 显示电路原理图;2、设计程序流程图;3、编程调试,利用HD7279A 控制键盘和显示,要求任意按下键,在LED 最右位显示对应键号值,其余显示值左移一位。四、参考接线1、使用跳线器连接JP211;2、使用导线连接MON51 仿真模块与键盘显示模块的相应的点,如A8 和 DAT,A9 和 CLK,A10 和 CS,INT0 和 KEY。3、五、程序BIT_COUNT DATA 07FHTIMER DATA 07EHTIMER1 DATA 07DHNUM DATA 07CHDATA_I
3、N DATA 020HDATA_OUT DATA 021HDAT BIT P1.2KEY BIT P1.3CS BIT P1.4CLK BIT P1.5ORG 000HJMP STARTORG 100HSTART: MOV SP,#2FHMOV P1,#0FFH ;I/O 输入输出定义LCALL LONG_DELAY ;长延时MOV DATA_OUT,#0A4H ;复位LCALL SENDMOV DATA_OUT,#0BFH ;闪烁LCALL SENDSETB CSLCALL DELAYMOV DATA_OUT,#0A4H ;复位MOV P1,#11011011BMOV TIMER,#50ST
4、ART_DELAY: MOV TIMER1,#255START_DELAY1: DJNZ TIMER1,START_DELAY1DJNZ TIMER,START_DELAYMOV DATA_OUT,#10100100B ;A4H 复位指令CALLSENDSETB CSMAIN: JB KEY,MAINMOV DATA_OUT,#00010101B ;15H 读键盘数据指令CALLSENDCALLRECEIVESETB CSMOV A,DATA_INMOV NUM,AMOV DATA_OUT,#10100001BCALLSENDMOV DATA_OUT,#11001000BCALLSENDMOV
5、 A,NUMMOV DATA_OUT,ACALLSENDSETB CSWAIT: JNB KEY,WAIT ;等待按键松开JMP MAIN;*; 向 HD7279 发送字符;*SEND: MOV BIT_COUNT,#8CLR CSCALLLONG_DELAYSEND_LOOP: MOV C,DATA_OUT.7 MOV DAT,CSETB CLK ; CLKMOV A,DATA_OUT ;RL AMOV DATA_OUT,ACALL SHORT_DELAY ;CLR CLK ; CLKCALL SHORT_DELAY ;DJNZ BIT_COUNT,SEND_LOOP ; 8CLR DAT
6、;RET;*; 从 HD7279 接受字符;*RECEIVE: MOV BIT_COUNT,#8 SETB DAT CALL LONG_DELAY RECEIVE_LOOP: SETB CLK CALL SHORT_DELAY ;MOV A,DATA_IN ;RL AMOV DATA_IN,AMOV C,DAT ;MOV DATA_IN.0,CCLR CLK ; CLKCALL SHORT_DELAYCLR DAT ; DAT ( )DJNZ BIT_COUNT,RECEIVE_LOOP ; 8CLR DAT ;RET;*; 延时子程序;*LONG_DELAY: MOV TIMER,#25 ; 50uSDELAY_LOOP: DJNZ TIMER,DELAY_LOOPRETSHORT_DELAY: MOV TIMER,#4 ; 8uSSHORT_LP: DJNZ TIMER,SHORT_LPRETDELAY: MOV R0,#40DEL3: MOV R1,#250DEL4: MOV R2,#250DEL5: DJNZ R2,DEL5DJNZ R1,DEL4DJNZ R0,DEL3RETEND