单片机C语言程序设计-4X4矩阵键盘控制条形LED 显示

合集下载

单片机课程设计---4×4矩阵式键盘识别显示电路的设计

单片机课程设计---4×4矩阵式键盘识别显示电路的设计

《单片机原理及应用》课程设计题目:4×4矩阵式键盘与单片机连接与编程专业:测控技术与仪器班级:机电082-1 姓名:学号:指导老师:组员:( 2011.7 .13)目录第1节引言 (2)1.1 4*4矩阵式键盘系统概述 (2)1.2 本设计任务和主要内容 (3)第2节系统主要硬件电路设计 (4)2.1 单片机控制系统原理 (4)2.2 单片机主机系统电路 (5)2.2.1 时钟电路 (8)2.2.2 复位电路 (8)2.2.3 矩阵式键盘电路 (8)2.3 译码显示电路 (9)第3节系统软件设计 (13)3.1 软件流程图 (13)3.2 系统程序设计 (14)第4节结束语 (17)参考文献 (18)第一节引言矩阵式键盘乃是当今使用最为广泛的键盘模式,该系统以N个端口连接控制N*N个按键,即时在LED数码管上。

单片机控制的据这是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是单片机和键盘矩阵电路部分,主要对按键与显示电路的关系、矩阵式技术及设备系统的硬件、软件等各个部分进行实现。

1.1 4*4矩阵式键盘识别显示系统概述矩阵式键盘模式以N个端口连接控制N*N个按键,实时在LED数码管上显示按键信息。

显示按键信息,既降低了成本,又提高了精确度,省下了很多的I/O端口为他用,相反,独立式按键虽编程简单,但占用I/O口资源较多,不适合在按键较多的场合应用。

并且在实际应用中经常要用到输入数字、字母、符号等操作功能,如电子密码锁、电话机键盘、计算器按键等,至少都需要12到16个按键,在这种情况下如果用独立式按键的话,显然太浪费I/O端口资源,为了解决这一问题,我们使用矩阵式键盘。

矩阵式键盘简介:矩阵式键盘又称行列键盘,它是用N条I/O线作为行线,N条I/O线作为列线组成的键盘。

在行线和列线的每个交叉点上设置一个按键。

这样键盘上按键的个数就为N*N个。

这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。

单片机课程设计报告---数码管显示4X4矩阵键盘按键号

单片机课程设计报告---数码管显示4X4矩阵键盘按键号

课程设计报告书设计名称:单片机原理与应用题目:数码管显示4X4矩阵键盘按键号专业:计算机科学与技术日期:2012 年6月 11日一.设计目的:1) 了解单片机系统实现LED动态显示的原理及方法;2) 较为详细了解8051芯片的性能;3) 能够了解到单片机系统的基本原理,了解单片机控制原理;4) 掌握AT89C51程序控制方法;5) 掌握AT89C51 C语言中的设计和学会分析程序,进而能够根据自己的需要编写代码;6) 掌握4X4矩阵式键盘程序识别原理;7) 掌握4X4矩阵式键盘的设计方法;8) 学习键盘的扫描方式和应用程序设计;9) 培养根据课题需要选学参考书籍、查阅手册和文献资料的能力;10) 能够按课程设计的要求编写课程设计报告,能够正确反映设计和实验成果。

二.设计要求与主要内容:设计要求:单片机的P1口P1.0~P1.7连接4X4矩阵键盘,P0口控制一只P0口控制一只数码管,当4×4矩阵键盘中的某一按键按下时,数码管上显示对应的键号。

例如,1号键按下时,数码管显示“1”,二号按下的时候,数码管显示“2”,14号键按下时,数码管显示“E”等等。

主要内容:1)4×4矩阵键盘程序识别原理。

2)每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。

矩阵的行线和列线都连接到AT89C51中,通过按键K0~K16,来在数码管显示不同的值。

实验步骤:1) 启动keiuvision3 2)新建工程命名为单片机的C语言设计与应用3)新建文件并另存为C51c.c 4)在SourceGroop1导入文件 5)编写代码,并生成C语言设计与应用.hex文件。

6)在Proteus中设计电路图7) 将keil与Proteus联机调试,记下实验记录,得出实验结果。

三.设计程序原理:(包含仿真图和流程图)1)主程序流程图2)程序流程图 若无按键按下若无按键按下若无按键按下若无按键按下结束,返回3)仿真图四.程序代码#include<reg51.h>#define uchar unsigned char#define uint unsigned int//段码ucharcodeDSY_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;i<120;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变为1switch(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=P1>>4^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;i<100;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.六.实验体会:这次的实验提高了我的设计能力与对电路的分析能力。

4X4矩阵式键盘输入程序

4X4矩阵式键盘输入程序

4*4键盘程序readkeyboard:begin: acall key_onjnz delayajmp readkeyboard delay:acall delay10msacall key_onjnz key_numajmp beginkey_num:acall key_panl a,#0FFhjz beginacall key_ccodepush akey_off:acall key_onjnz key_offpop aretkey_on: mov a,#00horl a,#0fhmov p1,amov a,p1orl a,#0f0hcpl aretkey_p: mov r7,#0efhl_loop:mov a,r7mov p1,amov a,p1orl a,#0f0hmov r6,acpl ajz nextajmp key_cnext: mov a,r7jnb acc.7,errorrl amov r7,aajmp l_looperror:mov a,#00hretkey_c:mov r2,#00hmov r3,#00hmov a,r6mov r5,#04hagain1:jnb acc.0,out1rr ainc r2djnz r5, again1out1: inc r2mov a,r7mov r5,#04hagain2:jnb acc.4,out2rr ainc r3djnz r5,again2out2: inc r3mov a, r2swap aadd a,r3retkey_ccode:push aswap aanl a,#0fhdec arl a ;行号乘4rl amov r7,apop aanl a,#0fhdec aadd a,r7retdelay10ms:anl tmod,#0f0horl tmod,#01hmov th0,#0d8hmov tl0,#0f0hsetb tr0wait:jbc tf0,overajmp waitclr tr0over:ret单片机键盘设计(二)从电路或软件的角度应解决的问题软件消抖:如果按键较多,硬件消抖将无法胜任,常采用软件消抖。

基于51单片机4乘4矩阵键盘的设计

基于51单片机4乘4矩阵键盘的设计
case 0xbd:KEY=6;break;
case 0x7d:KEY=7;break;
case 0xeb:KEY=8;break;
case 0xdb:KEY=9;break;
case 0xbb:KEY=10;break;
case 0x7b:KEY=11;break;
case 0xe7:KEY=12;break;
控制任务:
编程实现4乘4的矩阵键盘控制连接在P0口和P1口上的16个LED,当按下某键并释放后只有对应的LED灯亮,例如按S0后D0亮,按S1后D1亮。
程序及仿真:
#include<reg51.h>
unsigned char code led[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
b=P2;
a=a|b;
switch(a)
{
case 0xee:KEY=0;break;
case 0xde:KEY=1;break;
case 0xbe:KEY=2;break;
case 0x7e:KEY=3;break;
case 0xed:KEY=4;break;
case 0xdd:KEY=5;break;
{
P0=0xff;
P1=led[n-8];
}}
int main(void)
{
whilsplay(KEY);
}
return 0;
}
更多资源,请关注微博“风竹弈星”,私聊。
unsigned char KEY=0xff;
void keyscan(void)
{
unsigned char a,b;
P2=0xf0;//高四位作为输入(高电平),低四位输出低电平

单片机课程设计44矩阵式键盘识别显示电路的设计说明

单片机课程设计44矩阵式键盘识别显示电路的设计说明

《单片机原理及应用》课程设计题目:4×4矩阵式键盘与单片机连接与编程专业:测控技术与仪器班级:机电082-1 姓名:学号:指导老师:组员:( 2011.7 .13)目录第1节引言 (2)1.1 4*4矩阵式键盘系统概述 (2)1.2 本设计任务和主要容 (3)第2节系统主要硬件电路设计 (4)2.1 单片机控制系统原理 (4)2.2 单片机主机系统电路 (5)2.2.1 时钟电路 (8)2.2.2 复位电路 (8)2.2.3 矩阵式键盘电路 (8)2.3 译码显示电路 (9)第3节系统软件设计 (13)3.1 软件流程图 (13)3.2 系统程序设计 (14)第4节结束语 (17)参考文献 (18)第一节引言矩阵式键盘乃是当今使用最为广泛的键盘模式,该系统以N个端口连接控制N*N个按键,即时在LED数码管上。

单片机控制的据这是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是单片机和键盘矩阵电路部分,主要对按键与显示电路的关系、矩阵式技术及设备系统的硬件、软件等各个部分进行实现。

4*4矩阵式键盘采用89C51单片机为核心,主要由矩阵式键盘电路、译码电路、显示电路等组成,软件选用汇编语言编程。

单片机将检测到的按键信号转换成数字量,显示于LED显示器上。

该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。

1.1 4*4矩阵式键盘识别显示系统概述矩阵式键盘模式以N个端口连接控制N*N个按键,实时在LED数码管上显示按键信息。

显示按键信息,既降低了成本,又提高了精确度,省下了很多的I/O端口为他用,相反,独立式按键虽编程简单,但占用I/O口资源较多,不适合在按键较多的场合应用。

并且在实际应用中经常要用到输入数字、字母、符号等操作功能,如电子密码锁、机键盘、计算器按键等,至少都需要12到16个按键,在这种情况下如果用独立式按键的话,显然太浪费I/O端口资源,为了解决这一问题,我们使用矩阵式键盘。

单片机课程设计---4×4矩阵式键盘识别显示电路的设计

单片机课程设计---4×4矩阵式键盘识别显示电路的设计

数理与信息工程学院《单片机原理及应用》期末课程设计题目:4×4矩阵式键盘识别显示电路的设计专业:电子信息工程班级:电信061班*名:***学号:********指导老师:***成绩:( 2008.12 )目录第1节引言 (2)1.1 4*4矩阵式键盘系统概述 (2)1.2 本设计任务和主要内容 (3)第2节系统主要硬件电路设计 (4)2.1 单片机控制系统原理 (4)2.2 单片机主机系统电路 (5)2.2.1 时钟电路 (4)2.2.2 复位电路 (5)2.2.3 矩阵式键盘电路 (5)2.3 译码显示电路 (6)第3节系统软件设计 (11)3.1 软件流程图 (8)3.2 系统程序设计 (9)第4节结束语 (12)参考文献 (13)4*4矩阵式键盘识别显示电路的设计数理与信息工程学院电信061 姜铮铮指导教师:余水宝第一节引言矩阵式键盘乃是当今使用最为广泛的键盘模式,该系统以N个端口连接控制N*N个按键,即时在LED数码管上。

单片机控制的据这是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是单片机和键盘矩阵电路部分,主要对按键与显示电路的关系、矩阵式技术及设备系统的硬件、软件等各个部分进行实现。

4*4矩阵式键盘采用AT89S51单片机为核心,主要由矩阵式键盘电路、译码电路、显示电路等组成,软件选用汇编语言编程。

单片机将检测到的按键信号转换成数字量,显示于LED显示器上。

该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。

1.1 4*4矩阵式键盘识别显示系统概述矩阵式键盘模式以N个端口连接控制N*N个按键,实时在LED数码管上显示按键信息。

显示按键信息,既降低了成本,又提高了精确度,省下了很多的I/O端口为他用,相反,独立式按键虽编程简单,但占用I/O口资源较多,不适合在按键较多的场合应用。

并且在实际应用中经常要用到输入数字、字母、符号等操作功能,如电子密码锁、电话机键盘、计算器按键等,至少都需要12到16个按键,在这种情况下如果用独立式按键的话,显然太浪费I/O端口资源,为了解决这一问题,我们使用矩阵式键盘。

单片机-4x4个矩阵按键控制数码管显示数字程序

单片机-4x4个矩阵按键控制数码管显示数字程序

单⽚机-4x4个矩阵按键控制数码管显⽰数字程序1 #include "8051.h"2 typedef unsigned char u8;3 typedef unsigned int u16;4 u8 smgduan[]= {5/*0 1 2 3 4 5 6 7 */60x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,7/*8 9 A B C D E F */80x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71};910// P0⼝为数码管的位选的8位输⼊引脚11// P0 = 0x00;121314void Delayms(u16 ms);15void shumaguan(u8 n);16void DigDisplay();17void KeyTest();18void smg(u8 n, u8 m);19void key_4x4();2021void main()22 {23while(1)24 {25 key_4x4();26 }27 }2829// 不精确的延时函数30void Delayms(u16 ms)31 {32 unsigned int i, j;33for(i = ms; i > 0; i--)34for(j = 110; j > 0; j--);35return;36 }3738// 数码管根据74HC138译码器选择对应的段(选择哪个数码管显⽰)39void shumaguan(u8 n)40 {41switch(n)42 {43case0:44 LSA = 0;LSB = 0;LSC = 0;break;45case1:46 LSA = 1;LSB = 0;LSC = 0;break;47case2:48 LSA = 0;LSB = 1;LSC = 0;break;49case3:50 LSA = 1;LSB = 1;LSC = 0;break;51case4:52 LSA = 0;LSB = 0;LSC = 1;break;53case5:54 LSA = 1;LSB = 0;LSC = 1;break;55case6:56 LSA = 0;LSB = 1;LSC = 1;break;57case7:58 LSA = 1;LSB = 1;LSC = 1;break;59 }60 }6162// 数码管显⽰数字,并以⼗进制递增63void DigDisplay()64 {65 u8 i1 = 0;66 u8 i2 = 0;67 u8 i3 = 0;68 u8 i4 = 0;69 u8 i5 = 0;70 u8 i6 = 0;71 u8 i7 = 0;72 u8 i8 = 0;7374757677for (i8 = 0; i8 < 10; i8++)78for (i7 = 0; i7 < 10; i7++)79for (i6 = 0; i6 < 10; i7++)80for (i5 = 0; i5 < 10; i5++)81for (i4 = 0; i4 < 10; i4++)82for (i3 = 0; i3 < 10; i3++)83for (i2 = 0; i2 < 10; i2++)84for (i1 = 0; i1 < 10; i1++)85 {86 u16 cnt = 10;87while (cnt--)88 {89 shumaguan(0); //选中第⼀个数码管90 P0 = smgduan[i1]; //给他送⼀个数字91 Delayms(1); //稍微延时⼀下下92 shumaguan(1); //然后切换到第⼆个数码管。

单片机4x4矩阵式键盘的设计与仿真

单片机4x4矩阵式键盘的设计与仿真

课程设计报告(单片机原理和应用)题目名称4x4矩阵式键盘专业班级学生姓名学号指导教师4x4矩阵式键盘的设计与仿真1、设计原理:1.1 矩阵式键盘工作原理矩阵式键盘使用于按键数量较多的场合,它由行线与列线组成,按键位于行、列的交叉点上,行、列线分别列接到按键开关的两端。

行线通过上拉电阻接到+5V上。

无键按下时,行线处于低电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线电平一样为高电平。

这是识别矩阵键盘按键是否被按下的关键所在。

一个4x4的行列可以构成一个16按键的键盘。

本次以扫描法来识别按键。

在扫描法中分两步处理按键,首先是判断有无键按下,让所有的列线置高电平,检查各行线电平是否有变化,如行线有一个为高,则有键按下。

当判断有键按下时,使列线依次变低,其余各列为高电平,读行线,进而判断出具体哪个键被按下。

下表为7段共阴极段码表:显示字符共阴极段码显示字符共阴极段码“0”3FH“8”7FH“1”06H“9”6FH“2”5BH“A”77H“3”4FH“b”7CH“4”66H“C”39H“5”6DH“d”5EH“6”7DH“E”79H“7”07H“F”71H“灭“00H 1.2 实验环境Keil uVision3proteus 71.3 功能设计描述由4x4组成16个按钮矩阵式键盘按键成功会在7段LED显示该按键的键号1.4 主要知识点Keil uVision3的使用及调试proteus 7的使用及调试键盘接口、LED 显示接口、模拟电路的相关知识2、实现及编程2.12.2电路原理图2.3程序内容4x4行列式键盘识别7段数码管输出2.4 汇编源程序LINE EQU 30HROW EQU 31HVAL EQU 32HORG 00HSTART: MOV DPTR,#TABLE ;段码表首地址MOV P2,#00H ;数码管显示初始化LSCAN: MOV P3,#0F0H ;电平,行线置低电平L1: JNB P3.0,L2 ;逐行扫描LCALL DELAY50ms ;调用延时,消除抖动JNB P3.0,L2MOV LINE,#00H ;存行号LJMP RSCANL2: JNB P3.1,L3LCALL DELAY50msJNB P3.1,L3MOV LINE,#01HLJMP RSCANL3: JNB P3.2,L4LCALL DELAY50msJNB P3.2,L4MOV LINE,#02HLJMP RSCANL4: JNB P3.3,L1LCALL DELAY50msJNB P3.3,L1MOV LINE,#03HRSCAN: MOV P3,#0FH ; 列线置低电平,行线置高电平C1: JNB P3.4,C2 ;逐列扫描MOV ROW,#00H ;存列号LJMP CALCUC2: JNB P3.5,C3MOV ROW,#01HLJMP CALCUC3: JNB P3.6,C4MOV ROW,#02HLJMP CALCUC4: JNB P3.7,C1MOV ROW,#03HCALCU: MOV A,LINE ;根据行号和列号计算键值MOV B,#04HMUL AB ;A与B相乘后,高位赋给B,低位赋给AADD A,ROWMOV VAL,A ;存键值MOVC A,@A+DPTR ;要据键值查段码MOV P2,A ;输出段码显示LJMP LSCANDELAY50ms: MOV R6,#3DH ;延时50ms子程序Lop: MOV R7,#0FFHDJNZ R7,$DJNZ R6,LopRETTABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ; 共阴极LED段码表DB 7FH,6FH,77H,7CH,39H,5EH,79H,71HEND3、调试及测试3.1调试通过按下4x4行列式键盘的按键,并在7段led显示所按下的键值,如按下F后显示如下图:3.2出现的问题及解决当在选7段显示数码管时,由于不知道哪个类型是共阴极的,所以就随便选了一个,以至于在运行的时候数码管没有显示,后给换了另一个类型的,即可。

课程设计制作单片机的4X4矩阵键盘

课程设计制作单片机的4X4矩阵键盘

目录摘要 (2)第一章硬件部分 (3)第一节AT89C51 (3)第二节4*4矩阵式键盘 (6)第三节LED数码管 (8)第四节硬件电路连接 (10)第二章软件部分 (12)第一节所用软件简介 (12)第二节程序流程图 (14)第三节程序 (17)第三章仿真结果 (19)心得体会 (21)参考文献 (22)摘要电子信息行业将是人类社会的高科技行业之一,是设施现代化的基础,也是人类通往科技巅峰的直通车。

电子行业的发展很重要,而计算机技术是现代科技发展的重要组成部分。

矩阵式键盘控制系统可以提高效率,是进行按键操作管理的有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身的要求。

并能正确、实时、高效地显示按键信息,以提高工作效率和资源利用率。

矩阵式键盘是当今使用最为广泛的键盘模式,该系统以N个端口连接控制N*N个按键,并通过单片机,显示在LED数码管上。

单片机控制键盘显示系统,可以对不同的按键进行实时显示,其核心是单片机、键盘矩阵电路和数码管显示电路。

4*4矩阵式键盘以AT89C51单片机为核心,主要由矩阵式键盘电路、显示电路等组成,软件选用C语言编程。

单片机将检测到的按键信号转换成数字量,显示于LED显示器上。

该系统灵活性强,易于操作,可靠性高,广泛应用于各种场合。

第一章硬件部分第一节AT89C51AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。

AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

引脚如图所示AT89C51图1 AT89C51管脚图AT89C51其具有以下特性:与MCS-51 兼容4K字节可编程FLASH存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24MHz三级程序存储器锁定128×8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路特性概述:AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 接口,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

4 4矩阵键盘控制16个LED灯

4 4矩阵键盘控制16个LED灯

实用标准文档一、任务说明本次的任务是利用51单片机设计一个4*4矩阵键盘输入系统,用16个发光二级管对应16个不同的按键。

每按下一个按键对应的发光二极管就亮。

矩阵式键盘又称行列键盘,它是用N条I/O线作为行线,N条I/O线作为列线组成的键盘。

在行线和列线的每个交叉点上设置一个按键。

这样键盘上按键的个数就为N*N个。

这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。

最常见的键盘布局如图1所示。

一般由16个按键组成,在单片机中正好可以用一个P口实现16个按键功能,这也是在单片机系统中最常用的形式,本设计就采用这个键盘模式。

键盘布局1 图利用单片机的并行口P1连接4×4矩阵键盘,并以单片机的P1.0-P1.3各管脚作输入线,以单片机的P1.4-P1.7各管脚作输出线;利用P2、P3口控制灯1-灯16,。

用Proteus绘制其电路原理图(附录一)。

此任务用到了AT89C51芯片,还用到了晶体振荡器、按钮开关、发光二级管以及一些电阻。

这次任务中采用C语言编写程序,在编译过程中设置成自动产生HEX文件,将此文件导入AT89C51中,即可实现相应的功能。

二、原理图绘制说明电路原理图的设计与绘制是整个电路设计的基础,设计一个电路原理图的工作包括:设置电路图图纸的大小,规划电路图的总体布局,在图纸上放置元器件并对元器件进行调整,进行布线和整体布局,最后保存并打印输出等几个步骤。

安装完Proteus后,运行ISIS 7 Professional,在原理图编辑窗口绘制电路图,在该界面下还有预览窗口和元件列表区,在左侧的工具箱中还有模型选择工具栏,方向工具栏及仿真按钮等工具。

其具体的使用步骤如下:1.运行该软件后,新建一个设计文件,设置图纸大小。

选择界面如图2所示。

文案大全.实用标准文档2 选择图纸大小界面图所示。

2.接下来开始查找任务中所用到的元器件,查找界面如图3元器件查找界面图3本次是采用标注的方式进并进行相应的引脚连线,将查找的元器件放置到界面中,3.具体操作是先将引脚引出一小段导线,标注符号相同的表示引脚相连接,行引脚连接,所示。

单片机课程设计4X4矩阵键盘显示

单片机课程设计4X4矩阵键盘显示

长沙学院?《单片机原理及应用》课程设计说明书题目】液晶显示4*4矩阵键盘按键号程序设计系(部)电子与通信工程系专业(班级)电气1班姓名龙程学号【09指导教师刘辉、谢明华、王新辉、马凌云起止日期—长沙学院课程设计鉴定表《单片机技术及应用》课程设计任务书系(部):电子与电气工程系专业:11级电子一班指导教师:谢明华、刘辉—目录'前言 (5)一、课程设计目的 (6)二、设计内容及原理 (6)单片机控制系统原理 (6)阵键盘识别显示系统概述 (6)键盘电路 (7)12864显示器 (8)整体电路图 (9)!仿真结果 (9)三、实验心得与体会 (10)四、实验程序 (10)参考文献 (18)…。

,】前言单片机,全称单片微型计算机(英语:Single-Chip Microcomputer),又称微控制器(Microcontroller),是把中央处理器、存储器、定时/计数器(Timer/Counter)、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机。

与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。

它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。

由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。

现代人类生活中所用的几乎每件有电子器件的产品中都会集成有单片机。

手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电子产品中都含有单片机。

汽车上一般配备40多片单片机,复杂的工业控制系统上甚至可能有数百片单片机在同时工作!单片机的数量不仅远超过PC机和其他计算机的总和,甚至比人类的数量还要多。

液晶显示器(英语:Liquid Crystal Display,缩写:LCD)为平面薄型的显示设备。

它的主要原理是以电流刺激液晶分子产生点、线、面配合背部灯管构成画面。

四乘四键盘控制LED数码管显示电路.doc资料

四乘四键盘控制LED数码管显示电路.doc资料

四乘四键盘控制LED数码管显示电路目录一、设计内容及要求 (2)二、系统硬件设计方案 (2)三、系统软件设计 (8)四、效果演示 (12)摘要矩阵式键盘系统以N个端口链接控制N*N个按键,使数字显示在LED数码管上。

单片机控制的是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是单片机和键盘矩阵电路部分,主要对按键与显示电路的关系、矩阵式技术及设备的硬件、软件等各个部分进行实现。

对于4*4矩阵式键盘,我想采用STC89C52RC单片机为核心,主要由矩阵式键盘电路、译码器、显示电路等组成,软件选用汇编语言编程。

单片机将检测到的按键信号转成数字量,显示于LED显示器上。

该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。

一、设计内容及要求用protues仿真设计一个单片机小系统,该小系统外接一个4*4键盘及一个LED数码管,要求按下一个键,数码管上显示该键的对应号码。

键盘的布局如下图所示:主要内容如下:1.根据矩阵式键盘的特点,进行键盘控制系统的整体研究与设计。

2.LED实时显示信息。

3.采用软件编程方法实现按键信息的提取和显示。

二、系统硬件设计方案1.芯片的选择STC89C52RC单片机是51系列单片机的一个成员,是8051单片机的简化版。

内部自带8K字节可编程FLASH存储器,拥有2K+字节的EEPROM作为程序存储器的拓展。

由于STC89C52RC具有下图中的配置,因此具有结构简单、造价低廉、效率高的特点,省去了外部的RAM、ROM和接口器件,减少了硬件的开销,节省了成本,提高了系统的性价比。

STC89C52RC的主机系统图:STC89C52RC的实物图:2.系统原理图2.1时钟电路时钟电路用来提供单片机片内各种位操作的时间基准。

51单片机芯片内部有一个高增益反相放大器,用于构成时钟振荡电路,XTAL1为该放大器的输入端、XTAL2为该放大器的输出端。

借助内部时钟方式或外部时钟方式形成时钟。

52单片机C语言4X4键盘

52单片机C语言4X4键盘

4*4#include<reg52.h>#include<intrins.h>#define ulong unsigned long 宏定义#define uint unsigned int#define uchar unsigned char#define ajk P1 //定义按键口#define xsk P0 //定义显示口sbit e=P2^7; //显示控制口sbit cs2=P2^6;sbit cs1=P2^5;uint jm,shi=0x0b,ge=0x0b,dxkz=0xff,wxkz=0xfe,z;uchar code tab1[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77,}; uchar code tab2[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0xff,};void anjjc(); //按键处理void delay(uint z); //申明/***************主程序******************/void main(){TMOD=0x01; //中断初始化TH0=(65536-500)/256;TL0=(65536-500)%256;EA=1;ET0=1;TR0=1;while(1){anjjc(); //调用按键扫描}}/****************矩阵扫描*****************/ void anjjc(){uchar aa;ajk=0xf0; //列为1横为0aa=ajk;if(aa!=0xf0) //判断是否按下{delay(5); //去抖动ajk=0xf0;aa=ajk;if(aa!=0xf0) //在判断是否按下{uchar j,i=0,k,ajkkz=0xfe;for(k=4;k>0;k--) //逐行为0控制{ajk=ajkkz;aa=ajk;for(j=4;j>0;j--){if(aa==tab1[i]) //逐列查数组是否相等jm=i; //相等则i就是键码i++; //不等加1}ajkkz=_crol_(ajkkz,1); //左移使下一行为0,在查}}shi=jm/10; // 十位数据处理ge=jm%10; //个位数据处理}}/*************数码管控制********************/void xst0() interrupt 1 //中断显示{switch(wxkz) //位选控制段选数值{case 0xfe:dxkz=ge;break;case 0xfd:dxkz=shi;break;}e=0;cs2=0;xsk=0xff;e=1;cs2=1;e=0;cs1=0;xsk=tab2[dxkz];e=1;cs1=1;e=0;cs2=0;xsk=wxkz;e=1;cs2=1;wxkz=_crol_(wxkz,1); //位选控制if(wxkz==0xfb) //显示位数控制wxkz=0xfe;TH0=(65536-500)/256;TL0=(65536-500)%256;}/*************延时程序********************/ void delay(uint z) //延时{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档