历史上的今天
今天是:2025年01月18日(星期六)
2020年01月18日 | AVR单片机键盘程序设计
2020-01-18 来源:elecfans
#i nclude《90s8515.h》
#define uchar unsigned char
#asm
equ __LCD_port=0x18 ;PORTB
#endasm
#i nclude
#i nclude
/************按键功能说明:0--9为数字键 ********/
#define cEnter 16 //确认键
#define cFuntion 15 //功能菜单键
#define cDown 14 //上,下选择键
#define cUp 13
#define cRn_Stop 12 //运行/停止切切实实换键
#define cDel 11 //删除
uchar lcd_buffer[33];
uchar getkey(void)
{
uchar key_temp;
PORTC|=0x07; //向PORTC.0--PORTC.2写入高电平
DDRC=0x00; //把PORTA设置为输入模式
key_temp=PINC&0x07; //读取PORTA.0--PORTA.2上的值并屏蔽其它位
/*****如果K0---K6按下,key_temp就为相应的键值,如果K7--K15按下,则读入PINC.0--PINC.2都为高电平,key_temp==7
然后PORTC.0--PORTC.2依次输出低电平,判断K7--K15那个键按下**********/
if(key_temp==7) //判断K7--K9是否按下

{
DDRC|=0x01; //设置PORTC.0输出0
PORTC&=0xfe;
DDRC&=0x00;
key_temp=PINC&0x07;
key_temp=(key_temp+1)/2+7;
if(key_temp==10) //判断K10--K12是否按下
{
DDRC|=0x02; //设置PORTC.1输出0
PORTC&=0xfd;
DDRC&=0x00;
key_temp=PINC&0x07;
key_temp=(key_temp+1)/2+10;
if(key_temp==13) //判断K13--K15是否按下
{
DDRC|=0x04; //设置PORTC.2输出0
PORTC&=0xfb;
DDRC&=0x00;
key_temp=PINC&0x07;
key_temp+=13;
}
}
}
return key_temp;
}
void init()
{
PORTB=0x00; //PORB的初始化
DDRB=0x00;
DDRC=0x00;
// LCD module iniTIalizaTIon
lcd_init(16);//清屏并把显示坐标设定在0列0行
}
void main()
{
uchar result;
init();
result=getkey();
sprintf(&lcd_buffer[2],“%c”,result);
lcd_gotoxy(0,4);
lcd_putchar(lcd_buffer[2]);
while(1);
}
史海拾趣
|
本信息来自合作QQ群:电子工程师技术交流(12425841) 群主在坛子ID:Kata 麻烦推荐个运放,能测出1mV左右电压,失真比较小 用OP07可以不? … 查看全部问答> |
|
用keil编码1114的i2c,我在设置了编译优化选项之后出现了巨大的问题。索性,在取消掉所有的优化选项后i2c通信已经正常。 可惜结果仍然不正确,我就跟代码。这时候才发现一个无法理解的问题。我在funcA()里调用funcB()时传入一个静态myVar ...… 查看全部问答> |
|
如题,公司用的是ANTDATA公司出的DTGS-800模块,虽然也带有文档说明,但我觉得不够详细,所以特来发帖提问,希望大家踊跃发言,问题如下: 1、读取短信的时候,怎样才能不改变短信的状态呢?例如,执行了以下AT命令 AT+UGSM=1 返回OK(DTGS-800支 ...… 查看全部问答> |
|
求助:PWM输出8.2KHZ1:1的方波,为什么在4.3K有个的很强频率分量 设置如下: unsigned short pwmizhouqi=256; LPC_TMR16B1->TCR = 0; LPC_SYSCON->SYSAHBCLKCTRL |= (1PIO1_9 = 0X01; LPC_TMR16B1->MR0 = pwmizhouqi/2; LPC ...… 查看全部问答> |
|
原帖不能编辑了,就新开一帖在这里,望斑竹谅解 目前为止,基于launchpad和nrf24l01的单向收发已经实现,程序在下面放出,还有很多要改进的,仅供参考。欢迎高手拍砖。 学习经历: 1.收到板子后查了下资料,发现很丰富啊,于是 ...… 查看全部问答> |
|
我用的是MPLAB ICE和PICC编译PIC16F722,之前编译什么的都没问题,重装系统后再安装后就再也编译不成功了,提示No installed compiler driver supports device 16F722。 编译PIC16F505没有问题。每次点Project-Select Language Toolsuite后HI-TECH ...… 查看全部问答> |




