资源描述:
《4-4矩阵键盘和扬声器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、开始初始化延时计算键值显示键值蜂鸣器响一声结束主程序流程图计算键值子程序行线为0,列线为1取P1口值到A屏蔽行线值值放B中暂存行线为1,列线为0取P1口值到A屏蔽列线值合并A,B值A=0FFH?按键判断子程序键值编码放入30H中NY返回按键判断按键判断按键判断子程序计算键值子程序查编码表取值到A键值加1A=键值编码(30H值)?Y键值放入31H中返回N显示键值子程序显示子程序查段码表取值到A取显示值(31H值)段码值送P0口位码值送P2口返回ORG00HLJMPMAINORG30HMAIN:MOVP2,#0FFH;初始化MOVP0,#0F
2、FHMOVP1,#0FFHMOV30H,#00H;键值编码放置单元MOV31H,#00H;键值放置单元LOOP:LCALLKEYS;按键判断子程序LCALLDELAY;延时10MSLCALLKEYS;按键判断LCALLJISUAN;计算键值LCALLSHOW;数码管显示键值LCALLBEEP;蜂鸣器滴一声LJMPLOOPKEYS:MOVP1,#0F0H;按键判断子程序,MOVA,P1;有键按下将键值ANLA,#0F0H;编码放进30H中MOVB,AMOVP1,#0FHMOVA,P1ANLA,#0FHORLA,BCJNEA,#0FFH,KE
3、YS1LJMPKEYSKEYS1:MOV30H,ARETJISUAN:MOVR1,#0FFH;计算子程序,JISUAN1:INCR1;把键值计算出来,MOVA,R1;放进31H中。MOVDPTR,#TAB1MOVCA,@A+DPTRCJNEA,30H,JISUAN1MOV31H,R1RETSHOW:MOVA,31H;显示子程序,MOVDPTR,#TAB2;将31H中内容MOVCA,@A+DPTR;显示出来MOVP0,#0FFHMOVP0,AMOVP2,#0FHRETBEEP:MOVR5,#200;蜂鸣器滴一声子程序BEEP1:CLRP3.
4、7;P3.7引脚不断输出LCALLDEL;方波,使蜂鸣器发SETBP3.7;出声音,改变其输LCALLDEL;出频率,可调整蜂DJNZR5,BEEP1;鸣器音调RETDEL:MOVR7,#225;供蜂鸣器使用延时DJNZR7,$RETDELAY:MOVR7,#40;延时10MS子程序D1:MOVR6,#123NOPD2:DJNZR6,D2DJNZR7,D1RETTAB1:;键值编码表DB0EEH,0EDH,0EBH,0E7HDB0DEH,0DDH,0DBH,0D7HDB0BEH,0BDH,0BBH,0B7HDB07EH,07DH,07BH
5、,077HTAB2:;数码管段码表DB0C0H,0F9H,0A4H,0B0HDB099H,092H,082H,0F8HDB080H,090H,088H,083HDB0C6H,0A1H,086H,08EHEND说明:电路图中R17电阻为1K,方能仿真。