1、单片机课程设计报告数码管显示4X4矩阵键盘按键号课程设计报告书设计名称: 单片机原理与应用 题 目: 数码管显示4X4矩阵键盘按键号 专 业: 计算机科学与技术 日 期: 2012 年 6 月 11日一设计目的:1) 了解单片机系统实现LED动态显示的原理及方法;2) 较为详细了解8051芯片的性能;3) 能够了解到单片机系统的基本原理,了解单片机控制原理;4) 掌握AT89C51程序控制方法;5) 掌握AT89C51 C语言中的设计和学会分析程序,进而能够根据自己的需要编写代码;6) 掌握4X4矩阵式键盘程序识别原理;7) 掌握4X4矩阵式键盘的设计方法;8) 学习键盘的扫描方式和应用程序设
2、计;9) 培养根据课题需要选学参考书籍、查阅手册和文献资料的能力;10) 能够按课程设计的要求编写课程设计报告,能够正确反映设计和实验成果。二设计要求与主要内容: 设计要求:单片机的P1口P1.0P1.7连接4X4矩阵键盘,P0口控制一只P0口控制一只数码管,当44矩阵键盘中的某一按键按下时,数码管上显示对应的键号。例如,1号键按下时,数码管显示“1”, 二号按下的时候,数码管显示“2”,14号键按下时,数码管显示“E”等等。主要内容:1)44矩阵键盘程序识别原理 。 2)每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线都连接到AT89C51中,通过按键K0
3、K16,来在数码管显示不同的值。 实验步骤:1) 启动keiuvision3 2)新建工程命名为单片机的C语言设计与应用 3)新建文件并另存为C51c.c 4)在SourceGroop1导入文件 5)编写代码,并生成C语言设计与应用.hex文件。6) 在Proteus中设计电路图 7) 将keil与Proteus联机调试,记下实验记录,得出实验结果。三设计程序原理:(包含仿真图和流程图) 1)主程序流程图 2)程序流程图 :结束,返回3)仿真图四程序代码#include #define uchar unsigned char #define uint unsigned int /段码 ucha
4、rcode DSY_CODE=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00; sbit BEEP=P37; /上次按键和当前按键的序号,该矩阵中序号范围 015,16 表示无按键 uchar Pre_KeyNo=16,KeyNo=16; /延时 void DelayMS(uint x) uchar i; while(x-) for(i=0;i40x0f; /按键后 f0 变成 XXXX0000,X 中有 1 个为 0,三个仍为 1;高4位转移到低 4 位并异或得到改变的
5、值 switch(Tmp) /对 03 行分别附加起始值 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
6、!=KeyNo) P0= DSY_CODEKeyNo; 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等的工作原理及组成部分作用的了解。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1