基于AT89C52的学习红外遥控灯 原理图

作者&投稿:绪容 (若有异议请与网页底部的电邮联系)
求 基于AT89S52的学习型红外线遥控器的设计 PCB文件~

当今社会科学技术的发展与日俱增人们的生活水平也是日益提高为了p减少人们的工作量所以对各种家用电器、电子器件的非人工控制的要求也是越来越高针对这种情况设计出一种集成度比较高的控制体系是必然的。单片机的集成度很高它具有体积小、质量轻、价格便宜、耗电少等突出特点尤其耗电少又可使供电电源体积小、质量轻等优点因此广受人们的青睐。 本文详细介绍了学习型红外线遥控器的软硬件设计方法并给出了具体的各单元电路设计、程序设计及程序流程图。在硬件设计中选取AT89C52型号单片机为核心器件并给出外围电路模块如红外线接收模块、红外线发射模块以及外部控制模块等组成部分的设计实现。本学习型红外线遥控器采用最小化应用模式设计电路简单尤其是通过大量不同遥控码的特征分析在遥控码的读入时选择了最佳采样间隔 遥控码的学习成功率大大提高。因此它能成功地学习各种红外遥控设备的编码并通过40 kHz载波发送学习到的记忆信号。实现了对各种各样红外遥控的学习从而实了学习型遥控器。 关键词红外遥控AT89C52红外发射红外接收

上威客网 寻求

引脚功能及管脚电压

  AT89C52为8 位通用微处理器,采用工业标  PDIP封装的AT89C52引脚图

准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0~P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(32~39 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。

P0 口

  P0 口是一组8 位漏极开路型双向I/O 口, 也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的   方式驱动8 个TTL逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。   在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。   在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

P1 口

  P1 是一个带内部上拉电阻的8 位双向I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑   门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉   电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。   与AT89C51 不同之处是,P1.0 和P1.1 还可分别作为定时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),   参见表1。   Flash 编程和程序校验期间,P1 接收低8 位地址。   表.P1.0和P1.1的第二功能   引脚号 功能特性 

P1.0 T2,时钟输出 

P1.1 T2EX(定时/计数器2) 

P2 口

  P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑   门电路。对端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。   在访问外部程序存储器或16 位地址的外部数据存储器(例如执行MOVX @DPTR 指令)时,P2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行MOVX @RI 指令)时,P2 口输出P2 锁存器的内容。   Flash 编程或校验时,P2亦接收高位地址和一些控制信号。

P3 口

  P3 口是一组带有内部上拉电阻的8 位双向I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻   辑门电路。对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。   P3 口除了作为一般的I/O 口线外,更重要的用途是它的第二功能   P3 口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。

RST

  复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

ALE/PROG

  当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字   节。一般情况下,ALE 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE 脉冲。   对Flash 存储器编程期间,该引脚还用于输入编程脉冲(PROG)。   如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只有一条   MOVX 和MOVC指令才能将ALE 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 禁止位无效。

PSEN

  程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52 由外部程序存储器取指令(或数   据)时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

EA/VPP

  外部访问允许。欲使CPU 仅访问外部程序存储器(地址为0000H—FFFFH),EA 端必须保持低电平(接   地)。需注意的是:如果加密位LB1 被编程,复位时内部会锁存EA端状态。   如EA端为高电平(接Vcc端),CPU 则执行内部程序存储器中的指令。   Flash 存储器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这必须是该器件是使用12V 编程电压Vpp。

XTAL1

  振荡器反相放大器的及内部时钟发生器的输入端。

XTAL2

  振荡器反相放大器的输出端。

编辑本段特殊功能寄存器

  在AT89C52 片内存储器中,80H-FFH 共128 个单元为特殊功能寄存器(SFE),SFR 的地址空间映象如表2 所示。   并非所有的地址都被定义,从80H—FFH 共128 个字节只有一部分被定义,还有相当一部分没有定义。对没有定义的   单元读写将是无效的,读出的数值将不确定,而写入的数据也将丢失。   不应将数据“1”写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单   元数值总是“0”。   AT89C52除了与AT89C51所有的定时/计数器0 和定时/计数器1 外,还增加了一个定时/计数器2。定时/计数器2 的控   制和状态位位于T2CON(参见表3)T2MOD(参见表4),寄存器对(RCAO2H、RCAP2L)是定时器2 在16 位捕获方式或16 位   自动重装载方式下的捕获/自动重装载寄存器。

编辑本段数据存储器

  AT89C52 有256 个字节的内部RAM,80H-FFH 高128 个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128   字节的RAM 和特殊功能寄存器的地址是相同的,但物理上它们是分开的。   当一条指令访问7FH 以上的内部地址单元时,指令中使用的寻址方式是不同的,也即寻址方式决定是访问高128 字节   RAM 还是访问特殊功能寄存器。如果指令是直接寻址方式则为访问特殊功能寄存器。   例如,下面的直接寻址指令访问特殊功能寄存器0A0H(即P2 口)地址单元。   MOV 0A0H,#data   间接寻址指令访问高128 字节RAM,例如,下面的间接寻址指令中,R0 的内容为0A0H,则访问数据字节地址为0A0H,   而不是P2 口(0A0H)。   MOV @R0,#data   堆栈操作也是间接寻址方式,所以,高128 位数据RAM 亦可作为堆栈区使用。   ·定时器0和定时器1:   AT89C52的定时器0和定时器1 的工作方式与AT89C51 相同。

编辑本段片上资源

定时器2

  基本特性:    定时器2 是一个16 位定时/计数器。它既可当定时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能寄   存器T2CON(如表3)的C/T2 位选择。定时器2 有三种工作方式:捕获方式,自动重装载(向上或向下计数)方式和波   特率发生器方式,工作方式由T2CON 的控制位来选择。   定时器2 由两个8 位寄存器TH2 和TL2 组成,在定时器工作方式中,每个机器周期TL2 寄存器的值加1,由于一个机   器周期由12 个振荡时钟构成,因此,计数速率为振荡频率的1/12。   在计数工作方式时,当T2 引脚上外部输入信号产生由1 至0 的下降沿时,寄存器的值加1,在这种工作方式下,每个   机器周期的5SP2 期间,对外部输入进行采样。若在第一个机器周期中采到的值为1,而在下一个机器周期中采到的值为0,   则在紧跟着的下一个周期的S3P1 期间寄存器加1。由于识别1 至0 的跳变需要2 个机器周期(24 个振荡周期),因此,最   高计数速率为振荡频率的1/24。为确保采样的正确性,要求输入的电平在变化前至少保持一个完整周期的时间,以保证输   入信号至少被采样一次。   捕获方式:   在捕获方式下,通过T2CON 控制位EXEN2 来选择两种方式。如果EXEN2=0,定时器2 是一个16 位定时器或计数器,   计数溢出时,对T2CON 的溢出标志TF2 置位,同时激活中断。如果EXEN2=1,定时器2 完成相同的操作,而当T2EX 引   脚外部输入信号发生1 至0 负跳变时,也出现TH2 和TL2 中的值分别被捕获到RCAP2H 和RCAP2L 中。另外,T2EX 引   脚信号的跳变使得T2CON 中的EXF2 置位,与TF2 相仿,EXF2 也会激活中断。捕获方式如图4 所示。   自动重装载(向上或向下计数器)方式:   当定时器2工作于16位自动重装载方式时,能对其编程为向上或向下计数方式,这个功能可通过特殊功能寄存器T2CON   (见表5)的DCEN 位(允许向下计数)来选择的。复位时,DCEN 位置“0”,定时器2 默认设置为向上计数。当DCEN   置位时,定时器2 既可向上计数也可向下计数,这取决于T2EX 引脚的值,参见图5,当DCEN=0 时,定时器2 自动设置   为向上计数,在这种方式下,T2CON 中的EXEN2 控制位有两种选择,若EXEN2=0,定时器2 为向上计数至0FFFFH 溢   出,置位TF2 激活中断,同时把16 位计数寄存器RCAP2H 和RCAP2L重装载,RCAP2H 和RCAP2L 的值可由软件预置。   若EXEN2=1,定时器2 的16 位重装载由溢出或外部输入端T2EX 从1 至0 的下降沿触发。这个脉冲使EXF2 置位,如果   中断允许,同样产生中断。   定时器2 的中断入口地址是:002BH ——0032H 。   当DCEN=1 时,允许定时器2 向上或向下计数,如图6 所示。这种方式下,T2EX 引脚控制计数器方向。T2EX 引脚为逻   辑“1”时,定时器向上计数,当计数0FFFFH 向上溢出时,置位TF2,同时把16 位计数寄存器RCAP2H 和RCAP2L 重装   载到TH2 和TL2 中。 T2EX 引脚为逻辑“0”时,定时器2 向下计数,当TH2 和TL2 中的数值等于RCAP2H 和RCAP2L   中的值时,计数溢出,置位TF2,同时将0FFFFH 数值重新装入定时寄存器中。   当定时/计数器2 向上溢出或向下溢出时,置位EXF2 位。   波特率发生器:   当T2CON(表3)中的TCLK 和RCLK 置位时,定时/计数器2 作为波特率发生器使用。如果定时/计数器2 作为发送器或   接收器,其发送和接收的波特率可以是不同的,定时器1 用于其它功能,如图7 所示。若RCLK 和TCLK 置位,则定时器2   工作于波特率发生器方式。   波特率发生器的方式与自动重装载方式相仿,在此方式下,TH2 翻转使定时器2 的寄存器用RCAP2H 和RCAP2L 中的16   位数值重新装载,该数值由软件设置。   在方式1 和方式3 中,波特率由定时器2 的溢出速率根据下式确定:   方式1和3的波特率=定时器的溢出率/16   定时器既能工作于定时方式也能工作于计数方式,在大多数的应用中,是工作在定时方式(C/T2=0)。定时器2 作为波   特率发生器时,与作为定时器的操作是不同的,通常作为定时器时,在每个机器周期(1/12 振荡频率)寄存器的值加1,   而作为波特率发生器使用时,在每个状态时间(1/2 振荡频率)寄存器的值加1。波特率的计算公式如下:   方式1和3的波特率=振荡频率/{32*[65536-(RCP2H,RCP2L)]}   式中(RCAP2H,RCAP2L)是RCAP2H 和RCAP2L中的16 位无符号数。   定时器2 作为波特率发生器使用的电路如图7 所示。T2CON 中的RCLK 或TCLK=1 时,波特率工作方式才有效。在   波特率发生器工作方式中,TH2 翻转不能使TF2 置位,故而不产生中断。但若EXEN2 置位,且T2EX 端产生由1 至0 的   负跳变,则会使EXF2 置位,此时并不能将(RCAP2H,RCAP2L)的内容重新装入TH2 和TL2 中。所以,当定时器2 作   为波特率发生器使用时,T2EX 可作为附加的外部中断源来使用。需要注意的是,当定时器2 工作于波特率器时,作为定   时器运行(TR2=1)时,并不能访问TH2 和TL2。因为此时每个状态时间定时器都会加1,对其读写将得到一个不确定的   数值。   然而,对RCAP2 则可读而不可写,因为写入操作将是重新装载,写入操作可能令写和/或重装载出错。在访问定时器2   或RCAP2 寄存器之前,应将定时器关闭(清除TR2)。   可编程时钟输出:   定时器2 可通过编程从P1.0 输出一个占空比为50%的时钟信号,如图8 所示。P1.0 引脚除了是一个标准的I/O 口外,   还可以通过编程使其作为定时/计数器2 的外部时钟输入和输出占空比50%的时钟脉冲。当时钟振荡频率为16MHz 时,输   出时钟频率范围为61Hz—4MHz。   当设置定时/计数器2 为时钟发生器时,C/T2(T2CON .1)=0,T2OE (T2MOD.1) =1,必须由TR2(T2CON.2)启   动或停止定时器。时钟输出频率取决于振荡频率和定时器2 捕获寄存器(RCAP2H,RCAP2L)的重新装载值,公式如下:   输出时钟频率=振荡器频率/{4*[65536-(RCP2H,RCP2L)]}   在时钟输出方式下,定时器2 的翻转不会产生中断,这个特性与作为波特率发生器使用时相仿。定时器2 作为波特率   发生器使用时,还可作为时钟发生器使用,但需要注意的是波特率和时钟输出频率不能分开确定,这是因为它们同使用   RCAP2L和RCAP2L。

UART串口

  AT89C52的UART 工作方式与AT89C51 工作方式相同。

时钟振荡器

  AT89C52 中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1 和XTAL2 分别是该放大器的输入端和输出端。   这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图10。   外接石英晶体(或陶瓷谐振器)及电容C1、C2 接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2 虽   然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳   定性,如果使用石英晶体,我们推荐电容使用30pF±10pF,而如使用陶瓷谐振器建议选择40pF±10pF。   用户也可以采用外部时钟。采用外部时钟的电路如图10 右图所示。这种情况下,外部时钟脉冲接到XTAL1 端,即内部   时钟发生器的输入端,XTAL2 则悬空。   由于外部时钟信号是通过一个2 分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但   最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。

编辑本段中断

  AT89C52 共有6 个中断向量:两个外中断(INT0 和INT1),3 个定时器中断(定时器0、1、2)和串行口中断。所有   这些中断源如图9 所示。   这些中断源可通过分别设置专用寄存器IE 的置位或清0 来控制每一个中断的允许或禁止。IE 也有一个总禁止位EA,   它能控制所有中断的允许或禁止。   注意表5 中的IE.6 为保留位,在AT89C51 中IE.5 也是保留位。程序员不应将“1”写入这些位,它们是将来AT89 系   列产品作为扩展用的。   定时器2 的中断是由T2CON 中的TF2 和EXF2 逻辑或产生的,当转向中断服务程序时,这些标志位不能被硬件清除,   事实上,服务程序需确定是TF2 或EXF2 产生中断,而由软件清除中断标志位。   定时器0 和定时器1 的标志位TF0 和TF1 在定时器溢出那个机器周期的S5P2 状态置位,而会在下一个机器周期才查   询到该中断标志。然而,定时器2 的标志位TF2 在定时器溢出的那个机器周期的S2P2 状态置位,并在同一个机器周期内   查询到该标志。

编辑本段低功耗模式

空闲节电模式

  在空闲工作模式状态, CPU 自身处于睡眠状态而所有片内的外设仍保持激活状态,这种方式由软件产生。此时,同   时将片内RAM 和所有特殊功能寄存器的内容冻结。空闲模式可由任何允许的中断请求或硬件复位终止。   由硬件复位终止空闲状态只需两个机器周期有效复位信号,在此状态下,片内硬件禁止访问内部RAM,但可以访问端   口引脚,当用复位终止空闲方式时,为避免可能对端口产生意外写入,激活空闲模式的那条指令后一条指令不应是一条对   端口或外部存储器的写入指令。

掉电模式

  在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM 和特殊功能寄存器的内   容在终止掉电模式前被冻结。退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器,但不改变RAM   中的内容,在Vcc恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。

编辑本段编程和加密

Flash存储器的编程

  AT89C52单片机内部有8k字节的Flash PEROM,这个Flash 存储阵列出厂时已处于擦除状态(即所有存储单元的内容   均为FFH),用户随时可对其进行编程。编程接口可接收高电压(+12V)或低电压(Vcc)的允许编程信号。低电压编程模   式适合于用户在线编程系统,而高电压编程模式可与通用EPROM 编程器兼容。   AT89C52 单片机中,有些属于低电压编程方式,而有些则是高电压编程方式,用户可从芯片上的型号和读取芯片内的   签名字节获得该信息。   AT89C52 的程序存储器阵列是采用字节写入方式编程的,每次写入一个字节,要对整个芯片内的PEROM 程序存储器   写入一个非空字节,必须使用片擦除的方式将整个存储器的内容清除。

编程方法

  编程前,须按表9 和图11 所示设置好地址、数据及控制信号, AT89C52 编程方法如下:   1. 在地址线上加上要编程单元的地址信号。   2. 在数据线上加上要写入的数据字节。   3. 激活相应的控制信号。   4. 在高电压编程方式时,将EA/Vpp 端加上+12V 编程电压。   5. 每对Flash 存储阵列写入一个字节或每写入一个程序加密位,加上一个ALE/PROG 编程脉冲。每个字节写入周期   是自身定时的,通常约为1.5ms。重复1—5 步骤,改变编程单元的地址和写入的数据,直到全部文件编程结束。

程序存储器的加密

  AT89C52 有3 个程序加密位,可对芯片上的3 个加密位LB1、LB2、LB3 进行编程(P)或不编程(U)来得到。   当加密位LB1 被编程时,在复位期间,EA 端的逻辑电平被采样并锁存,如果单片机上电后一直没有复位,则锁存起的   初始值是一个随机数,且这个随机数会一直保存到真正复位为止。为使单片机能正常工作,被锁存的EA 电平值必须与该引   脚当前的逻辑电平一致。此外,加密位只能通过整片擦除的方法清除。

数据查询

  AT89C52 单片机用Data Palling 表示一个写周期结束为特征,在一个写周期中,如需读取最后写入的一个字节,则读出的数据的最高位(P0.7)是原来写入字节最高位的反码。写周期完成后,所输出的数据是有效的数据,即可进入下一个字节的写周期,写周期开始后,Data Palling 可能随时有效。   Ready/Busy:字节编程的进度可通过“RDY/BSY 输出信号监测,编程期间,ALE 变为高电平“H”后,P3.4(RDY/BSY)端电平被拉低,表示正在编程状态(忙状态)。编程完成后,P3.4 变为高电平表示准备就绪状态。   程序校验:如果加密位LB1、LB2 没有进行编程,则代码数据可通过地址和数据线读回原编写的数据,采用如图12的电路。加密位不可直接校验,加密位的校验可通过对存储器的校验和写入状态来验证。   芯片擦除:利用控制信号的正确组合(表6)并保持ALE/PROG 引脚10mS 的低电平脉冲宽度即可将PEROM 阵列(4k字节)和三个加密位整片擦除,代码阵列在片擦除操作中将任何非空单元写入“1”,这步骤需再编程之前进行。   读片内签名字节:AT89C52 单片机内有3 个签名字节,地址为030H、031H 和032H。用于声明该器件的厂商、型号和编程电压。读AT89C52 签名字节需将P3.6 和P3.7 置逻辑低电平,读签名字节的过程和单元030H、031H 及032H 的正常校验相仿,只返回值意义如下:   (030H)=1EH 声明产品由ATMEL公司制造。   (031H)=52H 声明为AT89C52 单片机。   (032H)=FFH 声明为12V 编程电压。   (032H)=05H 声明为5V 编程电压。



到电路图网站上搜


求基于AT89C52超声波测距简易设计的源程序,要求用3个LED管显示其测距...
混合编程来实现。本文论述的是一种基于AT89C52单片机的超声波测距器,可用于汽车倒车等场合⋯。1设计要求 设计一个超声波测距器,可以应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用 于如液位、井深、管道长度的测量等场合。要求测量范围在0.10—5.00 m,测量精度lem,测量时与...

基于AT89C52的学习红外遥控灯 原理图
低电压编程模 式适合于用户在线编程系统,而高电压编程模式可与通用EPROM 编程器兼容。 AT89C52 单片机中,有些属于低电压编程方式,而有些则是高电压编程方式,用户可从芯片上的型号和读取芯片内的 签名字节获得该信息。 AT89C52 的程序存储器阵列是采用字节写入方式编程的,每次写入一个字节,要对整个芯片内的PEROM 程序...

基于at89c52用4个共阳数码管控制口是p10__p13,数据口是p00_p07,计数从...
include<REG51.H> sbit SMG1=P1^0;sbit SMG2=P1^1;sbit SMG3=P1^2;sbit SMG4=P1^3;unsigned char code Tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};\/\/0-9共阴数码的管段码表 unsigned char Buf[4];\/\/4个数码管的数据缓存 unsigned char cnta; \/\/循环动态扫...

求大佬帮忙编写一个基于单片机AT89C52的自动灌溉花卉程序,急用,谢谢了...
3 实验目的 1) 了解步进电机的控制原理并掌握转动的编程方法。 2) 掌握AT89C52 的内部结构,输出接口以及控制原理。

基于at89c52的实时时钟的秒定时信号的产生方法
定时功能,就是利用这种状态来完成的 如果想输出秒信号,那就要计算好单片机的运行周期和定时器初值的关系 具体方法如下:1 可以按定时时间的计算公式, 计算出定时器的时间常数X:定时时间T=(2的N次方-X)12\/单片机晶振频率 2 N为定时器的工作方式:方式0时,N=13 方式1时,N=16 方式2时...

基于at89c52的ds18b20温度传感器,我用共阳极数码管接的.该怎么画?求大...
这个我就不看了,四位共阳数码管的可以用合在一起的那一种,命令是7SEG-MPX4-CA,用AT89C52可以省去下面数码管的驱动电路,电阻部分可以用九脚排阻,加电源。(PS:我只用过4位共阴的,接线很简单,共阳的应该也是这样,知道程序要改,我水平有限,你可以再问问其他人)

基于单片机AT89C52频率计,求程序,求助
\/\/最大可测频率约65535hz,实际上STC12C系列是1T单片机,11.0592下其最高可计数频率远大于此 include <reg52.h> include <math.h> define uint unsigned int define uchar unsigned char \/\/定义以I\/O口的功能 sbit beiguang=P3^2;\/\/液晶屏背光 sbit rs=P1^3;\/\/液晶屏写选择,0命令 1数据 ...

跪求基于at89c52的led数字钟的完整电路图和程序(时钟芯片为ds1302),最...
include<reg52.h> \/\/包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 include <intrins.h> sbit SCK=P3^6;\/\/时钟 sbit SDA=P3^4;\/\/数据 sbit RST = P3^5;\/\/ DS1302复位 sbit LS138A=P2^2;sbit LS138B=P2^3;sbit LS138C=P2^4;bit ReadRTC_Flag;\/\/定义读DS1302...

基于AT89C52单片机的数字电压表中 有一块芯片两个脚是AC 还有两个脚...
AC两脚是交流电压输入端,+、-是正负极输出

求基于AT89C52单片机共阴数码管0到59秒循环计时器c语言代码
~0xb0,~0x99,~0x92,~0x82,~0xf8,~0x80,~0x90,};\/\/断码void dispaly(){\/\/显示函数static u8 a;if(++a>2)a=0;P0=~0xff;P2=w[a];P0=d[ds[a]];}\/***\/void init()\/\/初始化函数{ TMOD=0x01;TH0=(65536-1000)\/256;TL0=(65536-1000)%256;...

新巴尔虎右旗18866955003: 89C52单片机p1口显示红外遥控器的按键值 -
郸中可多: 你这就是两个部分了,一个是红外遥控的识别, 一个就是显示了, 两部分分开做,网上都能找到例程的,先做出来显示,,不管是数码管显示,还是液晶显示,网上例程学习下,都不难,显示部分没问题, 再做红外遥控器的识别,这里可以参考下别人开发板的例程,基本上每块开发板都会有的.

新巴尔虎右旗18866955003: 基于AT89C52单片机做遥控直升机,现有直流电机,红外遥控器的开发板一块,怎样利用现有资源实现遥控飞机呢 -
郸中可多: 用红外做短距离遥控还行,要是用在直升机上就不适合了,因为红外有距离限制和方向性的.只能用无线电波来遥控.,但无线电的调试就麻烦点.要是只做来玩的,用无线模块来做比较好点.才几元!也可以用三极管等分立元件+(PT2262 ,PT2267)编解码IC来做.到网上找个成熟的电路就可以了.就是调试麻烦和电路复杂点.如果非要用红外的话,建议在飞机上装2到三个红外接收头.再加一些透光和散光比较好的镜片,也有助接收的.一到两秒发送一次控制信号飞行几秒,还有就是如果几秒没有接收到信号那就要做相应动作处理了,比如慢慢停飞降落,再继续飞就控制不了了.撞机就完了,呵呵

新巴尔虎右旗18866955003: 想做一个基于51单片机红外遥控 控制电灯不知如何下手 -
郸中可多: 首先你得会用51编一个红外线的接收,能正确处理出数据来,然后用一个继电器去当你家里的电灯开关.控制继电器就是控制灯了.

新巴尔虎右旗18866955003: 我要做一个家电遥控器系统可以用AT89C52代替AT89c51吗?诚谢! -
郸中可多: 做家电遥控器用AT89C2051就可以满足要求了I/O绝对够用了

新巴尔虎右旗18866955003: 基于单片机的红外遥控灯
郸中可多: 简单设想一下,数码管显示当前正在操作的LED灯号,0表示全部 1-8表示单控1-8号灯 发送端只发送16个按建值,用32位标准红外信号协义,16个按按建值分别是0123456789ABCDEF 接收端自行解释按键含义: 0表示全选中 1-8表示选中灯号 ...

新巴尔虎右旗18866955003: 基于单片机AT89C52控制的交通灯(附带程序) -
郸中可多: 去百度文库,查看完整内容> 内容来自用户:drinkbe 学 号: |2009 | 学院 机械工程学院 课程设计 题 目|基于AT89C52单片机的|交通灯控制系统设计| 专 业|机械电子工程| 班 级|姓 名|指导教师|20XX|年|12|月|XX|日| 课程设计任务书 姓 名|XXX|学 号|...

新巴尔虎右旗18866955003: 基于STC89C52制作红外遥控器时,接收距离太短,怎么办?有没有具体的红外发射头加驱动电路? -
郸中可多: 驱动不需要什么特殊要求,简单的一个三极管驱动一个红外发射二极管就能遥控10米左右.肯定是你的程序问题,不知你用上38K载波没?就算用上估计也是占空比50%的38K方波!

新巴尔虎右旗18866955003: 怎样实现基于单片机的红外遥控的设计 -
郸中可多: 去买一个红外接收管,大概一两块钱左右 然后就根据RC5等红外协议编写接收程序就可以了一般要用的外部中断+定时器来做^_^网上有很多相关的程序 可以参考

新巴尔虎右旗18866955003: 51单片机红外遥控程序 -
郸中可多: #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit lcden = P2^7; sbit lcdrs = P2^6; sbit lcdwr = P2^5; sbit IR = P3^2; uchar IRCOM[6];//数组,用于存储红外编码 uchar code table1[] = "remote control...

新巴尔虎右旗18866955003: 大侠们,51单片机开发板,如何通过配套的红外遥控,控制发光二极管的亮灭,比如按1,第一个管亮,按2 -
郸中可多: 首先你要写一个解码程序让数码管显示数据码与数据反码,然后记录下来,然后再写一个程序,把记录的数据写入程序中,接收时与写入的数据对比一下就可以了.

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网