单片机矩阵键盘与数码管课程设计文档格式.docx

上传人:b****7 文档编号:21838612 上传时间:2023-02-01 格式:DOCX 页数:15 大小:742.19KB
下载 相关 举报
单片机矩阵键盘与数码管课程设计文档格式.docx_第1页
第1页 / 共15页
单片机矩阵键盘与数码管课程设计文档格式.docx_第2页
第2页 / 共15页
单片机矩阵键盘与数码管课程设计文档格式.docx_第3页
第3页 / 共15页
单片机矩阵键盘与数码管课程设计文档格式.docx_第4页
第4页 / 共15页
单片机矩阵键盘与数码管课程设计文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

单片机矩阵键盘与数码管课程设计文档格式.docx

《单片机矩阵键盘与数码管课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《单片机矩阵键盘与数码管课程设计文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

单片机矩阵键盘与数码管课程设计文档格式.docx

LED数码管的外部有10个引脚,其中3,8脚为公共端也称位选端,其余8个引脚称为段选端,当要使某一位数码管显示某一数字((0-9中的一个)必须在这个数码管的段选端加上与数字显示数字对应的8位段选码(也称字形码),在位选端加上低电平即可。

由于系统要显示的内容比较简单,显示量不多,所以选用数码管既方便又经济。

LED有共阴极和共阳极两种,二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。

一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)a~g,另一个小数点为dp发光二极管。

当在某段发光二极管施加一定的正向电压时,该段笔划即亮;

不加电压则暗。

五、时钟电路与复位电路

时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:

内部振荡和外部振荡。

MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,如图2-2所示在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。

电路图中外接晶体以及电容C2和C3构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值为30pF左右,晶振频率选11.0592MHz。

为了初始化单片机内部的某些特殊功能寄存器,必须利用复位电路,复位

后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。

单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两

个机器周期时间以上的高电平,即可引起系统复位,但如果RST引脚上持续为高电平,单片机就处于循环复位状态。

复位后系统将输入/输出(1/0)端口寄存器置为FFH,堆栈指针SP置为07H,SBUF内置为不定值,其余的寄存器全部清0,内部RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。

复位操作有两种情况,即上电复位和手动(开关)复位。

本系统采用上电复位方式。

电路图中R1和Cl组成上电复位电路,其值R取为1KΩ,C取为10pF。

六、软件系统设计

1、程序流程图:

2、按键检测与数码管显示

P3口的低4位控制行输入,高4位控制列输入当没有按键按下时,P3.0—P3.3与P3.4—P3.7之间开路。

当有键闭合时,与闭合键相连的两条I/O口线之间短路。

判断有无按键按下的方法是:

第一步,置行线P3.0—P3.3为输入状态,从列线P3.4—P3.7输出低电平,读入行线数据,若某一行线为低电平,则该行线上有键闭合。

第二步,列线轮流输出低电平,从行线P3.0—P3.3读入数据,若有某一行为低电平,则对应的列线上有键按下。

综合一二两步的结果,可确定按键编号。

但是按键闭合一次只能进行一次键功能操作,因此须等到按键释放后,再进行键功能操作,否则按一次键,有可能会连续多次进行同样的按键操作。

当确定了是哪一个按键按下后,通过软件程序的设计,返回键盘扫描的键值,转化成十六进制的数据后由PO口输出给数码管显示。

3、LED显示段码表

字型

共阳极段

共阴极段

C0H

3FH

9

90H

6FH

1

F9H

06H

A

88H

77H

2

A4H

5BH

B

83H

7CH

3

B0H

4FH

C

C6H

39H

4

99H

66H

D

A1H

5EH

5

92H

6DH

E

86H

79H

6

82H

7DH

F

84H

71H

7

F8H

07H

空白

FFH

00H

8

80H

7FH

P

8CH

73H

 

七、PROTEUS仿真图

八、系统的程序:

#include<

reg52.h>

#defineuintunsignedint

#defineucharunsignedchar

ucharcodetable[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71,0};

ucharcodewe[]={

7,6,5,4,3,2,1,0};

uinti;

sbitdula=P2^6;

sbitwela=P2^7;

ucharnum,num1,temp;

voiddelay(uintz)

{

ucharx,y;

for(x=z;

x>

0;

x--)

for(y=110;

y>

y--);

}

ucharkeyscan();

voidmain()

{

num=17;

//打开时数码管什么也不显示

dula=1;

//关闭数码管

P0=0;

dula=0;

//P2=2;

while

(1)

{

num1=keyscan();

for(i=0;

i<

8;

i++)

{

P0=table[num1-1];

P2=we[i];

delay

(1);

}

ucharkeyscan()//带有返回值的函数

P3=0xfe;

//检测第一行

temp=P3;

temp=temp&

0xf0;

while(temp!

=0xf0)

{

delay(5);

//延时去抖

temp=P3;

temp=temp&

while(temp!

=0xf0)//不等于0xf0说明确实是有建按下

{

temp=P3;

//再读回P3口的值

switch(temp)

{

case0xee:

num=1;

break;

case0xde:

num=2;

case0xbe:

num=3;

case0x7e:

num=4;

}

=0xf0)//检测是否松手,不佳松手检测退不出第二个while循环

temp=P3;

temp=temp&

}

}

P3=0xfd;

//检测第二行

//读回P3口的值

case0xed:

num=5;

case0xdd:

num=6;

case0xbd:

num=7;

case0x7d:

num=8;

while(temp!

=0xf0)//检测是否松手

P3=0xfb;

//检测第三行

case0xeb:

num=9;

case0xdb:

num=10;

case0xbb:

num=11;

case0x7b:

num=12;

P3=0xf7;

//检测第四行

case0xe7:

num=13;

case0xd7:

num=14;

case0xb7:

num=15;

case0x77:

num=16;

returnnum;

实验总结与讨论

通过这次单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。

创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。

这个设计过程中,我们由P3.0—P3.3(行)和P3.4—P3.7(列)组成4*4矩阵键盘,P0口接LED数码管静态显示电路。

由于P0口内部无上拉电阻,因此必须外部接上拉电阻,其阻值的选择可以根据LED数码管发光电流及其亮度来决定,参考值为560欧姆。

编写4*4键盘的驱动程序。

编写主程序,当按键按下时,能够在数码管显示器与按键的键值对应的数字。

设计结果能够符合题意,成功完成了此次实习要求,我们不只在乎这一结果,更加在乎的,是这个过程。

这个过程中,我们花费了大量的时间和精力,更重要的是,我们在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作,也非常感谢老师在实习过程中的指导与帮助。

实物演示图

序号

器件名称

器件数量

AT89S51

插座

单片机开发板

1位数码管

12MHZ晶振

30pF电容

20uF电容

9脚排阻(470*8)

按钮

17

10

10K电阻

11

1K电阻

200欧姆电阻

电源插孔

电源开关

发光二极管

下载接口

实验电源(220V转5V)

元件清单

参考文献

[1]51单片机开发与应用.中国石油大学出版社,2009

[2] 谢自美.电子线路设计•实验•测试.:

华中科技大学出版社,2008

[3] 陈小忠.单片机实用接口技术子程序[M].人民邮电出版社,2005

[4] 阎石.数字电子技术基础(第三版).北京:

高等教育出版社,2003

[5] 廖常初.现场总线概述[J].电工技术,2001

[6]电子工业出版社.单片机设计与应用[M].

单片机原理与应用课程设计

题目:

矩阵键盘与数码管显示

专业班级:

电气工程及其自动化09级4班

学号:

20092186

姓名:

温连朋

2012年11月27日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1