简易键盘与显示功能设计.doc
《简易键盘与显示功能设计.doc》由会员分享,可在线阅读,更多相关《简易键盘与显示功能设计.doc(16页珍藏版)》请在沃文网上搜索。
1、武汉理工大学单片机原理与应用课程设计说明书1.设计分析 本次课程设计题目是简易键盘与显示功能设计,设计要求:用并行口设计一键盘显示电路,按键为数字0-9和字母A-F,要求当某个按键按下时,能显示出该按键的值。其中数码管显示部分,本设计将采用七段式共阴极数码管,利用单片机的P3口使用静态显示方式。 键盘输入显示数字部分,扩展为44的矩阵式键盘,共16个按键,对应从数字0到9和英文字母AF共16个符号。使用AT89C51的P1口。 完成电路设计后,还需要编写C语言程序,通过Keil软件编译并生成HEX文件,然后通过Proteus仿真软件读入AT89C51仿真芯片中,最后运行仿真。2.数码管显示与键
2、盘设计2.1数码管的连接及显示原理本设计采用七段式共阴极数码管来完成此项功能。七段式数码管LED是由7个条形发光二极管和一个小圆点发光二极管组成,通过控制各个二极管的明灭组成所需要的字符。数码管一共8个接口,分别对应7个条形二极管和一个小圆点发光二极管,联系到单片机及控制程序中,对应一个8位十六进制数,通过该十六进制数的输入,得到相应的所需字符。数码管如图2.1所示: 图2.1 七段式数码管七段式数码管根据内部发光二极管的接线形式,可分为共阳极和共阴极两种类型。其中,COM为公共端。共阳极接法是低电平亮,高电平灭;共阴极接法是高电平亮,低电平灭。内部结构如图2.2所示。本设计将采用共阴极接法。
3、 图2.2 (左)共阴极和(右)共阳极2.2数码管的显示方式数码管的现实方式有静态和动态显示方式两种。静态显示方式:把多个LED显示器的每一段与一个独立的并行口相连接,而公共端则根据具体情况连接到“VCC”或“GND”,这种连接方式的每一个显示器都要占用一个单独的具有锁存功能的I/O口,单片机只需把要显示的字形代码输入进接口电路即可。因此,使用这种方式对I/O的需求较大,电路也较为复杂,但是具有编程简单,显示稳定,单片机效率较高的优点。动态显示方式:其接口电路是把所有显示器的笔划段同名端连接在一起,而每一个显示器的公共端COM与各自独立的I/O口连接。当单片机输送字形码时,所有显示器接受到相同
4、字型码,但具体哪一个显示器亮,则取决于COM端,而这一端由I/O口控制。所谓动态扫描即分时方法,一位一位的控制各个显示器的COM端,是每个显示器每隔一段时间亮一次,点亮时间即为短暂(约1毫秒),由于视觉暂留和二极管的余辉效应,给人的印象即是一组稳定的数据显示。本设计将采用静态显示方式。2.3键盘设计键盘输入显示数字部分,扩展为44的矩阵式键盘,共16个按键,对应从数字0、1、2、3、4、5、6、7、8、9和英文字母A、b、C、d、E、F共16个符号。使用到AT89C51的P1口。键盘设计如图2.3所示: 图2.3 键盘输入电路及对应输出字符具体按键的对应输出字符及延时将在后面的程序编写中实现。
5、3.系统总电路设计及分析本设计在Proteus软件中完成,系统总电路图如图3.1所示: 图3.1 系统总电路图如图3.1所示,P1.0P1.7口用来接矩阵键盘;P2口没有使用,全部置空;P3口用来连接七段式数码管;而P0口,因为内部没有上拉电阻,故利用排阻RP1来作上拉电阻,如图3.2所示: 图3.2 排阻RP1该C51单片机的XTAL1和XTAL2用来接内部晶振电路,如图3.3所示: 图3.3 晶振电路复位电路及单片机端口的使用,低电平时,将锁定RESET,保持高电平时,可访问内部存储器,如图3.4所示: 图3.4 复位电路及4. C语言程序设计4.1程序流程图该程序功能是扫描键盘是否有按键
6、按下并做相应显示。流程图如图4.1所示: 图4.1 程序流程图4.2程序分析程序根据P1口读入的状态,判断是否输出字符,输出具体哪个字符。由于七段式数码管形状类似于数字“8”,故在输出英文字母时,为了显示方便,分别显示为大小写不一的“A”、“b”、“C”、“d”、“E”、“F”。因为采用共阴极数码管,所以列出所要显示的16个数字、字母对应的十六进制数据代码:00x3f;10x06;20x5b;30x4f;40x66;50x6d;60x7d;70x07;80x7f;90x6f;A0x77;b0x7c;C0x39;d0x5e;E0x79;F0x71;因为要扫描P1口的高4位,即判断矩阵键盘的列,固
7、有:选取P1.0口的代码为:P1=0xfe;选取P1.1口的代码为:P1=0xfd;选取P1.2口的代码为:P1=0xfb;选取P1.3口的代码为:P1=0xf7;为了消除键抖动可能带来的影响,还应设计延时程序来去抖动。为了提高程序的效率和可读性,将延时程序、显示程序和键盘扫描程序设计为子函数。并利用while循环,不断检测按键是否被按下。4.3 C语言程序及注释#includereg51.h /51单片机头文件#define uchar unsigned char#define uint unsigned intuchar code table= /共阴极数码管0至9,A至F0x3f,0x0
8、6,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;void delay(uint xms) /延时函数uint i,j;for(i=xms;i0;i-) for(j=100;j0;j-); void display(uchar num) /显示函数P3=tablenum;void keyscan() /键盘扫描函数uchar temp,key;P1=0xfe; /P1.0=0,扫描列temp=P1; /读P1口状态给temptemp=temp&0xf0; /与if(temp!=0xf0) /不等于0x
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 键盘 显示 功能设计