AT89C51单片机对44矩阵键盘进行动态扫描报告Word格式.docx
- 文档编号:20608986
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:9
- 大小:163.97KB
AT89C51单片机对44矩阵键盘进行动态扫描报告Word格式.docx
《AT89C51单片机对44矩阵键盘进行动态扫描报告Word格式.docx》由会员分享,可在线阅读,更多相关《AT89C51单片机对44矩阵键盘进行动态扫描报告Word格式.docx(9页珍藏版)》请在冰豆网上搜索。
2、按照设计要求绘制电路原理图;
3、能够按要求对所设计的电路进行仿真;
基本要求及说明:
1、按照设计要求自行定义电路图纸尺寸;
2、设计任务如下:
AT89C51单片机对4×
4矩阵键盘进行动态扫描,当按键盘的键时,可将相应按键值(0~F)实时显示在数码管上;
3、按照设计任务在Proteus7Professional中绘制电路原理图;
4、根据设计任务的要求编写程序,画出程序流程图,并在Proteus下进行仿真,实现相应功能。
目录
1.任务说明1
2.原理图绘制说明1
3.流程图绘制以及说明2
4.Proteus仿真说明4
5.体会及合理化建议7
附录电路原理图8
参考文献9
1.任务说明
AT89C51单片机对4×
按照设计任务在Proteus7Professional中绘制电路原理图;
根据设计任务的要求编写程序,画出程序流程图,并在Proteus下进行仿真,实现相应功能。
二.原理图绘制说明
1.原理图说明
本实验是AT89C51单片机对4×
4矩阵键盘进行动态扫描,当按键盘的键时,可将相应按键值(0~F)实时显示在数码管上。
4×
4矩阵键盘是用4条I/O线作为行线,4条I/O线作为列线,在行线和列线的交叉点上设置一个按键,每个按键有它的行值和列值,用4条行线和列线分别接P1.0-P1.7,要进行数码管动态扫描,就要将数码管的七段a~f相应的与P0.0-P0.6相连接,即把输入端口P1.0-P1.7连接到4×
4行列式按键上作为输入,P0.0-P0.6作为输出端口控制共阳级数码管a-g,对应的a-g通过程序进行点亮或者熄灭来显示数值(0~F)。
2.原理图绘制
(1)打开Proteus软件,进入其界面,然后新建一个图纸文件,软件默认为LandspaceA4纸张,符合我们的要求,所以不需要修改。
(2)开始绘图,点击按钮P,弹出选择添加器件框图,如图1所示,在keywords里直接输入所需器件的名称或者在category的下面各个选项里一次查找所需的器件名称,然后点击ok
图1.选择添加器件框图
(3)依次添加AT89C51芯片,7SEG-COM-CATHODE共阳极的7段数码管,16个按键,八个电阻R0~R7,一个晶片x1,3个电容,地及电源。
(4)按照设计的要求正确连接电路,连接时注意管脚的分配及AT89C51的工作原理。
(5)对连接好的电路图进行仿真,如有错误要先按下暂停,然后对电路作进一步的调整与修改,再进行仿真,保存原理图文件。
三.流程图绘制以及说明
1.流程图绘制说明
程序开始先对第一列进行扫描,如果没有按键,再对第二列、第三列、第四列分别进行扫描,如果没有返回到开始;
如果第一列有按键,在分别对第一行、第二行、第三行、地四行,进行扫描,若有按键按下分别显示0、1、2、3;
第二列、第三列、第四列类似第一列,分别对第一行、第二行、第三行、第四行进行扫描,有按键相应的显示出数值。
2.流程图
N
Y
Y
图2.流程图
四.Proteus仿真说明
1.现在keil软件里编译连接C程序,使生成.HEX文件。
C程序:
#include<
reg51.h>
#defineucharunsignedchar
#defineuintunsignedint
#defineSCANPORTP1
sbitspk=P3^0;
ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,
0x77,0x7c,0x39,0x5e,0x79,
0x71};
ucharuca_LineScan[4]={0xEF,0xDF,0xBF,0x7F};
ucharucKeyScan()
{
ucharTemp=0;
ucharucRow=0,ucLine=0;
for(ucLine=0;
ucLine<
4;
ucLine++)
{
SCANPORT=uca_LineScan[ucLine];
Temp=SCANPORT&
0x0F;
if(Temp!
=0x0F)
{
switch(Temp)
{
case0x0E:
ucRow=10;
break;
case0x0D:
ucRow=20;
case0x0B:
ucRow=30;
case0x07:
ucRow=40;
default:
ucRow=50;
}
break;
}
}
SCANPORT=0x0F;
returnucRow+ucLine+1;
}
voidvKeyProcess(unsignedcharucKeyCode)
switch(ucKeyCode)
case11:
P0=table[0];
spk=1;
case12:
P0=table[1];
case13:
P0=table[2];
case14:
P0=table[3];
case21:
P0=table[4];
case22:
P0=table[5];
case23:
P0=table[6];
case24:
P0=table[7];
case31:
P0=table[8];
case32:
P0=table[9];
case33:
P0=table[10];
case34:
P0=table[11];
case41:
P0=table[12];
case42:
P0=table[13];
case43:
P0=table[14];
case44:
P0=table[15];
default:
voidmain()
spk=0;
P0=0;
while
(1)
{
vKeyProcess(ucKeyScan());
spk=0;
}
}2.仿真结果
将此程序在伟福汇编器中生成的“.hex”文件,导入AT89C51芯片中,用鼠标右键点击AT89C51,然后点鼠标左键,弹出编辑元件的框图,如图2所示,在programfile里添加.Hex文件,再点OK。
图2.载入“.hex”文件
点击“开始”按键,进行仿真,点击右边4*4按键,则数码管显示0~F,仿真结果符合实验要求,仿真结果如图3所示
图3仿真图
五.体会及合理化说明
通过这次课程设计,Proteus软件工作环境的熟悉以及掌握基本的操作,实现电路原理图的绘制及电路仿真的实现,我还认识到理论与实际相结合的重要性,理论知识再丰富,没有实际的操作经验是不行的,这样还可以锻炼我们的实际动手操作能力和独立思考能力。
单片机知识在电子领域越来越重要了,在这次课程设计中我又了解了更多单片机的知识,从而也对单片机仿真软件产生了兴趣,学到了书上没有的东西,为以后工作又做了一层铺垫。
在课程设计过程中遇到的一些问题,通过查询资料和结合平时学到的知识,当我们一组的人员一起解决问题。
意识到团队的重要性!
附录电路原理图
参考文献:
1.岂兴名、唐杰、赵沛、矫津毅、常春藤等;
51单片机编程基础与开发实例详解【M】北京:
人民邮电出版社,2008年11月;
页码156-161。
2.兰吉昌;
51单片机应用百例;
北京:
化学工业出版社,2008年12月;
页码:
71-75。
3.李朝青等;
单片机原理及串行外设接口技术;
北京航空航天大学出版社,2008年1月;
页码164-166。
4.张毅刚、刘杰;
第三版;
单片机原理及应用;
哈尔滨:
哈尔滨工业大学出版社,2004年6月;
页码180-187。
5.姜志海、刘连鑫;
单片微型计算机原理及应用;
机械工业出版社;
页码161-163。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AT89C51 单片机 44 矩阵 键盘 进行 动态 扫描 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)