中断扫描法行列式键盘设计报告
1.引言
1.1 原理基础
通过中断扫描法行列式键盘的设计,充分学习中断知识:掌握中断的概念,中断函数的定义以及中断的应用。
所谓中断是指计算机在运行当前程序的过程中,若遇到紧急或突发事件,可以暂停当前程序的运行,转向处理该突发事件,处理完成后再从当前程序的间断出接着运行。
中断服务函数的定义格式是统一的,C51提供的中断函数定义格式如下: Void 函数名 (void) interrupt n [using m]
{函数体语句}
中断是计算机的一个重要功能,采用中断技术能够实现以下功能。 ⑴ 分时操作。
⑵实时处理。
⑶ 故障处理。
有了中断系统,提高了CPU的利用率和输入/输出的速度以及自行处理故障 不会死机。
1.2 目的
培养应用系统的设计能力,初步积累单片机系统开发经验,以及分析问题和解决问题的方法,并近一步拓展专业知识面,培养实践应用技能和创新意识。
2.设计内容和要求
2.1 设计内容
依据《单片机原理及应用》的相关内容,设计出中断扫描法行列式键盘的相关电路图以及支持它运行的相关代码。
2.2 设计要求
掌握相关原理图以及相关程序。
3. 设计方案
⑴ 在Protenus环境下连接出设计电路图。
⑵ 在keil环境下编写程序并编译,运行调试成功。
⑶ 嵌入后运行并观察结果。
⑷ 点击“停止”结束运行。
4. 硬件设计
4.1数码管。
数码管有共阳和共阴俩中,在这里我们选择7SEG-MPX1-CC共阴极数码管再有按键的情况下,并且有中断响应是,该数码管现实键盘的相应键值。如图
1-1所示:
图1-1
4.2 T80C51处理器。
该设计的最主要的部分,主要有四组P口,分别为P0,P1,P2,P3,图如1-2所示:
图1-2
4.3 4082四与门集成元件。
4082四与门元件是中断响应的核心器件,当各列电平都为0时,无论哪一个按键被按下,与门的输出端都可以形成EX0的中断请求信号,如图1-3所示:
图1-3
4.4 4行4列的键盘
具体做法是,将I/O口分为行线和列线,按键设置在跨接行线和列线
的交点列线通过上拉电阻接正电源。如图1-4所示:
5. 设计总电路图
图
1-1
图1-2
依照设计要求,将各个相关元件相互连接成如图1-1所示的电路图,并运行观察所连接电路的正确性,运行后的电路图如1-2所示。
6. 软件设计
利用程序编译软件Keil,编写中断法扫描行列式的代码,并调试运行直到程序正确。
程序代码如下图所示:
#include
char led_mod[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71};
char key_buf[] = {0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77};
void getkey() interrupt 0{
char key_scan[] = {0xef,0xdf,0xbf,0x7f};
char i = 0,j = 0;
for(i = 0;j
P1 = key_scan[i];
for(j = 0;j
if(key_buf[j] == P1){
P2 = led_mod[j];
break;
}
}
}
}
void main(void){
P2 = 0x00;
IT0= 1;
EX0= 1;
EA= 1;
while(1){
P1 = 0x0f;
}
}
7. 设计总结
在这个中断法扫描行列式的设计报告制作中,我不仅掌握了中断的相关知识,还充分学习了Protenus和Keil软件的使用方法,在这个过程中,认识了相互学习,相互探讨的重要性,在今后的发展中要勤于思考,善于交流,好好学习。
8.参考文献
《单片机原理及应用》。
中断扫描法行列式键盘设计报告
1.引言
1.1 原理基础
通过中断扫描法行列式键盘的设计,充分学习中断知识:掌握中断的概念,中断函数的定义以及中断的应用。
所谓中断是指计算机在运行当前程序的过程中,若遇到紧急或突发事件,可以暂停当前程序的运行,转向处理该突发事件,处理完成后再从当前程序的间断出接着运行。
中断服务函数的定义格式是统一的,C51提供的中断函数定义格式如下: Void 函数名 (void) interrupt n [using m]
{函数体语句}
中断是计算机的一个重要功能,采用中断技术能够实现以下功能。 ⑴ 分时操作。
⑵实时处理。
⑶ 故障处理。
有了中断系统,提高了CPU的利用率和输入/输出的速度以及自行处理故障 不会死机。
1.2 目的
培养应用系统的设计能力,初步积累单片机系统开发经验,以及分析问题和解决问题的方法,并近一步拓展专业知识面,培养实践应用技能和创新意识。
2.设计内容和要求
2.1 设计内容
依据《单片机原理及应用》的相关内容,设计出中断扫描法行列式键盘的相关电路图以及支持它运行的相关代码。
2.2 设计要求
掌握相关原理图以及相关程序。
3. 设计方案
⑴ 在Protenus环境下连接出设计电路图。
⑵ 在keil环境下编写程序并编译,运行调试成功。
⑶ 嵌入后运行并观察结果。
⑷ 点击“停止”结束运行。
4. 硬件设计
4.1数码管。
数码管有共阳和共阴俩中,在这里我们选择7SEG-MPX1-CC共阴极数码管再有按键的情况下,并且有中断响应是,该数码管现实键盘的相应键值。如图
1-1所示:
图1-1
4.2 T80C51处理器。
该设计的最主要的部分,主要有四组P口,分别为P0,P1,P2,P3,图如1-2所示:
图1-2
4.3 4082四与门集成元件。
4082四与门元件是中断响应的核心器件,当各列电平都为0时,无论哪一个按键被按下,与门的输出端都可以形成EX0的中断请求信号,如图1-3所示:
图1-3
4.4 4行4列的键盘
具体做法是,将I/O口分为行线和列线,按键设置在跨接行线和列线
的交点列线通过上拉电阻接正电源。如图1-4所示:
5. 设计总电路图
图
1-1
图1-2
依照设计要求,将各个相关元件相互连接成如图1-1所示的电路图,并运行观察所连接电路的正确性,运行后的电路图如1-2所示。
6. 软件设计
利用程序编译软件Keil,编写中断法扫描行列式的代码,并调试运行直到程序正确。
程序代码如下图所示:
#include
char led_mod[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71};
char key_buf[] = {0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77};
void getkey() interrupt 0{
char key_scan[] = {0xef,0xdf,0xbf,0x7f};
char i = 0,j = 0;
for(i = 0;j
P1 = key_scan[i];
for(j = 0;j
if(key_buf[j] == P1){
P2 = led_mod[j];
break;
}
}
}
}
void main(void){
P2 = 0x00;
IT0= 1;
EX0= 1;
EA= 1;
while(1){
P1 = 0x0f;
}
}
7. 设计总结
在这个中断法扫描行列式的设计报告制作中,我不仅掌握了中断的相关知识,还充分学习了Protenus和Keil软件的使用方法,在这个过程中,认识了相互学习,相互探讨的重要性,在今后的发展中要勤于思考,善于交流,好好学习。
8.参考文献
《单片机原理及应用》。