C51单片机按键扫描

C51单片机按键扫描,第1张

1.设置一个状态变量,如flag,定义flag=0为开状态,flag=1为关状态。

2.因为是按键(不是开拦扰猜关),所以实际上单片机读取的应该是脉冲形式的输入。设按键接单片机P01引脚,故可采用以下程序实现按键扫描

if(P01==0)//李茄按下按键,进入下降沿

{

delay2()//20ms延时去按键前抖动

while(P01==0)//等待上升沿到

来,即按键d起

flag=~flag//flag取反,实现状态切换

}

void

delay2()//20ms延时子程序

{

unsigned

char

i,k

for(i=0i<100i++)

for(k=0k<100k++)

}

注:根据按键的具体接法,若简型按下按键向单片机输入低电平,则采用以上程序;若按下按键向单片机输入高电平,则将两处P01==0均改为P01==1。

#include <reg51.h>

#include <intrins.h>

sbit SPK=P3^4 //SPK定义为P3口的第4位,就是驱动蜂鸣器的那个脚

sbit JDQ=P3^5 //JDQ定义为P3口的第5位,就是驱动继电器的那个脚

code unsigned char table[]=

{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,

0x77,0x7c,0x39,0x5e,0x79,0x71}

//共阴数码管 0-9 a-f 表

code unsigned char key_tab[17]={0xed,0x7e,0x7d,0x7b,

0xbe,0xbd,0xbb,0xde,

0xdd,0xdb,0x77,0xb7,

0xee,0xd7,0xeb,0xe7,0XFF}//========================此数组为键盘编码,

//本人采用类式类似电话按键的编码方式,方便以后设计

// 1 2 3 a 0x01 0x02 0x03 0x0a

// 4 5 6 b 对应16进制码: 0x04 0x05 0x06 0x0b

// 7 8 9 d 0x07 0x08 0x09 0x0d

// * 0 # f 0x0c 0x00 0x0e 0x0f

//打个比方,如果你按下0键,P0口读到数据为0xed

//如果你按下2键,P0口读到数据为0x7d,按下9键为0xdb,

//我们将读到的P0口数据经过查表法就能得到相应的16进制码

//键盘的读取,我们采用分时扫描

unsigned char l_tmpdate[8]={0,0,0,0,0,0,0,0}//定义数组变量

unsigned char l_key=0x0 //定义变量,存放键值

unsigned char l_keyold=0xFF //做为按键松开否的凭证

void ReadKey(void) //扫描键盘 获取键值

void delay()//延时子函数,5个空指令

void display(unsigned char *lp,unsigned char lc)//数字的显示函数;lp为指向数组的地址,lc为显示的个数

//这个函数在第二节用过不用再说了吧!

void main(void) //入口函数

{

while(1){

ReadKey() //调用键盘扫描

display(&l_key,1) //输出显示获取的键值码

if(l_key==0x0e) //这里我们检测是否按了0x0e键,

JDQ=0 //是,我们就驱动继电器打开

if(l_key==0x0c) //闭毁检测是否按下了0x0c键,

JDQ=1 //是,我们就驱动继电器断开

}

}

void ReadKey(void) //读键盘值

{

unsigned char i,j,key

//分三个部份来理解,

//第一部份,用扫描来读取键盘,

j=0xfe

key=0xff //设定初值

for (i=0i<4i++){

P0=j //乎态空P0口低4位循环输出0,扫描键盘

//leday()

if ((P0&0xf0)!=0xf0){ //如果有键按下,P0口高4位不会全为1,

key=P0 //读取P0口,退出循环,否则循环下次

break

}

j=_crol_(j,1) //此函数功能为左循环移位

}

//第二部份,检测是否干扰或按键放开

if (key==0xff){ //如果读取不到P0口的值,比如是干扰或是键盘又松开,我们做相应复位,返回

l_keyold=0xff

SPK=1 //按键有松开,停止蜂鸣器响

return

}

else

SPK=0 //打开蜂鸣器

//第三部份,检测是新按键按下,获取新的键盘编码值

if(l_keyold!=key){ //检测按键放开否,如果一样表明没放开,不做处理,不一样表时另一岁瞎个键按下做编码转换

l_keyold=key //获取键码做为放开下次的凭证

for(i=0i<17i++){ //查表获得相应的16进制值存放l_key变量中

if (key==key_tab[i]){

l_key=i

break

}

}

}

//程序运行到这里,就表明有键值被读取存放于l_key变量中,主程序就可以检测此变量做相应外理,

//此时我们回到主程序

}

void display(unsigned char *lp,unsigned char lc)//显示

{

unsigned char i //定义变量

P2=0 //端口2为输出

P1=P1&0xF8 //将P1口的前3位输出0,对应138译门输入脚,全0为第一位数码管

for(i=0i<lci++){ //循环显示

P2=table[lp[i]] //查表法得到要显示数字的数码段

delay() //延时5个空指令

if(i==7) //检测显示完8位否,完成直接退出,不让P1口再加1,否则进位影响到第四位数据

break

P2=0 //清0端口,准备显示下位

P1++ //下一位数码管

}

}

void delay(void) //空5个指令

{

_nop_()_nop_()_nop_()_nop_()_nop_()

}

问题一:怎么从电脑上找到扫描仪 控制面板中找。。。。。。。。。。 如找不到在硬件中找。。看是不是驱动驱上了。。

问题二:如何扫描文件到电脑 扫描需要扫描仪硬件支持;把扫描仪接入电脑,安装好驱动程序;然后在我的电脑里可以看见一个独立的扫描仪设备,装好原稿,双击设备会提示你选择扫描程序(如WORD、PS之类),选定打开后,稍等扫描仪就会把原稿内容扫描过来,保存好扫描的文件即可;

如果在我的电脑里没有独立的扫描仪设备,则需要先开启图像获取软件(WORD、PPT、PS之类),然后找菜单里有导入图片的选项,选珐来自扫描仪或照相机”,选定已安装的扫描仪即可开始扫描

问题三:怎么在电脑里找扫描仪 你先看看扫描仪的品牌、型号,然后点击【开始】、【程序】,查看有没有该户描仪的程序,如果有,打开扫描仪电源,点击该程序,就可以使用扫描仪了。

问题四:扫描仪在电脑的哪里,怎么用 扫描仪是计算机的一种外设,不在电脑终端里面。

要想使用扫描仪,需要连接,然后安装驱动程序和应用程序(当然,使用windows系统自带的也亥以)才可以用。

问题五:win7下扫描仪在哪里?怎么打开扫描仪 需要通过扫描仪程序或图形处理软件来调用扫描仪,而不能直接打开设备本身。

问题六:怎么扫描电脑中的软件 QQ软件管家之类的

问题七:怎么扫描文件到电脑上去? 用有扫苗功能的打印机或者扫苗仪(前提必须安装扫描驱动),先在我的文档新建一个文件夹,然后把你想要扫苗的文件放入打印机或者扫描仪内,然后点击开始/点击控制面板/点击打印机和其它硬件/点击扫描仪和照相机/然后鼠标右键点击扫描仪图标/点击从扫描仪或取图像,按 *** 作步骤进行 *** 作。扫描的文 件从我的文档图片收藏中找。

问题八:怎样在电脑里查找打印机扫描的文件? 扫描仪工作中,会提示扫描文件保存的位置,一般都在扫描仪的安装文件夹中。可以通过扫描仪的工作面板上的“设置”,查找和更改保存扫描文件的文件夹。

寻找扫描文件的方法之一:文件找寻法

1打印机扫描的文件一般都是有日期的,可以按照日期饥行查找。

2打开【我的电脑】在搜索栏输入日期进行搜索即可找到。

寻找扫岁侍做描文件的方法之一:工具找寻法

打印机驱动安装以后都会有一个打印机【多功能机】辅助软件,我们打开以后,在扫描后面的文件夹中可以找到。

问题九:怎样用扫描仪把文件扫描到电脑上? 如何使用扫描仪扫描文件到电脑图片(这里以HP扫描仪为例)

工具:

HP LaserJet Professional M1130 MFP Series

1,启动扫描程序:双击桌面上的快捷方式或者点击开始菜单》程序》HP》HP LaserJet Professional M1130 MFP Series》扫描到

2,选择保存到文件,点击“扫描”按钮

3,输入要保存的文件名,点击“保存”按钮

4,选择来源“HP LaserJet M1130 MFP TWAIN”,点击“选择”按钮

5,这时扫描仪会开始扫描出预览图片,需要等待几秒至十几秒的时间,扫描出预览图之后,可以需要调整右侧的参数直到满意,然后点击“接受”按钮

6,需要等待几秒至十几秒的时间,扫描就完成了,会d出对话框询问是否继续扫描下一页,点击“否”按钮即可。

问题十:电脑上的照片怎么扫描 第一步:打开电脑,点击桌面上的【计算机】,win7系统是计算机,如果你的是xp,那么就是点击桌面上的【我的电脑】

第二步:打开计算机文件夹后,在乎衡右上角搜索计算机框中,会出现3种格式,类型、修改日期、大小,一般找图片都是选择类型,点击【类型】

第三步:输入图片类型格式,这里先输入jpg,输入完后会自动搜索,现在就开始在搜索jpg格式的所有图片

如果要找png格式图片,输入png就可以,任何格式的图片都是输入后缀名就可以

方法2

第一步:打开电脑,按键盘快捷键,先按住win7开机图谈巧标不放(1),在按F键(2),这时会d出搜索结果文件夹

第二步:在右上角框中,鼠标左键点击一下,会出现种类、修改日期、类型、大小、名称,点击【类型】,在输入需要打开图标的格式,已经全部搜索出来


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12369481.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存