- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机课程设计报告数码管显示4X4矩键盘按键号
课程设计报告书
设计名称: 单片机原理与应用
题 目: 数码管显示4X4矩阵键盘按键号 专 业: 计算机科学与技术
日 期: 2012 年 6 月 11日
一.设计目的:
1) 了解单片机系统实现LED动态显示的原理及方法;
2) 较为详细了解8051芯片的性能;
3) 能够了解到单片机系统的基本原理,了解单片机控制原理;
4) 掌握AT89C51程序控制方法;
5) 掌握AT89C51 C语言中的设计和学会分析程序,进而能够根据自己的需要编写代码;
6) 掌握4X4矩阵式键盘程序识别原理;
7) 掌握4X4矩阵式键盘的设计方法;
8) 学习键盘的扫描方式4×4矩阵键盘识别 。 2每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线
2)程序流程图
:
3)仿真图
四.程序代码
#includereg51.h
#define uchar unsigned char
#define uint unsigned int
//段码
ucharcode DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00};
sbit BEEP=P3^7;
//上次按键和当前按键的序号,该矩阵中序号范围 0~15,16 表示无按键
uchar Pre_KeyNo=16,KeyNo=16;
//延时
void DelayMS(uint x)
{ uchar i;
while(x--) for(i=0;i120;i++);
}
//矩阵键盘扫描
void Keys_Scan()
{ uchar Tmp;
P1=0x0f; //高 4 位置 0,放入 4 行
DelayMS(1);
Tmp=P1^0x0f; //按键后 0f 变成 0000XXXX,X 中一个为 0,3 个仍为1,通过异或把3个1变为 0,唯一的0变为1
switch(Tmp) //判断按键发生于 0~3 列的哪一列
{ case 1: KeyNo=0;break;
case 2: KeyNo=1;break;
case 4: KeyNo=2;break;
case 8: KeyNo=3;break;
default:KeyNo=16; //无键按下
}
P1=0xf0; //低 4 位置 0,放入 4 列
DelayMS(1);
Tmp=P14^0x0f; //按键后 f0 变成 XXXX0000,X 中有 1 个为 0,三个仍为 1;高4位转移到低 4 位并异或得到改变的值
switch(Tmp) //对 0~3 行分别附加起始值 0,4,8,12
{case 1: KeyNo+=0;break;
case 2: KeyNo+=4;break;
case 4: KeyNo+=8;break;
case 8: KeyNo+=12;
}
}
//蜂鸣器
void Beep()
{
uchar i;
for(i=0;i100;i++)
{ DelayMS(1);
BEEP=~BEEP;
}
BEEP=0; }
//主程序
void main()
{ P0=0x00;
BEEP=0;
while(1)
{ P1=0xf0;
if(P1!=0xf0) Keys_Scan(); //获取键序号
if(Pre_KeyNo!=KeyNo)
{ P0=~ DSY_CODE[KeyNo];
Beep();
Pre_KeyNo=KeyNo;
}
DelayMS(100);} }
五.实验结果:
当按键按下k0,显示管显示0,当按键按下k1时显示1,显示管可以显示1,2,3,4,5,6,7,8,9,A,B,C,D,F.
六.实验体会:
这次的实验提高了我的设计能力与对电路的分析能力。同时在软件的编程方面得到了很大的提高,使编程能力得到加强,在此同时对所学的单片机知识得到很大的巩固与加强。本次实验熟悉单片机的使用功能,熟悉了Keil uVision 进行程序调试,利用proteus7.8进行硬件设计。在本实验中,我明白了4X4矩阵键盘按键号是用按键组成的,通过编写C语言程序显示管是完全可以显示出我们想要的信息,在以后的实验中我们可以通过一些可以连接LED、示波器、显示管等来了解如AT89C51、两机之间通信原理、DS12C887等的工作原理及组成
您可能关注的文档
- 副井提升钢丝绳收绳安技术措施.doc
- 剪板机程设计.docx
- 副井卸线掘砌作业规程.doc
- 副变速拨叉工艺规程及铣寸6两侧面夹具设计.docx
- 副立井井筒装备安装施工组织设计X矿井井设施拆除安装施工方案.doc
- 副斜井拉底维修全技术措施.doc
- 力诺科技园5MW一期1MW太阳能光并网发电示范工程招标文件.doc
- 力赛村化广场篮球场施工组织设计方案.doc
- 力诺集团标采购管理规定.docx
- 剪力墙结构高层宅建筑监理规划.doc
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
文档评论(0)