STC89C52单片机I2C通信以及AT24C02介绍使用代码演示
目录 AT24C02引脚介绍与使用 AT24C02介绍 I2C通信介绍 I2C通信时序 起始条件与终止条件 发送一个字节(主机发送到从机) 接受一个字节(从机发送到主机)
目录 AT24C02引脚介绍与使用 AT24C02介绍 I2C通信介绍 I2C通信时序 起始条件与终止条件 发送一个字节(主机发送到从机) 接受一个字节(从机发送到主机)
目录 蜂鸣器介绍 驱动电路 三极管驱动 集成电路驱动 音乐的相关知识 音符与计时器重装载值对应表 将乐谱转换为宏定义的音调谱 实际代码演示: 蜂鸣器介绍 蜂鸣器是一种将电信号转换为声音信号的器件,常
目录 AT24C02引脚介绍与使用 AT24C02介绍 I2C通信介绍 I2C通信时序 起始条件与终止条件 发送一个字节(主机发送到从机) 接受一个字节(从机发送到主机)
目录 蜂鸣器介绍 驱动电路 三极管驱动 集成电路驱动 音乐的相关知识 音符与计时器重装载值对应表 将乐谱转换为宏定义的音调谱 实际代码演示: 蜂鸣器介绍 蜂鸣器是一种将电信号转换为声音信号的器件,常
答:建议购买一套ARM的开发学习板和仿真器(可以在网上查到适合自己的),结合教材在实践中学习ARM的基本开发方法。首先可以通过简单的程序编写熟悉ARM的指令集、体系结构、运行模式等基本原理,如果有一定的单片机知识基础,相信很快就能对此熟练掌握。接下来,因为32位ARM的应用大多会使用操作系统,所以此时可根据个人的计算机知识程度选择一个适合自己学习的嵌 入式实时操作系统,多上机实作掌握嵌入式系统设计的基本方法,学习操作系统的应用程序的编程,并进一步掌握包含软硬件的基于ARM的系统应用开发。这一步需要具有高级语言的编程及操作系统知识,可能对非计算机专业的人员会有较大的难度,不过事在人为,相信只要有决心,难关总是可以被攻破的。另外,网上也有很多关于ARM开发的论坛,可以常上去下载相关的学习资料,请教高手,相互交流,相信会有所帮助。
答:PHILIPS半导体的P87C591应该能满足此条件,目前生产51单片机的半导体厂家有INTEL、ATMEL、PHILIPS、ANANOG DEVICES、DALLAS等,可以登陆其网站,查询相应的产品信息。
单片机的初始化操作,给复位脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就使MCS-51复位。 .高电平0000H 07H FFH
外扩的RAM芯片既能读出又能写入,所以通常都有读写控制引脚,记为OE和WE。外扩RAM的读、写控制引脚分别与51的RD和WR引脚相连。 外扩的EPROM在正常使用中只能读出,不能写入,故EPROM芯片没有写入控制引脚,只有读出引脚,记为OE,该引脚与51单片机的PSEN相连
ACC中为0,JZ指令就会转移; ACC中不为0,JNZ指令就会转移
CPU是通过测试TCON和SCON中各标志位来确定是否有中断请求的发生以及是哪一个中断源的请求
P0口为地址/数据线复用,分时传送数据和低8位地址信息。在接口电路中,通常配置地址锁存器,用ALE信号锁存低8位地址A0~A7,以分离地址信息和数据信息。 P2接口为高8位地址线,扩展外部存储器是传送高8位地址A8~A15。 PSEN为地址程序存储器的控制信号,RD(p3.7)WR(p3.6)为数据存储器和I/O口的读写控制信号,他们是在执行不同指令是由硬件产生不同控制信号
工作方式2:自动重新装入计数初值的8位定时器/计数器工作方式。 工作方式2的16位定时器/计数器被拆成两个8位寄存器TH0和TL0,CPU在对它们初始化时必须装入相同的定时器/计数器初值。定时器/计数器启动后,TL0按8位加1计数器计数,当TL0计数溢出时,置位TF0的同时又从预置寄存器TH0中重新获得计数初值并启动计数。如此反复。适合于需要重复计数的应用场合,也可以当做串行数据通信的波特率发生器使用。
CY:进位/借位标志 ; AC:半进位/借位标志 ; F0:用户自定义标志 ; RS1、RS0:当前工作寄存器组选择位; OV:溢出标志 ;P:奇偶标志
(1)工作寄存器组(00H——1FH) 这是一个用寄存器直接寻址的区域,内部数据RAM区的0—31,共32个单元。它是4个通用工作寄存器组,每个组包含8个8位寄 存器,编号为R0——R7。 (2)位寻址区(20H——2FH) 16个字节单元,共包含128位,这16个字节单元既可以进行字节寻址,又可以实现位寻址。主要用于位寻址。 (3)堆栈与数据缓冲区(30H——7FH) 用于设置堆栈、存储数据。
产生中断信号,发出中断申请,响应中断,进入中断服务程序,中断返回。 在 MCS—51单片机系统中,当有两个以上的中断源同时提出申请时,CPU到底响应哪一个中断源发出的中断申请, 它们遵循什么原则? MCS—51单片机系统的“内部查询次序”是什么? (1)先响应优先级高的中断请求,再响应优先级低的中断请求。 (2)如果一个中断请求己被响应,同级的其他中断请求将被禁止。 (3)如果同级的多个中断请求同时出现,CPU则按单片机内部的自然优先级顺序响应各中断请求。 外部中断0→定时器0中断→外部中断l→定时器1中断→串行接口中断。
(1)有中断源发出中断请求。 (2)中断总允许控制位EA=l, CPU开放总中断。 (3)申请中断的中断源的中断允许位为1,即该中断没有被屏蔽。 (4)无同级或更高级中断正在服务。 (5)当前指令周期已经结束。 (6)若现行指令为RETI或访问IE或IP指令时,读指令以及紧接着的另一条指令已执行完毕。 满足以上条件,则CPU响应响应中断元的中断请求。
将微处理器(CPU)、存储器(存放程序或数据的ROM和RAM)、总线、定时器/计数器、输入/输出接口(I/O口)、中断系统和其他多种功能器件集成在一块芯片上的微型计机,称为单片微型计算机,简称单片机。
一、电源和地线方面的处理 1、模拟电源和数字电源要分别供电,可以使用两个稳压源分别供电,但是两个电源之间的电压差必须满足数据手册中的规定(<0.5V,小于0.3V是比较理想的)。实际应用中模拟电源和数字电源可以来自同一个稳压器的输出,只在AV+与VDD之间接简单的滤波器也是很有效的。这里要加一个小电感,也可以用低阻值的电阻(通常2欧姆,电阻要有足够的寄生电感。) 这种方式既能降低成本又能减少体积。(关于这一点可以参考C8051F各种目标板的原理图的电源部分)。 2、在地线方面,模拟地和数字地要分开布线,然后在一点通过磁珠连接,在实际应用中也可以使用0欧姆绕线电阻连接的。该绕线电阻要有寄生电感,另外,在布线时一定要注意地线应该尽可能的粗,或者采用大面积覆地,电源线也要尽量粗,并且在单片机所有电源和地之间以及每个外围集成电路的VDD和GND间加去耦合电容。 3、如果所使用的器件上有模拟电源,模拟地,数字电源和数字地,所有这些引脚不可以悬空,必须连接。 二、在严酷环境下使用C8051F器件时,在PCB设计时应注意那些问题? 在严酷条件下使用C8051F器件时,我们提供给您的一般性建议如下: 1) 在器件的每个电源引脚处放置0.1μF和1.0μF的去耦电容,而且要尽可能地靠近芯片。这一点适用于板上所有的IC(集成电路)。* 2) 尽可能将板上不使用的空间接地,即所谓的大面积覆铜。 3) 在靠近器件外部振荡器引脚处放置外部晶体和其他振荡器元件(如果可行的话)。 4) 使用最短的连线以避免产生“天线”,尤其在下列引脚处:/RST,MONEN,XTAL1,XTAL2,TMS,TCK,TDI和TDO。 5) 应使用一个1k - 4.7k 的电阻将/RST拉为高电平。且应该在/RST走线和地之间设一个0.1uF的去耦电容* 6) 应将MONEN直接接至片上的VDD (首选)或接地。* 7) 将TMS、TCK、TDI 和接固定电平。* 8) 连接至系统电缆或其他电路板上的信号应在PCB的连接点处适当地滤波。 * 避免使这些连接在板上形成大的回路。 三、对JTAG引脚的处理 在电路设计时,JTAG口的TCK要加3.3V上拉。上拉电阻值取4.7K。另外,要考虑到在成品阶段(此时已不需要通过JTAG编程),将TCK.TMS.TDI引脚接地,这样更能提高系统的抗干扰能力,对于提高系统的稳定性是非常主要的。 四、对未用到的IO口/模拟输入口的处理 对未用到的IO口建议:设置为漏极开路;并加固定电平;或设置为推挽方式;未用的模拟输入也要接地(接模拟地)。 五、在电路设计时的IO口/模拟输入口的保护 1、在可能对IO口有瞬态冲击的情况下,一定要对IO口进行保护,如可能会有瞬间大电流,就要在IO口上串接限流电阻,建议取值100欧姆。如有瞬态大电压,就要在IO口上接TVS或快速反应二极管。 2、对在产品中使用的模拟输入引脚的输入电平,要在器件的允许范围值内(具体的参数见数据手册)。一般的ADC的输入电压范围是0V~VREF。同时不可以超过器件的极限参数(见数据手册),否则可能造成永久性损坏。具体的做法可以加两个肖特基二极管到电源和地。 六、对复位引脚/MONEN(电源监视)引脚的处理 1、为了提高系统的抗干扰能力和可靠性,建议不要将复位引脚悬空,推荐电路为:在复位引脚加强上拉,电阻可以选择2~10K,还要加一个0.1uF~10uF的去耦电容。 2、如果接有外部看门狗电路,在调试及下载程序的过程中要将看门狗电路断开 3、如果所使用的芯片上有MONEN引脚,此引脚不要悬空,建议直接接电源(使能MONEN)。 七、外接晶振的注意事项 1、选择质量好的晶振、选择损耗小的晶振电容。 2、X TAL1和XTAL2口不要接入5V电压,在接入CMOS时钟输入时,要注意。 3、晶体振荡电路部分对在PCB的板上布局非常敏感,应将晶体尽可能地靠近器件XTAL引脚,并在晶体引脚接上微调(10PF~33PF)电容。布线应尽可能地短并用地线屏蔽,防止其它引线引入噪声或干扰。 4、晶体外壳最好接地。 5、对于C8051F3XX器件,在外接晶体时,一定不要忘记在晶体两端接10MW的电阻。 6、晶体微调电容的地要接模拟地。 八、焊接温度的注意事项 当使用自动焊接时应严格控制以下参数: 1、温升速率:小于6℃/秒 2、预热区芯片引脚的最大温度:125℃ 3、回流焊的最大温度:建议215℃到220℃(最大值为235℃) 4、芯片通过液态焊料温度状态的时间:30至85秒(建议75秒) 5、最大冷却速率:4℃/秒 如果使用手工焊接,也应注意电烙铁的温度不易过高,与芯片的接触时间不易过长; 关于焊接的详细资料参见附页<<超小型芯片(SMT)焊接指南:QFP和MLP封装器件。 九、编写软件方面的注意事项 1、如使用C51编程,在使用指针变量(对FLASH进行写操作)按如下方式定义: unsigned char xdata *idata(或data) pwrite; 这样做的目的是确保写FLASH的指针的地址被分配在或空间。 2、不用的代码空间全部清为“0”,这可以在程序跑飞后再重新运行。在跳转指令前加两到三个NOP指令。这样也可以在程序跑飞后重新运行。
答:C8051F MCU的CIP-51内核采用流水线结构,与标准的8051结构相比,指令执行速度有很大的提高。标准的8051单片机执行一个单周期指令需要12个系统时钟周期,而C8051F MCU执行一个单周期指令只需要一个系统时钟周期。如果系统时钟频率为25MHz,执行一个单周期指令所需时间为40ns。