曼切斯特编码c语言,曼彻斯特编码的接收C51程序
曼码接收程序,常用在无线信号的编码与解码中,给大家分享:
rxi()
{
// this routine gets called every time TMR0 overflows
if(T0IF) //定时器中断程序
{
TMR0 = PERIOD; // 装计时器初值
T0IF = 0; // 清定时器溢出标志
XTMR++; // 外部的系统时钟计时器加1
RFcount++; // 脉冲宽度计数器加1
return;
}
if(RAIF) //端口电平变化中断程序
{
if (RFFull) // 如果接收位满就退出
return;
RFBit = RFIn; // 取样信号接收的值
RAIF = 0;
switch (RFstate) // 当前状态
{
case TRFDATAUP:
switch (RFcount)
{
case 4:
case 5:
case 6:
case 7:
PORTA = PORTA;//启动端口电平中断
break;
case 8:
case 9:
case 10:
case 11:
case 12:
B[Bptr] <<= 1; // rotate
if ( RFBit==0) //如是有效的下跳变则该位的数据值为1,上跳变为0
{
B[Bptr]+=1; // shift in bit
}
if ( ( ++BitCount & 7) == 0)
Bptr++; // advance one byte
if (BitCount == NBIT)
{
RFstate = TRFreset; // finished receiving
RFFull = 1;
}
RFcount=0; //重新记时
PORTA = PORTA;//启动端口电平中断
break;
default: //超时或不足则退出接收
RFstate = TRFSYNC; // reset state machine in all other cases
RFcount = 0;
Bptr = 0;
BitCount = 0;
PORTA = PORTA;//启动端口电平中断
}
break;
case TRFSYNC:
if ( RFBit)
{ // rising edge detected +---+ +---..
// | | |
// +----------------+
if ( ( RFcount < SHORT_HEAD) || ( RFcount >= LONG_HEAD))
{
RFstate = TRFreset;
PORTA = PORTA;//启动端口电平中断
break; // too short/long, no header
}
else
{
RFcount =0; // restart counter
RFstate= TRFDATAUP;
PORTA = PORTA;//启动端口电平中断
}
}
else
{ // still low
RFcount=0;
PORTA = PORTA;//启动端口电平中断
}
break;
case TRFreset:
default:
RFstate = TRFSYNC; // reset state machine in all other cases
RFcount = 0;
Bptr = 0;
BitCount = 0;
PORTA = PORTA;//启动端口电平中断
break;
} // switch
} //电平中断
} // rxi
void InitReceiver()
{
IOCA = 2;
T0IF = 0;
T0IE = 1; // TMR0 overflow interrupt
RAIE = 1; //使能端口电平变化中断
GIE = 1; // enable interrupts
RFstate = TRFreset; // reset state machine in all other cases
RFFull = 0; // start with buffer empty
XTMR = 0; // start extended timer
TMR0 = PERIOD; // 装计时器初值
PORTA = PORTA;//启动端口电平中断
}
曼切斯特编码c语言,曼彻斯特编码的接收C51程序相关推荐
- 曼彻斯特编码|查分曼彻斯特编码|不归零码
从网上搜集的资料 不是我原创 曼彻斯特编码(Manchester Encoding),也叫做相位编码(PE),是一个同步时钟编码技术,被物理层使用来编码一个同步位流的时钟和数据.曼彻斯特编码被用 ...
- 计算机网络---非归零码、曼彻斯特编码和差分曼彻斯特编码
题目: 在数据通信技术中,将利用模拟信道通过调制解调器传输模拟信号的方法称为频带传输:将利用数字信道直接传输数字信号的方法称为基带传输. 基带传输中,数字信号的编码方式主要有三种:非归零码.曼彻斯特编 ...
- 数据通信基础 - 数据编码(曼彻斯特编码 和 差分曼彻斯特编码)
文章目录 1 概述 2 常见编码方案 2.1 曼彻斯特编码 和 差分曼彻斯特编码 2.2 4B/5B 编码 2.3 各种编码效率 3 扩展 3.1 单极性码 和 极性码 3.2 双极性码 3.3 归零 ...
- 不归零制编码、曼彻斯特编码和差分曼彻斯特编码实验
计算机网络中的物理层数字信号的编码 不归零制编码.曼彻斯特编码和差分曼彻斯特编码 不归零制(NRZ):正电平代表1, 负电平代表0 曼彻斯特编码: 位周期中心的向上跳变代表0, 位周期中心的向下跳变代 ...
- 曼彻斯特编码与差分曼彻斯特编码
曼彻斯特编码 定义 也叫相位编码(PE) ,是一种同步时钟编码技术. 特点 第一种G. E. Thomas, Andrew S. Tanenbaum1949年提出的,它规定0是由低-高的电平跳变表示, ...
- 常用数字信号编码之反向不归零码码、曼彻斯特编码、差分曼彻斯特编码
数字信号编码是要解决数字数据的数字信号表示问题,即通过对数字信号进行编码来表示数据.数字信号编码的工作一般由硬件完成,常用的编码方法有以下:反向不归零码码.曼彻斯特编码.差分曼彻斯特编码. 反向不归零 ...
- 计算机网络曼彻斯特编码与差分曼彻斯特编码
曼彻斯特编码与差分曼彻斯特编码 (1)两种编码在中间均需要进行一次跳变 (2)曼彻斯特编码:吉大原则为负到正为1,正到负为0 (3)差分曼彻斯特编码:为0时发生跳变,为1时不发生跳变,在此处跳变的含义 ...
- 五、数据编码:曼侧斯特编码,差分曼彻斯特编码的区别 , 4B/5B编码 ——网络工程师成长之路
计算机网络常见的八大数据编码 单极性码 与 极性码 双极性码 归零编码 不归零码 1变 0 不变 双相码 曼侧斯特编码 : 差分曼侧斯特编码 : 差分曼彻斯特编码: 有 0 无 1 两种曼彻斯特编码的 ...
- 曼彻斯特编码、差分曼彻斯特编码怎么画;曼彻斯特编码、差分曼彻斯特编码的画法
网上看了很多讲解,总感觉不是很全面,在此小结一下. 先看个例子:试画出Ox52B7的曼彻斯特编码及差分曼彻斯特编码 首先 :Ox52B7= 0101 0010 1011 0111 B 曼彻斯特编码画法 ...
最新文章
- cloudstack 4.0 XenServer 日常简单故障处理
- LA3942字典树+递推
- aMCMC for Horseshoe: algorithms
- tomcat 启动异常 The web application [ROOT] registered the JDBC driver [xxx] but failed to unregister it
- mysql的快照速度_mysql 快照读 当前度
- JSON格式数据与数据组件
- 美国在理论计算机科学的研究重视,清华麻省理工香港中文联建理论计算机科学研究中心...
- linux内核zfs,Linus Torvalds 不建议使用 ZFS On Linux
- 如何在Mac上恢复已删除或丢失的分区
- 如何完整离线保存网页,包括网页完整特效?
- UI设计流程是什么?来看看UI设计完整的设计流程吧
- 告别人工智能的追随角色
- 计算机测色配色应用,计算机测配色方法及注意事项
- App工厂之痛:一个知识问答社区的死亡样本
- 【​观察】做好数据到介质的连接者 新数据时代浪潮存储的行与思
- 把数字翻译成字符串(递归,动态规划)
- 中国二线城市有哪些比较知名的芯片设计企业
- 使用梯度上升法求解 PCA 问题
- 快速学习-RocketMQ-“Request-Reply”特性
- S2B2C模式是什么?与其他电商模式有何区别?