#include
//调用头文件,可以去PICC18软件下去查找PIC18FXX2.H
__CONFIG(1,XT) ; //晶振为外部4M
__CONFIG(2,WDTDIS) ; //看门狗关闭
__CONFIG(4,LVPDIS) ; //禁止低电压编程
#define B7 RB7
#define B6 RB6
#define B5 RB5
#define B4 RB4
#define B3 RB3
#define B2 RB2
#define B1 RB1
#define B0 RB0
#define B PORTB
#define D PORTD
#define E2 RE2
#define E1 RE1
#define E0 RE0
#define C7 RC7
char shuma[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delayms(int x)
{
int i,j;
for(i=0;i<=30;i++)
for(j=0;j<=x;j++);
}
int keyscan()
{
B=0x7f;
if(B3==0)
{
delayms(5);
return 16;
}
if(B2==0)
{
delayms(5);
return 12;
}
if(B1==0)
{
delayms(5);
return 8;
}
if(B0==0)
{
delayms(5);
return 4;
}
delayms(5);
B=0xbf;
if(B3==0)
{
delayms(5);
return 15;
}
if(B2==0)
{
delayms(5);
return 11;
}
if(B1==0)
{
delayms(5);
return 7;
}
if(B0==0)
{
delayms(5);
return 3;
}
delayms(5);
B=0xdf;
if(B3==0)
{
delayms(5);
return 14;
}
if(B2==0)
{
delayms(5);
return 10;
}
if(B1==0)
{
delayms(5);
return 6;
}
if(B0==0)
{
delayms(5);
return 2;
}
delayms(5);
B=0xef;
if(B3==0)
{
delayms(5);
return 13;
}
if(B2==0)
{
delayms(5);
return 9;
}
if(B1==0)
{
delayms(5);
return 5;
}
if(B0==0)
{
delayms(5);
return 1;
}
delayms(5);
}
void display(int num)
{
int ge,shi;
ge=num;
shi=num/10;
E2=0;
E1=1;E0=1;
if(shi==0&&ge==0)
D=0x00;
else D=shuma[ge];
delayms(2);
E1=1;E0=0;
if(shi==0)
D=0x00;
else D=shuma[shi];
delayms(2);
D=0x00;
delayms(2);
}
void main(void)
{
int temp,num=0;
ADCON1=0X06; //所有IO均为数字口,模拟量输入禁止
TRISB=0X0f;
TRISD=0x00;
TRISE=0x00;
TRISC=0x00;
while(1)
{
temp=keyscan();
switch(temp)
{
case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:num=temp;C7=1;break;
default:C7=0;break;
}
display(num);
}
}
利用一个I/O口的输入输出变化,有点类似动态扫描,轮流检测每一行是否有按键按下
效果:按下一个键,在数码管上显示该键的数字
关键字:PIC18F452 单片机 矩阵键盘
引用地址:
PIC18F452单片机 矩阵键盘
推荐阅读最新更新时间:2024-03-16 14:49
通过采用AVR单片机ATXmega128A1进行便携式仪表的设计
1.引言 工业化仪表,因其集信息的获取.转换.存储.传输.分析.处理及显示于一体而成为工业控制领域的基础和核心之一.随着计算机技术.微电子技术的发展,工业化仪表已逐渐发展成为具有微处理器系统的智能化仪表.便携式智能仪表因其携带方便.操作方便.界面友好.人机接口丰富.功耗低等特性,使得其在当今生活中越来越普及. AVR XMEGA是8/16位AVR微处理器的升级版本.其采用Atmel picoPower技术,所有器件均可使用1.6V工作电压.MCU具有5霺唤醒时间和100nA的业界极低耗电量,其内部增加集成了全速USB?高速高精度模拟系统.DMA控制器和创新的事件系统,最大限度的提升了数据吞吐量和实时性能,并有效减轻了处理器负载
[单片机]
STM32单片机的ISP一键下载
ISP就是In System Programming在线系统编程,最常用的就是通过单片机的串口将程序HEX文件下载到内部FLASH中,单片机重启时就执行内部FLASH中的程序。根据STM32的数据手册,STM32的启动方式和BOOT引脚有关 MCUISP软件是STM32单片机ISP下载程序的软件,就像我们用STC单片机ISP下载程序时通过STCISP软件一样,下载程序时的步骤都是类似的,无非就是选择好串口和波特率,加载HEX文件,选择附加选项后再烧录程序即可。 ISP普通烧录 根据上表所示,我们用STM32的串口下载程序的步骤为: 1.电脑通过USB线连接STM32的串口(因为在STM32开发板上已经设计了USB转串口电路,常
[单片机]
stc12c5a60s2单片机的常用函数
#ifndef _SYSTEM_H_ #define _SYSTEM_H_ #include stc12c5a60s2.h #include intrins.h #include delay.h #include Lcd_1602.h #include ADC.h #include PWM.h #include EPROM.h /*=============================================================== 作品名: _SYSTEM_H_(系统头文件) 作者: 广西名族大学物理与电子工程学院09电(2)班 风子(Only) 完成日期: 2011年2月18日 =========
[单片机]
基于PICFxx单片机控制的正弦波逆变电源
0 引言 逆变电源是一种采用电力电子技术进行电能变换的装置。随着电力电子技术的发展,逆变电源的应用越来越广泛,但应用系统对逆变电源的输出电压波形特性也随之提出了越来越高的要求,因为电源的输出波形质量直接关系到整个系统的安全和可靠性指标。 随着数字信号处理技术的发展,以SPWM控制方式设计的逆变电源越来越受到青睐。本文介绍的SPWM逆变电源就是采用PIC单片机来实现SPWM控制和正弦波方式输出,而且电路简单,性能安全可靠,灵活性强,同时可以降低谐波,提高效率。 1 SPWM逆变器结构 逆变电源的拓扑结构有多种形式,图l所示是SPWM逆变电源的基本结构,它主要由变压器中心抽头推挽式升压电路、逆变电路、滤波电路、驱动电路和控
[单片机]
STC89C52单片机AD测试实验
/////////////////////////////////////////////////////////////////////////// 实现功能: 调节实验板上的标号为AD0的电位器改变电压,通过PCF8591的采集,把 数据传输给单片机,单片机通过处理把采集到的电压值,显示在数码管 上,注意所采用的通道为第0通道,也就是说调节的是AD0电位器 实验板型号:BS-XYD-C52 实验名称: AD测试实验 编写人: 谢应东 编写日期: 2012-4-30 ///////////////////////////////////////////////////////////////////
[单片机]
IC Insights预计2020微处理器销售额突破790亿美元
IC Insights日前更新了2020年McClean报告,报告中显示,微处理器销售额预计在2020年增长1.4%,达到近793亿美元,在前一年,2019年市场下降了2.4%,这也是全球处理器市场10年来的收入下降。 年中预测显示,如果明年大部分地区市场的疫苗可用,并且不存在健康隐患的话,那么到2021年,MPU的总销售额将增长8.8%,达到863亿美元的新的年度最高水平。 图1 根据年中更新预测,按终端设备类别划分的处理器市场分布 在处理器市场,传统个人电脑、平板电脑、服务器、超级计算机和所有其他类型计算机中使用的中央处理器(CPU)的销售都增加,主要是由于Covid-19病毒引发的互联网使用量增加。 IC
[嵌入式]
PIC单片机系统定义字的含义解析
在PIC芯片内有一特殊的系统定义字含有4个EPROM熔丝。它不是程序存贮器EPROM的组成部分(不包括在0.5K-2K的程序空间内)。其中两个熔丝用以选择四种振荡方式(RC、XT、HS、LP),另两个熔丝一个用来选择使能(enable)看门狗WDT,一个用来选择使能程序保密位。 用户可以在烧写OTP或窗口型芯片时,选择烧写这四个熔丝。详见第七章烧写工具介绍说明。对于腌膜芯片,则由生产厂根据客户需要在芯片生产过程中予以烧写。 §1.12.1 程序保密位(Protection Fuse) 当你选择将芯片的程序保密位熔丝熔断(写入0)后,程序存贮区ROM中的程序代码(12位宽)的高8位将被遮没。具体地说,就是当再
[单片机]
51单片机+CPLD让系统更高效
一、引言 随着数字电子技术的发展,一种新的器件正在被广泛应用,那就是CPLD(ComplexProgrammable Logic Device) 复杂可编程逻辑器件,通俗的说就是可以把以上那些分离器件都放进去的一种可以二次开发的IC.基于此,本刊用这篇文章深入浅出的介绍一种采用51 单片机和CPLD 构建复杂电路系统的设计思想。 二、单片机系统中几个典型电路介绍 首先从熟悉的最小系统电路电路说起,如图1所示,图中用网络标号实现电路连接,这样绘制的电路图清晰整洁,U1 是经典的51 单片机 IC,复位电路和晶振电路是传统电路,这里C5 电容是靠近单片机VCC 引脚的,用来对电源滤波,图中其它芯片VCC 附近都有
[单片机]