四乘四键盘显示.doc

四乘四键盘显示.doc

ID:57021114

大小:42.00 KB

页数:8页

时间:2020-07-31

四乘四键盘显示.doc_第1页
四乘四键盘显示.doc_第2页
四乘四键盘显示.doc_第3页
四乘四键盘显示.doc_第4页
四乘四键盘显示.doc_第5页
资源描述:

《四乘四键盘显示.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、四乘四键盘显示一、设计要求4*4矩阵键盘共16个键,每按一次键,数码管就显示一次按键代表的值。二、元件选取单片机:STC89C52RC;电阻:470Ω;发光二极管;4*4键盘;共阳极七段数码管三、设计思想本设计硬件上采用STC89C52RC单片机的最小系统,单片机的P1口与键盘相连,P1.0—P1.3管脚分别与键盘的四行连接,P1.4—P1.7管脚分别与键盘的四列相连;P0口P1.0—P1.7管脚与数码管1的a—dp相连,P2口P2.0—P2.7管脚分别与数码管2的a—dp相连,数码管的公共端接+5V电源,控制数码管的显示;发光二极管的

2、阴极与单片机的P3.0管脚连接,阳极与+5V电源连接,低电平有效,控制二极管发光;程序上采用定时扫描方式,利用定时T0产生50ms定时中断,CPU响应中断后进入Scan_Key()子程序对键盘进行扫描,对P1口初值0xf7扫描第一行,进入延时程序消抖动后,进入switch()语句,屏蔽行的低四位,取列的高四位,检测哪一列有键按下,若有键按下,标志位FLAG0=1,发光二极管的到低电平发光;令P1口的初值右移一位后或0x80进行高位补一,扫描第二行,如此循环右移,四行便全都检测到了。当有键按下时,m!=0xf0,进入while循环不停地执

3、行m&0xf0语句,使m=0xf0;按键松开后,m=0xf0跳出while循环,执行中断程序,显示按键的值。如此软件与硬件结合,能合理的完成设计要求,每按一次键,数码管就显示一次按键代表的值。四、原理图YNY开始开定时器中断,定时器0初始化是否有键按下?键盘扫描发光二极管发光,确定按键值中断程序开始数码管显示按键值定时器0重装初值中断返回数码管显示按键值按键是否放开?N四、程序流程五、调试过程调试过程中,遇到了以下问题:一是数码管不能正常显示,经检查是数码管公共端未接电源,连接后数码管还是不能正常显示,经检查是单片机接触不良,将单片机拔

4、出,对照底座重新插入,然后在仿真数码管显示正常;二是发光二极管在按键按下后不能正常发光,经检查是软件编程存在缺陷,定时时间短,单片机接收不到二极管的低电平,故不发光。经改进后,将二极管管脚赋低电平的语句嵌入到键盘扫描程序中,二极管工作正常。六、程序清单#include#defineRELOAD_H(65536-50000)/256;//定义定时器0重装值#defineRELOAD_L(65536-50000)%256;externvoidTimer0_Init(void);//定时器初始化子函数externvoidDe

5、lay(unsignedintn);externvoidScan_Key(void);unsignedchardispcode[2];unsignedchardofly[16];unsignedcharptr,m;unsignedintt,c;bitFLAG0=0;//定义是否有键按下sbitBeep=P3^0;//发光二极管管脚voidmain(void){Timer0_Init();while(1){Scan_Key();//扫描键盘}}voidTimer0_Init(void)//定时器0初始化{TMOD=0x01;//定时器0,

6、方式1TL0=RELOAD_L;//TL0定时器0低8位计数器TH0=RELOAD_H;//TH0定时器0高8位计数器TR0=1;//定时器/计数器0启动位.//TR0=1:开始计时或计数ET0=1;//定时器/计数器0中断使能EA=1;//全局中断使能}voidTimer0_ISR(void)interrupt1//定时器0中断服务程序{P0=dofly[c];P2=dofly[t];TL0=RELOAD_L;//定时器0初值重装TH0=RELOAD_H;}voidDelay(unsignedintn)//延时{unsignedint

7、i,j;for(i=0;i

8、按下{case0x70:ptr=i*4;//第一行被按否?如有则是tab[i*4]键FLAG0=1;Beep=0;//表示有按键break;case0xb0:ptr=i*4+1;//第二行被按否?如有则是t

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。