发上程序前记一个C语言小知识,免得下次犯同样错误!
unsigned char i=0x01;
i=i<<1+1;
其结果i的值为4,而不是3。
C语言除法运算中,余数的符合要求和被除数的符号一致,比如:2/(-2); 结果为FF(-1), 2%(-2)=0
/********************************************************/
#include
unsigned char counter=0;
unsigned char Receive[3];
sbit RemPin=P0^0;
static bit flag=0;
sbit LED=P2^0;
sbit LED1=P2^5;
void delay( )
{
unsigned char i;
for(i=0;i<50;i++);
}
void delay_nms(unsigned int n)
{
unsigned int i=0,j=0;
for (i=n;i>0;i--)
for (j=0;j<1140;j++);
}
void scan()
{
unsigned char i=0;
unsigned char j=0;
unsigned char Time=10;
unsigned int count=0;
Receive[0]=Receive[1]=Receive[2]=0;
while(--Time)
{
count=0;
while(RemPin)
{
count++;
delay();
if(count>30)
{
break;
}
}
if((count>25)||(count<10))
{
continue;
}
count=0;
while(!RemPin)
{
count++;
delay( );
if(count>660)
{
break;
}
}
if((count>655)||(count<600))
{
continue;
}
count=0;
for(j=0;j<3;j++)
{
for(i=0;i<8;i++)
{
while(RemPin);
count=0;
while(!RemPin)
{
count++;
delay( );
if(count>=85)
{
return;
}
}
if((count>15)&&(count<42))
{
//counter=count;
Receive[j]=Receive[j]<<1;
Receive[j]=Receive[j]+0x01;
}
else if((count>45)&&(count<75))
{
Receive[j]=Receive[j]<<1;
//counter=count;
}
else
{
//LED1=~LED1;
Receive[0]=Receive[1]=Receive[2]=0;
counter=count;
return;
}
while(RemPin);
}
}
flag=1;
//LED=~LED;
}
}
void main()
{
while(1)
{
scan();
//P1=counter;
if(flag)
{
flag=0;
P1=Receive[2];
P1=~P1;
delay_nms(100);
}
}
}
关键字:315M 单片机 无线解码 HS2262
引用地址:
315M单片机无线解码--HS2262
推荐阅读最新更新时间:2024-03-16 15:09
单片机变频pwm实验程序设计与原理
利用stc的一款 单片机 提供的 PWM 实现变频输出。程序将变频pwm输出到 LED 上作测试。 #include reg52.h sfr CC ON = 0xD8; sfr CMOD = 0xD9; sfr CL = 0xE9; sfr CH = 0xF9; sfr CCAP0L = 0xEA; sfr CCAP0H = 0xFA; sfr CCAPM0 = 0xDA; sfr CCAPM1 = 0xDB; sbit CR = 0xDE; sbit led = P2^0; unsigned char duty = 0x80; unsigned int fre = 0xffff; void ti
[单片机]
ucosII在51内核单片机上的移植
自嵌入式系统开发以来,很长时间都采用前后台系统软件设计模式:主程序为一个无限循环,单任务顺序执行。通过设置一个或多个中断来处理异步事件。 这种系统对于简单的应用是可以的,但对于实时性要求比较高的、处理任务较多的应用,就会暴露出实时性差、系统可靠性低、稳定性差等缺点。 μC/OS-II 是一种基于优先级的抢占式多 任务实时操作系统,包含了实时内核、任务管理、时间管理、任务间通信同步(信号量,邮箱,消息队列)和内存管理等功能。它可以使各个任务独立工作,互不干涉,很容易实现准时而且无误执行,使实时应用程序的设计和扩展变得容易,使应用程序的设计过程大为减化。而且它内核源代码公开,可移植性强,为编程人员提供了很好的一个软件平台。
[单片机]
51单片机与NRF24L01无线模块连接图
5V的51单片机与NRF24L01无线模块之间连接问题,从他们那得知连接不当会出现以下问题: 1、为NRF24L01无线模块电源电压是3.3V,但是插上无线模块,用万表测量模块的电源电压达到4.几伏,这个很费解,为其供电的1117-3.3V明明输出是3.3V,插上模块电源电压就升高了呢,这是因为:51单片机I/O口的5V电压从NRF24L01的SPI口倒灌而导致的!所以连接不当就会给你带来不必要的损失。 2、还有一种可能是导致无法通讯,NRF24L01的程序比较简单,如果程序没问题,那么问题一定是出现在硬件上。很多朋友都说为什么我是无线模块无法通讯呢?调了一个星期,甚至一个月,都没有结果。人已经弄得很疲惫,都不想看到NRF24
[单片机]
一种基于KEELOQ的改进加密算法及其在单片机中的实现技术
摘要:讨论了Microchip公司的KEELOQ加解密算法的实现机制,通过引入随随机数,提出了一种新的改进算法,并给出了其在单片机中的实现方案。该算法具有简单实用、所需硬件资源少、传输效率和安全性相对较高等优点,适用于需要数据加密的小型无线数据传输系统,具有广阔的应用前景。
关键词:加密算法 KEELOQ 单片机 跳码技术
当今的编解码电路已经朝着高度集成化和微电脑化发展。像普通的固定编解码芯片和MC145026/145027、PT2262/2272等已被广泛应用于公用系统中,给生活带来了方便。然而这些芯片不能保证系统的安全性。由于这些系统每次发送的数据流一模一样,只是高低电平的组合,第三方面通过捕捉设备,一旦用户信号出现,
[单片机]
如何用单片机代替专用I/O接口芯片方法简介
采用单片机设计液位监控仪是很通用的做法。如果要测量的液位有很多路(16路以上),每路要求能滚动显示1年内每班、每日、每月的输入输出总量(1日3班),正常或意外停电数据不丢失,人机交互能力要强(要设置适当数量的按键及采用LCD显示),并且每路液位要求对应2路控制输出信号(液罐液体输入控制和输出控制),配置微型打印机端口,设置声音报警,所有这些无疑需要很多的I/O端口来支持,单凭一个单片机是办不到的,需要扩展I/O端口。在此设计中,笔者认为采用专用I/O扩展芯片有较多的弊端,权衡利弊,选择了用单片机来代替专用I/O接口芯片的方法。 1 专用 I/O芯片与单片机用作I/O芯片的对比 ①专用I/O接口芯片的I/O口数量不
[单片机]
单片机执行程序的过程
为了加深初学者对51单片机指令的理解,现在把指令执行的过程在此详细说明,希望对你有启发! 单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。 取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。 分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。 计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。 一般计算机进行工作时,首先要通过外部设备把程序和数据通过输入接口电路和数据总线
[单片机]
瑞萨电子与台积电联手打造微控制器的生态系统
全球领先的高级半导体和解决方案的供应商瑞萨电子株式会社(TSE:6723,董事长:赤尾泰,以下简称“瑞萨电子”) 与台湾积体电路制造(TSMC)(总公司:台湾新竹、日本法人:TSMC日本株式会社、横浜市西区、董事长:小野寺诚、以下简称TSMC)——今天(28日)共同宣布,双方已经签署协议,将在微控制器(MCU)技术方面的合作扩大至40纳米嵌入闪存(eFlash)的制造,以生产应用于下一代汽车及家电等消费类产品的微控制器。瑞萨电子先前已委托TSMC生产90纳米工艺的微控制器,本次合作方案中,瑞萨电子将委托TSMC生产40纳米工艺及更先进生产工艺的微控制器。 结合瑞萨电子支持高可靠性及高速的金属氧化氮氧化硅(Metal-Oxide-
[半导体设计/制造]
基于PIC单片机开发的高精度数据采集器
1 ADS1210引脚及功能
ADS1210是一种高精度、宽动态范围,采用单5V电源供电,具有24位分辨率的新型A/D转换器。封装形式有18脚双列直插式和18线贴片式,引脚功能描述如表1。
●指令寄存器(INSR)
指令寄存器是一个8位寄存器,它指明了系统是进行读操作还是写操作,并确定读/写操作的字节长度以及读/写操作寄存器的起始地址。
●命令寄存器(CMR)
命令寄存器是ADS1210的关键,它控制着ADS1210的所有特性功能。一旦串口时钟的下降沿将数据字节的最后一位写入命令寄存器,新的模式就开始生效。命令寄存器控制ADS1210所选用的选项和操作模式,包括可编程增益放大器的增
[单片机]