资源描述:
《基于7279的键盘和led数码显示的课程设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于7279的键盘和LED数码显示的课程设计设计内容2.1键盘和LED数码管显示设计按键和显示(通常称为人机接口)是单片机系统的最基础部分,实验仪采用当前应用广泛的HD7279A串行接口8位LED及64键键盘智能控制芯片,可同时驱动8位共阴式数码管(或64只独立LED)以及连接多达64键的键盘矩阵,单片即可完成LED显示、键盘接口的全部功能。2.2设计环境SuperICES-5180C51单片机实验仪使用当前流行的KeilC51开发软件,采用uVision2集成开发环境。一、预备知识有关HD7279A的详
2、细使用说明见使用手册。二、设计目的掌握HD7279A的使用,熟悉单片机人机接口设计,熟悉I2C总线的应用,提高用户实际应用的能力。三、设计内容1、设计键盘、LED显示电路原理图;2、设计程序流程图;3、编程调试,利用HD7279A控制键盘和显示,要求任意按下键,在LED最右位显示对应键号值,其余显示值左移一位。四、参考接线1、使用跳线器连接JP21—1;2、使用导线连接MON51仿真模块与键盘显示模块的相应的点,如A8和DAT,A9和CLK,A10和CS,INT0和KEY。3、五、程序BIT_COUNTD
3、ATA07FHTIMERDATA07EHTIMER1DATA07DHNUMDATA07CHDATA_INDATA020HDATA_OUTDATA021HDATBITP1.2KEYBITP1.3CSBITP1.4CLKBITP1.5ORG000HJMPSTARTORG100HSTART:MOVSP,#2FHMOVP1,#0FFH;I/O输入输出定义LCALLLONG_DELAY;长延时MOVDATA_OUT,#0A4H;复位LCALLSENDMOVDATA_OUT,#0BFH;闪烁LCALLSENDSETB
4、CSLCALLDELAYMOVDATA_OUT,#0A4H;复位MOVP1,#11011011BMOVTIMER,#50START_DELAY:MOVTIMER1,#255START_DELAY1:DJNZTIMER1,START_DELAY1DJNZTIMER,START_DELAYMOVDATA_OUT,#10100100B;A4H复位指令CALLSENDSETBCSMAIN:JBKEY,MAINMOVDATA_OUT,#00010101B;15H读键盘数据指令CALLSENDCALLRECEIVES
5、ETBCSMOVA,DATA_INMOVNUM,AMOVDATA_OUT,#10100001BCALLSENDMOVDATA_OUT,#11001000BCALLSENDMOVA,NUMMOVDATA_OUT,ACALLSENDSETBCSWAIT:JNBKEY,WAIT;等待按键松开JMPMAIN;*******************************************;向HD7279发送字符;*******************************************SEND:
6、MOVBIT_COUNT,#8CLRCSCALLLONG_DELAYSEND_LOOP:MOVC,DATA_OUT.7MOVDAT,CSETBCLK;CLKMOVA,DATA_OUT;RLAMOVDATA_OUT,ACALLSHORT_DELAY;CLRCLK;CLKCALLSHORT_DELAY;DJNZBIT_COUNT,SEND_LOOP;8CLRDAT;RET;*******************************************;从HD7279接受字符;*************
7、******************************RECEIVE:MOVBIT_COUNT,#8SETBDATCALLLONG_DELAYRECEIVE_LOOP:SETBCLKCALLSHORT_DELAY;MOVA,DATA_IN;RLAMOVDATA_IN,AMOVC,DAT;MOVDATA_IN.0,CCLRCLK;CLKCALLSHORT_DELAYCLRDAT;DAT()DJNZBIT_COUNT,RECEIVE_LOOP;8CLRDAT;RET;******************
8、*************************;延时子程序;*******************************************LONG_DELAY:MOVTIMER,#25;50uSDELAY_LOOP:DJNZTIMER,DELAY_LOOPRETSHORT_DELAY:MOVTIMER,#4;8uSSHORT_LP:DJNZTIMER,SHORT_LPRETDELAY:MOVR0,#40DEL3:M