LPC2138实验程序 中断 定时器 led 扫描 键盘

2020-07-01 10:36

LPC2138实验程序

(尾部附有电路图)

①实现键盘1中断(1~9数字),数码管1显示按键数字,同时用7个LED显示数码管1的相应位,即每个LED对应数码管相应位(a~g)。

②实现按键1中断,7个LED实现流水灯;实现按键2中断,7个LED实现跑马灯。

③实现按键3中断,7个LED闪烁10次,延时采用定时器

#include #define uchar unsigned char int k=0;

//定时器中断计数器

uchar a=0; //LED闪烁函数标志

//普通延时函数

void delay(int x) { } int i; for(;x>0;x--)

for(i=10000;i>0;i--);

void ms(unsigned int x) {

T0TCR = 0X01; while(k!=x); T0TCR = 0X00; T0TC = 0; T0PC = 0; k=0;

//定时器中断延时函数

}

//流水灯函数

void LED_1() { }

void LED_2() {

unsigned char i; for(i=0;i<7;i++) {

IO1SET = 1<<(i+16); delay(20);

IO1CLR = 1<<(i+16);

}

//跑马灯函数

unsigned char i; for(i=0;i<15;i++) {

if(i<7) { } else {

IO1SET = 1<<(29-i);

IO1SET = 1<<(i+16); delay(20);

IO1CLR = 1<<(i+16);

}

}

}

delay(20);

IO1CLR = 1<<(29-i);

void LED_3() { }

//LED闪烁函数

unsigned char i; for(i=0;i<10;i++) { }

IO1SET = 0x7F<<16; delay(20);

IO1CLR = 0X7F<<16; delay(20);

void display(uchar x) {

/*数码管显示函数 x为显示的数字 */

unsigned char table[10]={0x00, 0x06,0x5b,0x4f,

0x66,0x6d,0x7d, 0x07,0x7f,0x6f};

IO0SET = (table[x]<<25); IO1SET = (table[x]<<16); delay(20);

IO0CLR = (table[x]<<25);

}

IO1CLR = (table[x]<<16);

void key_w() { }

//键盘按行低电平扫描函数

IO0SET = 0X7<<20; IO0CLR = 1<<20; delay(2); IO0SET = 1<<20;

IO0CLR =1<<21; delay(2); IO0SET =1<<21;

IO0CLR =1<<22; delay(2); IO0SET =1<<22;

unsigned char key_r() {

int a=0,b;

/*键盘按列读取扫描数值 返回值为键盘对应数字*/

switch(IO0PIN&(7<<16)) {

case 0x00060000:b=1;break; case 0x00050000:b=2;break; case 0x00030000:b=3;break;

}

}

default:break;

switch(IO0PIN&(7<<20)) { }

case 0x00600000:a=1;break; case 0x00500000:a=2;break; case 0x00300000:a=3;break; default :break;

if(a!=0) a=(a-1)*3+b; else a=0; return(a);

void EINT0()__irq { }

void EINT1()__irq {

LED_1();

//外部中断0服务函数,对应矩阵键盘

unsigned char num; num=key_r(); display(num); EXTINT = 0x0f; VICVectAddr=0;

//外部中断1服务函数,对应流水灯


LPC2138实验程序 中断 定时器 led 扫描 键盘.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:清远市连州市家教哪家好?

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: