ZKX's LAB

4x4矩阵键盘控制数显示 求msp430 4x4矩阵键盘显示键值的程序,

2020-10-17知识3

4x4矩阵键盘控制液晶 急!!!!!!!!!!!

4x4矩阵键盘控制数显示 求msp430 4x4矩阵键盘显示键值的程序,

4x4矩阵键盘输入,通过lcd1602显示怎么才能显示两位数的? 想做计算器是吧,判断之前如果有数字按下,然后再按的是数字的话,前面的数字乘10再加上后面的数字

4x4矩阵键盘控制数显示 求msp430 4x4矩阵键盘显示键值的程序,

请教4x4矩阵键盘控制LCD显示字符串一个按键显示一条字符的程序和仿真电路图? 我不知道你会不会矩阵,我把程序写下给你,你按我说的仿真下试试。includedefine uchar unsigned chardefine uint unsigned intuchar num,temp;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void delay(uint t);void main(){P2=0xff;P0=0;num=0;while(1){P3=0xfe;temp=P3;temp=temp&0xf0;while(temp。0xf0){delay(5);temp=P3;temp=temp&0xf0;while(temp。0xf0){temp=P3;switch(temp){case 0xee:num=1;break;case 0xde:num=2;break;case 0xbe:num=3;break;case 0x7e:num=4;break;}while(temp。0xf0){temp=P3;temp=temp&0xf0;}P2=0;P0=table[num-1];}}P3=0xfd;temp=P3;temp=temp&0xf0;while(temp。0xf0){delay(5);temp=P3;temp=temp&0xf0;while(temp。0xf0){temp=P3;switch(temp){case 0xed:num=5;break;case 0xdd:num=6;break;case 0xbd:num=7;break;case 0x7d:num=8;break;}while(temp。0xf0){temp=P3;temp=temp&0xf0;}P2=0;P0=table[num-1];}}P3=0xfb;temp=P3;temp=temp&0xf0;while(temp。0xf0){delay(5);temp=P3;temp=temp&0xf0;while(temp。0xf0){temp=P3;switch(temp)。

4x4矩阵键盘控制数显示 求msp430 4x4矩阵键盘显示键值的程序,

4X4 矩阵键盘,实现自己定义键号为0~9,A~F,编程实现按下按键抬起后在多位数码管上将当前显示数字左移一位 #includedefine uchar unsigned chardefine uint unsigned intuchar Bits=0,Ten=0,Hundred=0,Thousand=0;uchar code ledshow[16]={ 0x3F,/*0*/0x06,/*1*/0x5B,/*2*/0x4F,/*3*/0x66,/*4*/0x6D,/*5*/0x7D,/*6*/0x07,/*7*/0x7F,/*8*/0x6F,/*9*/0x77,/*A*/0x7C,/*b*/0x39,/*C*/0x5E,/*d*/0x79,/*E*/0x71,/*F*/};共阴数码管代码uchar code jz_code[17]={0xff,0xee,0xed,0xeb,0xe7,0xde,0xdd,0xdb,0xd7,0xbe,0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77};键盘代码void delay(unsigned char a)/延时{unsigned char i;while(a-)for(i=100;i>;0;i-);}uchar kbscan(void)/键盘扫描{unsigned char hang,lie,key;P1=0xf0;delay(5);lie=P1;P1=0x0f;delay(5);hang=P1;for(key=16;key>;0;key-){if(jz_code[key]=(hang|lie))break;}return(key);}void data_l(void)/左移{uchar i;static keytemp=0;i=kbscan();if(i。0){if。(keytemp=i)){keytemp=i;Thousand=Hundred;千位Hundred=Ten;百位Ten=Bits;十位Bits=i-1;个位}}else keytemp=0;}void display(void)/数码管显示,调试方法:数码管间隔跳动函数中 delay(5);四个,调小{data_l();P0=ledshow。

求msp430 4x4矩阵键盘显示键值的程序, 无unsigned char keymap[]={1;控制打开或者关闭键盘中断SW=0;关闭端口中断elseKEY_IE=0xf0;7 接上拉电阻控制键盘开关/消除抖动Check_Key():[p13]→1 2 3 4[p12]→5 6 7 8[p11]→9 10 11 12[p10]→13 14 15 16void Key_Event(void){unsigned char tmp;void delay(void){unsigned int tmp;如果有键按下{delay();是否P1IN的P1;列检测{if((KEY_IN tmp2)=0x00)/获取键值return;设置P1OUT全为0,P1.h>;/p14\\/KEY_IES=0xf0;设置键盘逻辑键值与程序计算键值的映射tmp1=0x08/void Check_Key(void){unsigned char row;P1;6\\=1;函数名称;tmp2用于检测出哪一位为0for(col=0,15;获取 p1INif((tmp 0xf0)~P1,7,完成消抖功能参 数;if(Key_Val;msp430x14x;函数名称。0){Key_Event();KEY_OUT=0,并获取键值参 数;打开端口中断}void Init_Keypad(void){KEY_DIR=0x0f;P1.0~P1.4~p1;P1;0;key_Val 对应键值列;row+)/5\\/col lt;ELSE;for(tmp=12000;for(row=0,4:t=tmp*5*clk 根据使用时钟调整tmp值tmp2右移1位}}}}键值,9:delay功 能:扫描键盘的IO端口:无返回值,12;关键盘中断}}KEY_IFG=0;KEY_OUT=0;col+)/4;0xf0)/row lt,14;1;端口1按键。

随机阅读

qrcode
访问手机版