完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#define DAT 1 #define CMD 0 #define LINE1 0b10000000 #define LINE2 0b11000000 #define uint unsigned int __CONFIG(0x20F1); void Initial(); void DELAY_10US(unsigned char R1,unsigned char FLAG); //void delay(unsigned char R1,unsigned char FLAG);//延时 //void jisuan();//计算 void rest();//复位 void scan();//扫描 void display1();//显示第一行 void display2();//显示第二行 unsigned char h,l,key0,fuhao,gw,sw,bw,qw;//对应横,列,按下键,对应数,结果的个位,十位,百位,千位 unsigned int a,b,jieguo; const unsigned key[4][4]={1,2,3,13,4,5,6,12,7,8,9,11,21,0,20,10}; //??????????????? void main() { Init();//初始化 while(1) { while(RBIF==0) scan();//扫描 display1();//显示第一行 //jisuan();//计算 display2(); //显示第二行 } } void delay(uint x)//延时 { uint a,b; for(a=x;a>0;a--) for(b=110;b>0;b--); } void initial() { TRISA=0X80;//10000000,RA7输入接CLKIN,RA6输出接CLKOUT TRISB=0XCF;//11001111,RB7,RB6接输入,RB0~RB3接输入 TRISC=0X00;//00000000,RC端口均输出 TRISD=0X00;//00000000,RD高四位输出 RE3=0;//复位 PORTA=0;//A端口置0 PORTB=0;//B端口置0 PORTC=0;//C端口置0 PORTD=0;//D端口置0 } void scan(void)//键盘扫描 { delay(20);//延时20ms,等待震荡结束 RBIF=0;//清楚标志位 if(PORTB==0XcF)//如果RB的值没有变化,则刚刚的中断时一个干扰,则返回主程序 return; TRISB=0xc0;//下输入,即RB0~RB3输入 PORTD=0Xf0;//再次设置下检查行的I/O方式 if(RD4==0);h=0;//确定行 if(RD5==0);h=1;//确定行 if(RD6==0);h=2;//确定行 if(RD7==0);h=3;//确定行 TRISD=0x00;//左输入,即RD4~RD7向外输出 PORTB=0Xcf;//再次设置下检查行的I/O方式 if(RB3==0);l=0;//确定列 if(RB2==0);l=1;//确定列 if(RB1==0);l=2;//确定列 if(RB0==0);l=3;//确定列 TRISB=0xc0; PORTD=0Xf0;//还原至检查行的状态 key0=key[h][l];//通过查数组,把之前检测到的位置变成具体的数字或者符号 if(key0<21) display1();//显示刚才扫描到的符号 if(key0<10)//确定数字 { if(fuhao==0) a=a*10+key0;//若是无符号的数字,则赋值给a else b=b*10+key0;//若有符号,则赋值给b } } 这是我写的部分程序,不知道为什么会出现如图所示的问题,新手请指教!!
|
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
228 浏览 1 评论
【瑞萨RA8D1 CPK开发板】RA8D1移植ThreadX操作系统
276 浏览 0 评论
STC32G8K64 单片机 的P00(ADC8)脚短路到GND 会死机,怎么解决?
1874 浏览 3 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-Linux C接口编程入门之ioctl操作
1061 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第十七章 machine.WDT类实验
713 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11511 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-22 01:25 , Processed in 0.720747 second(s), Total 72, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号