51按键程序
“51按键程序”相关的资料有哪些?“51按键程序”相关的范文有哪些?怎么写?下面是小编为您精心整理的“51按键程序”相关范文大全或资料大全,欢迎大家分享。
按键程序
单片机按键程序设计及电路设计
在单片机应用系统中,按键主要有两种形式:1、直接按键; 2、矩阵编码键盘。直接按键的每个按键都单独接到单片机的一个I/O口上,直接按键则通过判断按键端口的电位即可识别按键操作;而矩阵键盘通过行列交叉按键编码进行识别。下面我们以S51增强型单片机实验板的直接按键来学习单片机轻触按键在单片机系统中的应用。
S51增强型单片机轻触按键原理图
图 1
一、
按键时序分析
通常所用的按键为轻触机械开关,正常情况下按键的接点是断开的,当我们按压按钮时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而机械触点在闭合及断开的瞬间均伴随有一连串的抖动,按键的时序如下图2所示,抖动时间的长短由按键的机械特性及操作人员按键动作决定,一般为5ms~20ms;按键稳定闭合时间的长短是由操作人员的按键按压时间长短决定的,一般为零点几秒至数秒不等。
二、
轻触按键操作时序示意图
图 2
从上面图2中我们可以看到,一次完整的击键过程,包含以下5个阶段: 1. 等待阶段: 此时按键尚未按下,处于空闲阶段。
2. 前沿(闭合)抖动阶段:此时按键刚刚按下,但按键信号还处于抖动状态,这个时间一般为
按键去抖动程序
按键去抖动
一、实验目的
1、学习基于VHDL 描述状态机的方法;
2、学习 VHDL 语言的规范化编程,学习按键去抖动的原理方法。 二、实验平台
微机一台(Windows XP 系统、安装QuartusⅡ等相关软件)、CPLD 学习板一块、5V 电源线一个、下载线一条。 三、设计要求
机械式轻触按键是常用的一种外围器件,由于机械原因导致的抖动会使得按键输入出现毛
刺。设计一个按键去抖动电路,并用按键作为时钟,结合计数器观察去抖动前后的效果有什么不同。 四 设计方案
思路提示:按键去抖动通常采用延时判断的方法,去除按键过程中出现的毛刺。其实现过程是:当查询到按键按下时,延时一段时间再去判断按键是否仍然被按下,若是则此次按键有 效,否则看作是干扰。这可以利用状态机来实现,
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all; entity qudou is port(
clk, en: in std_logic;
sp: out integer range 0 to 7); end
51单片机_矩阵按键检测
《51系列单片机_矩阵按键检测》此程序使用 单片机89SC52// 1、 此程序实现矩阵按键的检测功能,按下按键时,数码管显示按键的相应键值
《51系列单片机_矩阵按键检测》
此程序使用 单片机89SC52
// 1、 此程序实现矩阵按键的检测功能,按下按键时,数码管显示按键的相应键值
#include<reg52.h>
void delay_ms(int n) //延时函数,延时n毫秒
{
int i, j;
for(i=0; i<n; i++)
for(j=0; j<110; j++);
}
void display(int num) //控制数码管按位输出显示数值num {
char BitSet[8] =
{
0x7f, 0xbf, 0xdf, 0xef,
0xf7, 0xfb, 0xfd, 0xfe
}; //用于设置(低电平位选)数码管的位选信号,从低到高对应8个数码管
char NumberCode[16] =
{
0x3f, 0x06, 0x5b, 0x4f,
0x66, 0x6d, 0x7d, 0x07,
0x7f, 0x6f, 0x77, 0x7c,
0x39, 0x5e, 0x79, 0x71,
}; //用
鼠标按键精灵(源码 + 程序)
鼠标按键精灵
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#AutoIt3Wrapper_Res_Description=MarinaClick
#AutoIt3Wrapper_Res_Fileversion=1.01Beta
#AutoIt3Wrapper_Res_Language=English
#Region ### START Koda GUI section ### Form=
HotKeySet("{F1}", "Focus")
HotKeySet("{F2}", "Active")
HotKeySet("{F3}", "Pause")
HotKeySet("{ESC}", "Terminate")
Global $pos, $index, $target
51单片机按键控制花样灯
51单片机按键控制花样灯
时间:2012-09-10 13:50:11 来源:51hei 作者:
/****************************************************
* 本程序实现用按键控制花样灯。 *
* 当K1按下时,灯从0xfe向左跑一遍; *
* 当K2按下时,LED灯从0x7f向右跑一遍到了0xfe右跑回到起始位置; *
* 当K3键按下时,LED灯从0xfe开始作流水灯形式运行一次,然后再流回来。 * * 当K4键按下时,LED灯先亮前四个,接着再转向亮后四个。 *
* 当K5键按下时,结束任意正在进行的程序,使LED灯全部熄灭。
51单片机+带字库液晶12864+DS1302数字时钟C源程序(无按键修改功能)
51单片机+带字库液晶12864+DS1302数字时钟C源程序(无按键修改功能)
经过两天的搜索与调试,在别人程序的基础上,不断修改,终于调试成功了这个程序。目前还不能修改时间与日期,只是以预定时间以始。
适用于开发板:51单片机(AT89S52)+带字库液晶12864(ST7920)+DS1302(实时时钟) 实现功能:简单,数字时钟+日期(以后会不断完美)。 C语言源程序如下:
#include #define uchar unsigned char #define uint unsigned int /*DS1302 端口设置 */ sbit SCK=P3^6; //DS1302时钟 sbit SDA=P3^4; //DS1302 IO sbit RST = P3^5; // DS1302复位 bit ReadRTC_Flag; //读DS1302全局变量 /* 12864端口定义*/ #define LCD_data P0 //带字库液晶12864数据口 sbit LCD_RS = P2^4; //寄存器选择输入 sbit LC
MSP430程序库七按键
MSP430程序库<七>按键
按键是单片机系统最常用的输入设备之一;几乎是只要需要交互输入,就必须有键盘。这篇博客实现了一个通用的键盘程序,只要提供一个读取键值的函数(底层键值),程序将完成消抖、存入队列等一些列处理。同时本程序提供最常用的4*4矩阵键盘的程序,和4个按键的程序。
?
硬件介绍:
本文主要实现了一个键盘的通用框架,可以很方便的改为不同的键盘函数,这里实现了两种按键4个单独按键和4*4行列扫描的键盘。
4个按键的是这样的:四个按键分别一端接地,另一端接上拉电阻后输入单片机的P1.0-P1.3口;这样,按键按下时,单片机接到低电平,松开时单片机输入信号有上拉电阻固定为高电平。
4*4的按键:行输入信号配有桑拉电阻,无按键时默认电平高电平;列扫描信号线直接接到按键列线;读键时,列扫描信号由单片机给出低电平信号(按列逐列扫描),读取行信号,从而判断具体是哪个按键;电路图大概如下:
图中,IN是键盘的列扫描线,OUT是键盘的输出的行信号线。扫描是也可以按行扫描,这时IN是行扫描线,OUT的按键输出的列信号线。我的程序是按列扫描的(行列扫描原理一样,只是行列进行了交换)。
这里,同时实现了4*4按键的scanf函数的移植,同时,加入了之
51单片机奇偶校验C51程序
51单片机奇偶校验C51程序
采用偶校验,单片机串口方式3,9位数据,最后一位是奇偶校验位。
偶校验:就是发送的8位数据中1的个数为偶数时,TB8=0;为奇数时,TB8=1; 奇校验:就是发送的8位数据中1的个数为奇数时,TB8=0;为偶数时,TB8=1; 由于PSW中的P可以表达累加器A中“1”的个数的奇偶性,具体如下: P(PSW.0)奇偶标志位:
P=1,A中“1”的个数为奇数
P=0,A中“1”的个数为偶数
所以要用P和TB8、RB8作为发送与接收的判据,则必须使用偶校验。 C语言程序如下: 发送程序
Void chek_even(uchar data) {
ACC=data; TB8=P; SBUF=data; While(!TI); TI=0; }
接收程序
Void chek_even(uchar data) {
While(!RI); RI=0;
data= SBUF;
ACC=data;
If(RB8==P)chek_flag=0; Else chek_flag=1; }
51单片机中断程序大全
实用文档
//实例42:用定时器T0查询方式P2口8位控制LED闪烁
#include /************************************************************** 函数功能:主函数 **************************************************************/ void main(void) { // EA=1; //开总中断 // ET0=1; //定时器T0中断允许 TMOD=0x01; //使用定时器T0的模式1 TH0=(65536-46083)/256; //定时器T0的高8位赋初值 TL0=(65536-46083)%6; //定时器T0的高8位赋初值 TR0=1; //启动定时器T0 TF0=0; P2=0xff; while(1)//无限循环等待查询 { while(TF0==0)
单片机按键矩阵识别(含程序、原理图)
按键矩阵识别技术实验说明
如图2所示,把P1端口的8条I/O口分成4条列线4条行线交叉但不接触构成4×4键盘阵列,16个按键放置交叉位置,这样在单片机复杂系统需要较多按键时,这种接法可以节省单片机的硬件资源。
1.结合给出的电路原理图试分析4*4键盘矩阵识别原理,及LED动态扫描原理。(6分)
2.根据分析的键盘矩阵识别原理设计程序实现一下功能:当按下某个按键时在2个七段数码管上显示该按键的编号(注意考虑同时按下多个按键时程序处理过程)、按下某个按键使其弹起时对于消抖情况程序的处理。(9分)
IC STC89C51CY 12MHz1918XTAL1XTAL2P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617C1 30PC2 30