- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式系统开发课程实验报告
PAGE 1
班级_08网络一班_ 学号__20080611052_ 姓名__袁晓洋___
按键检测实验
[实验目的]
深入理解单片机IO输入的特性和编程方法
理解4×4键盘的工作原理和扫描原理
掌握利用单片机单IO口实现对4×4键盘扫描输入的方法
[实验内容]
采用单片机的IO口实现对4×4键盘的低电平扫描,将扫描输入的结果按照按钮与数码的对应关系显示到7段数码管上。
[实验步骤]
在此填写在proteus中的操作步骤,并附绘制的电路图
首先加入
根据课本121页,连接电路,一个P0端口连接按键,P2端口连接数码管,设置按钮,设置8个10K的电阻,如图所示:
在此填写keil C51代码并附详细注释
#include reg51.h 添加头文件
#define KEYP P0 定义键盘连接到P0
#define SEG7P P2 定义七段数码管连接到P2
Char code TAB[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80
,0x98,0xa0,0x83,0xa7,0xa1,0x84,0x8e,0xbf,0x7f}; 0-9,a-f的显示
char disp=0x7f; 声明七段显示器初值只显示小数点
unsigned char scan[4]={0xef,0xdf,0xbf,0x7f}; 显示器及键盘的扫描码
void delay(int); 声明延迟函数
void scanner(void); 声明扫描函数
main() 主程序
{
while(1) 无穷循环
{
scanner(); 一直扫描键盘和显示七段显示器
}
}
void scanner(void) 扫描函数开始
{
unsigned char col,row,dig; 定义变量col:列,row:行dig:显示位
unsigned char rowkey,kcode; 定义变量rowkey:行键值kcode:按键码
for(col=0;col4;col++) for循环扫描第col列
{
KEYP=scan[col]; 高4位输出扫描信号,低4位输入行值
SEG7P=disp; 输出数字
rowkey=~KEYP0x0f; 读入KEYP值,取反,再相与消除高4位if(rowkey!=0) 若按键被按下
{ if(rowkey==0x01) row=0; 说明第0行被按下
else if(rowkey==0x02) row=1; 说明第1行被按下
else if(rowkey==0x04) row=2; 说明第2行被按下
else if(rowkey==0x08) row=3; 说明第3行被按下
kcode=4*col+row; 计算出按键的号码
disp=TAB[kcode]; 将键值编码后写入最右侧
while(rowkey!=0) 当按钮未放开
rowkey=~KEYP0x0f; 再读入行键值
}
delay(4); 延迟函数延迟4ms
}
}
void delay(int x) 延迟函数
{
int i,j; 声明变量i,j
for(i=0;ix;i++)
for(j=0;j600;j++); 延迟约5ms
}
[实验总结]
总结试验中遇到的问题和问题的解决方法。
刚开始做时在P2端口和数码管直接连接了电阻,而且总是不亮,后来通过老师的提醒,查看P2端口的内部构造知道了P2内部带有上拉电阻不用再加电阻,后来通过多次的尝试,完成了实验!
原创力文档


文档评论(0)