- 博客(12)
- 资源 (2)
- 收藏
- 关注
转载 实时时钟DS1302
在前面的课程中我们已经了解到了不少关于时钟的概念,比如我们用的单片机的主时钟是11.0592M、I2C总线有一条时钟信号线SCL等,这些时钟本质上都是一个某一频率的方波信号。那么除了这些在前面新学到的时钟概念外,还有一个我们早已熟悉的不能再熟悉的时钟概念——年-月-日 时:分:秒,就是我们的钟表和日历给出的时间,它的重要程度我想就不需要多说了吧,在单片机系统里我们把它称作实时时钟,以区别于前面提到
2015-03-25 17:21:55 6662 1
原创 旋转编码器 C程序
/************************************************************************************************ 函数名称:bianma_scan 函数功能:编码器扫描及处理 入口参数: 出口参数:无 备注: 100us扫描一次*****************
2015-03-16 16:24:25 8989
转载 C语言中利用共用体、结构体、位域实现位操作
编写过51(MCU)程序的同学都知道51架构的MCU支持位操作,这是一个很方便的特性,在读取/修改寄存器某位的值时非常方便快捷。但其他架构的MCU大多都不支持该特性,即不支持位操作,所在在对寄存器中某一位进行操作的时候都是and/or两个操作共同使用,在编写程序时非常麻烦。在查找了大量资料后,笔者得出了本文中提到的一种折中方法。名词解释:共用体(union)表示几个变量共用一个内存位置,在
2015-03-16 11:39:11 5521
转载 C语言头文件中定义变量问题(转)
上个星期回学校的时候,刚好碰到一个学弟在写程序,并且刚好碰到一个总编不过去的问题,我看了看,正好是个头文件重复包含问题,问题描述如下:他在程序中建立了一个global.h的文件,代码如下:#ifndef _GLOBAL_H_#define _GLOBAL_H_int a;int b;int c;然后在其他文件代码中,有多个.cpp文件引用他,
2015-03-16 11:38:24 798
转载 模拟红外协议接收程序
/*********************************************简介:本程序为模拟红外协议的接收程序 包含起始码和数据码本程序现固定一次性接收16BIT(2字节)的数据起始码与数据码长度定义如下图(用户可自行更改): **********************************************/
2015-03-04 09:33:26 744
转载 模拟红外协议发送源程序
/*********************************************简介:本程序为模拟红外协议的发送程序 包含起始码和数据码本程序现固定一次性发送16BIT的数据起始码与数据码长度定义如下图(用户可自行更改):?123456789
2015-03-04 09:31:43 896
转载 红外编解码彻底解析
1、编码格式 现有的红外遥控包括两种方式:PWM(脉冲宽度调制)和PPM(脉冲位置调制)。 两种形式编码的代表分别为NEC 和PHILIPS 的RC-5、RC-6 以及将来的RC-7。 PWM(脉冲宽度调制):以发射红外载波的占空比代表“0”和“1”。为了节省能量,一般情况下,发射红外载波的时间固定,通过改变不发射载波的时间来改变占空比。例如常用的电视遥控器,使用NEC up
2015-03-03 17:40:49 19641 1
转载 红外遥控系统原理及单片机软件解码程序,我的编写经历(C版本)
应该说现在每一块开发板都带有红外模块,并且大都配置了相应的程序。但其实自己动手写解码程序,更能锻炼自己所学,且不谈程序写的如何,这个过程中肯定是受益良多的。现在我就把我花一下午写出的解码程序与大家分享,期待高手的光临指正。 首先,必须要了解一些基本原理。其实按下遥控器的某一个键,遥控器会发出一连串经过调制后的信号,这个信号经过红外一体化模块接收后,输出解调后的数字脉冲,每个按键对应不同的
2015-03-03 17:39:40 3356
转载 C语言条件编译及编译预处理阶段
一、C语言由源代码生成的各阶段如下:C源程序->编译预处理->编译->优化程序->汇编程序->链接程序->可执行文件 其中 编译预处理阶段,读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理。或者说是扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。预处理过程先于编译器对源代码进行处理。 在C 语言中,并没有任何内在的机制
2015-03-03 16:34:42 317
转载 一种软件去除键抖动的方法
摘要:单片机控制系统中大多使用控制键来实现控制功能。消除按键瞬间的抖动是设计者必须要考虑的问题。本文介绍一种很实用的软件去抖动方法,它借助于单片机内的定时中断资源,只要运算一下逻辑表达就完成了去抖动。这个方法效率高,不耗机时且易实现。文中使用的逻辑表达式由简单卡诺图和真值表推出,使该方法的机理容易理解。文中还提供用C51单片机编程语言编写的实用例程。 关键词:单片机 键处理 控制系统 去抖
2015-03-02 16:54:15 4901
转载 关于按键扫描程序的终极讨论
一、思路基于STM8,按键处理,思路是这样的:每20ms左右一次去扫描按键,用一个key_now记录当前值,用key_last记录上次的值,如果key_now和key_last同时有效,则开始进行cnt++。 我设定两个阈值,LONG_PRESS为100(100*20ms=2s),SHORT_PRESS为4(4*20ms=80ms,去抖)。 cnt大于LONG_PRESS,
2015-03-02 16:34:56 1016
转载 关于独立按键扫描程序的思考(整合两种算法)
转自关于独立按键扫描程序的思考(整合两种算法)源程序主要部分如下:[cpp] view plaincopyprint?volatile unsigned char Trg; volatile unsigned char Cont; volatile unsigned char Release;
2015-03-02 16:26:22 1038
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人