学号 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,0x7c,0x39,0x5e,0x79,0x71,0x00}; //共阴极数码管显示段码
第一题:void T0_int(void) interrupt 1
{ TH0=(65536-1000)/256; TL0=(65536-1000)%6;
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); //消弹跳
实验实物图: 第一题:
第二题: 第三题:
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库实验四实验报告在线全文阅读。
相关推荐: