推荐阅读最新更新时间:2024-11-08 12:23
8051单片机的I2C接口并行扩展
1 引 言
I2C总线接口器件在视频处理、移动通信等领域的应用已经非常普遍。另外,通用的I2C总线接口器件,如带I2C总线的RAM,ROM,A/D,D/A,LCD驱动器等,也越来越多地应用于计算机及自动控制系统中。随着I2C接口器件越来越广泛的应用,8051系列单片机与他之间的通信越来越频繁。
8051系列单片机与I2C总线接口器件通信时,8051的通用口与I2C总线器件的SCL,SDA连接。根据I2C总线数据传输协议,8051必须对其两个通用口进行频繁的置位、清零。根据基于51指令系统编制的汇编程序,传送一位数据,需要9个机器周期,而对于8051,一个机器周期要耗费6个时钟周期,即用54个时钟周期才能传送一位
[嵌入式]
51单片机实现串口偶校验
1. STC单片机串口 2. PSW是一个8位寄存器。PSW的全称是Program Status Word,即程序状态字。 奇偶标志位P 每执行一条汇编指令,单片机都能根据A中1的个数的奇偶自动令P置位或清零,奇为1,偶为0。P可以填入TB8,作为偶校验。 此标志位对串行通信的数据传输非常有用,通过就校验可以检验传输的可靠性。 3. 奇偶校验 奇校验(odd parity):让传输的数据(包含校验位)中1的个数为奇数。 偶校验(even parity):让传输的数据(包含校验位)中1的个数为偶数。 4. STC单片机串口实现偶校验 //uart.c unsigned char var0,var; //var0
[单片机]
跟我学51单片机(六):单片机外部中断及红外遥控器解码
一、内容提要 上讲介绍并应用了单片机动态扫描驱动数码管,并给出了实例。这一讲将重点介绍单片机如何通过捕获来实现对红外遥控器解码。通过该讲,读者可以掌握红外遥控器的编码原理以及如何通过单片机对遥控器进行解码。 二、原理简介 随着家用电器、视听产品的普及,红外线遥控器已被广泛使用在各种类型的家电产品上(如遥控开关、智能开关等)。其具有体积小、抗干扰能力强、功耗低、功能强、成本低等特点,在工业设备中也得到广泛应用。 一般而言,一个通用的红外遥控系统由发射和接收两大部分组成,如图1 所示: 图1 红外遥控系统框图 其中发射部分主要包括键盘矩阵、编码调制、红外发射管;接收部分包括光、电信号的转换以及放大
[单片机]
51单片机内部IO口结构分析与学习
一、P0端口的结构及工作原理 P0端口8位中的一位结构图见下图: 由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。再看图的右边,标号为P0.X引脚的图标,也就是说P0.X引脚可以是P0.0到P0.7的任何一位,即在P0口有8个与上图相同的电路组成。 下面,我们先就组成P0口的每个单元部份跟大家介绍一下: 先看输入缓冲器:在P0口中,有两个三态的缓冲器,在学数字电路时,我们已知道,三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态),大家看上图,上面一个是读锁存器的缓冲器,也就是说,要读取D锁存器输出端Q的数据,那就得使读锁存器的
[单片机]
51单片机之I^2C总线
I^2C总线的SDA与CLK都是线与关系. 为了避免混乱I^2C总线要通过总线仲裁决定总线由哪一台主机控制 I^2C总线的数据位的有效性:时钟信号为高电平期间 数据线上的数据必须保持稳定,只有在时钟信号为低电平时, 数据线上的数据才可以变化. 图片 I^2C总线的起始信号与终止信号,每一字节必须是8位长度 发完还有一位应答位,所以一共会有9位. 在编写程序时,只要严格按照时序图来,万事OK,下面是我写的一示例程序,功能是先向2402芯片写入一字节数据,然后再将其读出,显示到数码管 #include reg52.h #define uint unsigned int #define uchar unsigne
[单片机]
51单片机中断响应过程举例
CPU响应 中断 时,首先把当前 指令 的下一条 指令 (就是 中断 返回后将要执行的指令)的地址送入堆栈,然后根据中断标记,将相应的中断入口地址送入PC,PC是程序指针,CPU取指令就根据PC中的值,PC中是什么值,就会到什么地方去取指令,所以程序就会转到中断入口处继续执行。这些工作都是由硬件来完成的,不必我们去考虑。这里还有个问题,大家是否注意到,每个中断向量地址只间隔了8个单元,如0003-000B,在如此少的空间中如何完成中断程序呢?很简单,你在中断处安排一个LJMP指令,不就可以把中断程序跳转到任何地方了吗? 一个完整的主程序看起来应该是这样的: 内容来自单片机之家www.dpj100.com ORG 0000H
[单片机]
51单片机中的数值
1.在MCU中都是以二进制的形式进行计算的。 2.在编程时,我们通常用到的有十进制的数值形式和十六进制的数值形式,如52,0xfe; 3.数值的大小由数据的类型来决定。 4.常用的有“unsigned int”和“unsigned char”. unsigned char 的范围是 0-255 , 与单片机端口的8位的最大值(0xff)相对应。 unsigned int 的范围是 0-65535 ,与之对应的是 0xffff 。 5.数值的写入: 在51单片机中,写入的数值可以是十进制和十六进制,但不能是二进制。 比如:P1=4; P1=0X04; 当写语句 P1=4; 时 P1^0——P1^7的电平依次为 “0010
[单片机]
由FWl22-M构成的短距离无线数据通信系统
摘要 利用AT89LV52单片机作控制器,实现基于RFWaves公司的射频芯片RFWl22-M的短距离无线数据通信系统;分析射频芯片RFWl22-M及其与单片机的接口芯片RFW-D100的特点;给出系统的硬件原理框图厦软件流程图。对应用于该装置的无线数据传输协议CSMA进行分析,并且在对固件的编程配置中加以实现, 关键词 无线数据通信系统 RFWl22-M RFW-D100 AT89LV52 CSMA协议 目前,短程射频通信技术是一种热门技术,已广泛应用于实际中。主要有无线局域网(WLAN)、个人区域网络(PAN)及无线短距离消费类产品(如中低速数据传输应用,有效范围在30m以内)。该通信技术的标准有ⅢEE80
[安防电子]