实验四实验报告

  • 格式:docx
  • 大小:2.25 MB
  • 文档页数:9

下载文档原格式

  / 9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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”。按“ ”后全部熄灭,再按键重新开始。

四、实验原理图