实验四实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学号14142200283序号14
单片机原理与接口技术
实验报告
实验项目序号实验四
实验项目名称动态显示与矩阵式键盘实验
姓名彭任远专业电子信息工程班级14-1BF 完成时间2016年6月1日
程序关键部分节选:
uchar code sled_bit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //定义点亮数码管位选码
data uchardisp[8]={16,16,16,16,16,16,16,16};
uchar code table[18]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7 c,0x39,0x5e,0x79,0x71,0x00}; //共阴极数码管显示段码
第一题:void T0_int(void) interrupt 1
{ TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
oe=1; // 关闭2个573输出,防止在送数据时相互影响
k = disp[j]; // 每次显示ar[j]的数据
P0 = table[k]; // 相应显示数字段码
dx=1;
dx=0; // 锁存段码
P0=sled_bit[j]; // 选择相应数码管位选
wx=1;
wx=0; // 锁存位码
oe=0; // 打开2个573三态门,输出段码和位码if(++j>=8)j=0; // 为下一个显示做准备
}
void int0_isr(void) interrupt 0 // 外中断0的中断服务函数
{ uchar i;
if(key1==0) for(i=0;i<8;i++) disp[i]=ar[i];
if(key2==0) for(i=0;i<8;i++) disp[i]=br[i];
}
第二题:
P2=0xf0;
delay(5);
a=P2;
P2=0x0f;
delay(5);
b=P2;
a=a|b;
if(a!=0xff) //未按键,不处理
{
while(P2!=0x0f); //等待松手 ,一旦松手后才赋键值
switch(a)
{ case 0xee: num=0; break;
case 0xde: num=1; break;
case 0xbe: num=2; break;
case 0x7e: num=3; break;
case 0xed: num=4; break;
case 0xdd: num=5; break;
case 0xbd: num=6; break;
case 0x7d: num=7; break;
case 0xeb: num=8; break;
case 0xdb: num=9; break;
case 0xbb: num=10;break;
case 0x7b: num=11;break;
case 0xe7: num=12;break;
case 0xd7: num=13;break;
case 0xb7: num=14;break;
case 0x77: num=15;
}
for(i=0;i<7;i++) disp[i]=disp[i+1];
disp[7]=num;
}
delay(255); //消弹跳
}
第三题:
if(num<10)
{for(i=0;i<7;i++) disp[i]=disp[i+1]; disp[7]=num;
}
if(a==0xe7)
{ num=0;
for(x=0;x<8;x++)
disp[x]=num;
}
if(a==0x77)
{num=16;
for(y=0;y<8;y++)
disp[y]=num;
}
}
delay(255); //消弹跳
实验实物图:第一题:
第二题:
第三题:
实验四动态显示与矩阵式键盘实验
一、实验目的
1、进一步理解数码管与单片机的接口原理与动态显示原理,理解单片机矩
阵式键盘按键识别的原理;
2、掌握单片机动态显示应用和编程方法;
3、掌握单片机矩阵式键盘按键识别的方法。
二、实验前准备
1、完成作业6;
2、根据实验内容编写好相关程序,并进行Proteus仿真。
三、实验内容
实验内容为3项,其中第1、2项必做。
1、动态显示。
未按键不显示,按K1键,动态显示“19491001”;按K2键,动态显示“20141210”。
2、动态显示与按键识别。
矩阵式键盘键值分别是0-F,未按键不显示。每按键一次,键值在最低位显示,原键值向高位移一位。
3、可控动态显示与按键识别。
矩阵式键盘键值分别是0-9,最下面一排键位功能键,左右两个键分别为“清0键”“C”,和”“回车键”“ ”,其它键无效。未按键不显示,每按键一次,键值在最低位显示,原键值向高位移一位。按8个键后,再按键无效。按清0键全显示“0”。按“ ”后全部熄灭,再按键重新开始。
四、实验原理图