完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
#include
#define uchar unsigned char #define uint unsigned int void delay(uint); void LedScan(void); void key(void); void send_int(void); void rec_int(void); uchar LedofNum[]={0x00,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x39,0x3f,0x76};//段码 uchar ScanofNum[]={0xf7,0xef,0xdf,0xbf};//行扫描码 uchar r1,r2; void main() { SCON=0x50;//串口工作方式1.REN=1允许接收数据 PCON=0x00;//波特率不加倍 TMOD=0x20;//定时器1工作在方式2 TH1=0xf3; TL1=0xf3; TR1=1; EA=1; EX0=1; EX1=1; ES=1; P0=0x00; while(1) { P1=0x07; LedScan(); } } /**************键盘扫描外部中断0**********************/ void key(void) interrupt 0 using 1 { uchar line,row,i,j,x; x=0xfe; for(j=1;j<=3;j++) { if(P1==(P1&x)) { row=j; for(i=1;i<=4;i++) { P1=ScanofNum[i]; if(P1==(P1&x)) { line=i; break;//已找到按键,跳出循环 } } } x=(x<<1)|0x01; } r1=line*3+row; } /****************发送命令外部中断1********************/ void send_int(void) interrupt 2 using 2 { ES=0; SBUF=LedofNum[r1]; while(ti==0); TI=0; ES=1; } /******************串口中断接收数据*********************/ void rec_int(void) interrupt 4 using 3 { RI=0; r2=SBUF; } void LedScan(void) { P0=LedofNum[r1];delay(1);//显示要发送的数据 P2=r2;delay(1);//显的示要接收的数据 } void delay(uint x) { uchar k; while(x--) for(k=0;k<255;k++); } |
|
相关推荐
5 个讨论
|
|
265 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
789 浏览 0 评论
1306 浏览 2 评论
787 浏览 0 评论
【RA4M2-SENSOR开发板评测】Analogue+Timers综合测试
1587 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16900 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 00:50 , Processed in 0.742817 second(s), Total 62, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2329