单片机89c52的一段红外线对码程序,不理解是怎么把32个二进制码写入irdata[i]的,i++是怎么循环起来的?

作者&投稿:竺肢 (若有异议请与网页底部的电邮联系)
怎么读取STC89C52单片机的p1.0至p1.7的八个端口的电平值?也就是是0还是1 ,怎么写程序?~

如果是用汇编的话直接mov a,p1,在A就可以看得到端口的电压值了。C语文也类似。

单片机具有以下特点:
1、有优异的性能价格比
目前国内市场上,有些单片机的芯片只有人民币几元,加上少量外围元件,就能构成一台功能相当丰富的智能化控制装置。
2、集成度高,体积小,可靠性好
单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。而且,由于单片机体积小,易于采取电磁屏蔽或密封措施,适合于在恶劣环境下工作。
3、控制能力强
单片机指令丰富,能充分满足。工业控制的各种要求。
4、低功耗,低电压,便于生产便携式产品。
5、易扩展
可根据需要并行或串行扩展,构成各种不同应用规模的计算机控制系统。

扩展资料
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:
1、在智能仪器仪表上的应用
单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。
2、在工业控制中的应用
用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。
3、在家用电器中的应用
可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。
4、在计算机网络和通信领域中的应用
现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。
5、单片机在医用设备领域中的应用
单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。
6、在各种大型电器中的模块化应用
某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。
参考资料百度百科-单片机

首次有脉冲时,清零irtime,置startflag。
之后等待头码,只有当满足脉宽要求后,才视为有效头码,头码脉宽写入irdata[0]中。
接下来每一个脉宽都依次写入irdata数组并且i累加。33个数据(包括头码)全部写完后,置ok标志位,并且i清零。


stc89c52与89c52的区别有哪些?
STC89C52RC比普通89C52多了后缀“RC”,虽然它们都是单片机芯片,但是带有“RC”字样的单片机自带RC时钟振荡电路(有的频率可调有的频率不可调),可以在不接外部晶振就能使用,没有带“RC”这个字样的芯片一般必须安装外部晶振电路。STC89C52RC是宏晶公司的增强型MCS-51单片机,与Atmel公司的AT89C52相比...

STC89C52RC与普通89C52有什么区别
STC89C52单片机后面带35I,表示最大工作频率35MHz,工业级。当然,对于额外带RC或RD后缀的产品,标识它内部RAM大小不一样。但是就STC89C52RC和STC89C52而言,它们除了最大工作频率不一样之外,内部RAM也都是512 Bytes,也没有其他任何区别。在某宝上不会看到STC89C52 40I的产品,也不会看到STC89C52RC 35...

89C52单片机的内存8K不够用了怎么办?
1.可不可以用24C0*2系列呢?那程序要怎么写了(有关些读一整个函数的),比如我现在有要把温控程序和时钟程序放到52外部,计算器程序放到内部,同时可以使52正常工作,扫描完内部后继续扫描内部。答:不行.2.如果用扩展外部存储芯片,那芯片型号是什么,程序又怎么写?答:可以扩展.典型的并行存储芯片...

89C52与8051有什么区别吗?
3)可编程定时\/计数器:8051有2个,8052有3个;4)中断源:8051有5个,8052有6个。所有兼容Intel8031指令系统的单片机统称为51单片机。8051单片机是51系列基本型之一,其余还有8751、8031、8951,它们的区别仅在于片内程序储存器。52系列是增强型的,即在51系列基础上做了相应的改进,8052是其中的一...

在89C52单片机里面怎么用程序把I\/O设定为高阻态状态??
1。 P0口片内无上拉电阻2。 P0为I\/O口工作状态时,上方FET被关断,从而输出脚浮空,因此P0用于输出线时为开漏输出。3。 由于片内无上拉电阻,上方FET又被关断,P0输出1时无法拉升端口电平。P0是双向口,其它P1,P2,P3是准双向口。准双向口是因为在读外部数据时要先“准备”一下,为什么要准备一下呢?单片机在读...

自定ATMEL89C52单片机小系统。
访问外部内存还需要加一个74373,单片机也可以用AT89S52,键盘扫描和LED显示可以使用一片8255来扩展端口,但是不经济,一片8255的价格比单片机还要贵,就算买拆机件也得5元。而一个专用的键盘显示器芯片价格则在几十元上,更加不经济。键盘扫描可以用P1做4*4键盘,LED显示可以用一个38译码器作为LED的位...

STV89C52 跟 AT89C52 有什么区别没
怎么连这个问题都没人回答 STC89C52跟AT89C52基本上一样,只是STC89C52最高时钟更高、有更多的内部RAM,有看门狗,可以选择一个机器周期等于6个时钟周期的模式,有片内EEPROM,有第五个端口P4口,还有一些改进,如果不用增加的功能,程序是完全一样的 ...

用89C52单片机驱动1602液晶,怎么才能瞬间显示一行字母?(用汇编和用...
方法一般是:先使能;再进行模块初始化;再写控制字;再写数据;写操作不要忘记判忙(busy=1)。汇编与c对于但片机没有任何区别,对于使用者,比如你,也不应该有本质的区别。好的工程师是应该知道一条c语句编译出什么样的汇编语句的,所以他们在写c语句的时候是在选择更高效率的语句和结构。

在单片机学习板上,一块89C52RC芯片,最多能烧写多少次?
资料上说1000次以上,估计800次是没有问题的,我曾经就烧录后次数多后烧不进去了的,但如果你把烧录速度改为最低,烧录次数会多些!特别是在高速烧不了的时候你改为低速烧录还可以成功的

用单片机STM89C52能否驱动TFT LCD
你好 1、请问你所指的STM89C52是什么芯片,是不是打错了。要么是STC89C52要么是STM32或者STM8的片子,哪里有这样型号的片子。2、对于STM32或者STM8都是完全可以GUI了,还怕什么TFT 驱动吗,推荐使用Cortex-M3内核的32位机,非常有学习一下的必要。3、请问是谁告诉你单片机不能控制TFT,看你如何使用...

潮南区15988698143: 单片机89c52的一段红外线对码程序,不理解是怎么把32个二进制码写入irdata[i]的,i++是怎么循环起来的? -
恭些吡诺: 首次有脉冲时,清零irtime,置startflag.之后等待头码,只有当满足脉宽要求后,才视为有效头码,头码脉宽写入irdata[0]中.接下来每一个脉宽都依次写入irdata数组并且i累加.33个数据(包括头码)全部写完后,置ok标志位,并且i清零.

潮南区15988698143: 帮我写个单片机(89C52RC)红外解码程序,只要把接受到得红外信号放在一个数组就可以. -
恭些吡诺: #include<reg52.h> unsigned char distemp; unsigned char irtime;//红外用全局变量 bit irpro_ok,irok; static unsigned char i; sbit zhongduan=P3^3; unsigned char IRcord[4]; unsigned char irdata[33]; void main(void) { IT1 = 1; // 配置为下降沿中断1 / ...

潮南区15988698143: 急求!!!!如何利用单片机89C52和红外传感器控制步进电机的转停
恭些吡诺: 红外线遥控编码芯片为uPD6121G或者是 HT622、7461等芯片 步进电机控制芯片L298等芯片 程序 呵呵,,没有免费的,, 如程序需H!我

潮南区15988698143: 用89c52单片机外接一个12mhz的晶振,加上红外二极管.可以实现红外遥控发射吗?求一下程序以及 -
恭些吡诺: 只有这些不够!还得有两个三极管~一个用来控制38k调制方波,一个用来控制信号方波…程序没人能给你现成的~你得自己在网上找然后修改

潮南区15988698143: 89C52单片机能够处理红外摄像头数据的问题吗?
恭些吡诺: 不能,就算有高手做到了,也不可能实用.

潮南区15988698143: 89c52单片机求编程 -
恭些吡诺: #include<reg51.h> #define uchar unsigned char uchar num=0; sbit pulse=P1^0; void t0isr() interrupt 1{ num++; if(num<6)pulse=1; else pulse=0; if(num>80)num=0; } main() { TMOD=0x02; TH0=6; TL0=6; ET0=1; TR0=1; EA=1; while(1); }

潮南区15988698143: 求89C52单片机按1键亮数码管,并闪两个灯,按2键亮数码管,并左移灯的汇编语言程 -
恭些吡诺: KEY EQU P1.0 //按键 LED1 EQU P1.1 LED2 EQU P1.2 SMG_SWITCH EQU 30H //数码管开关 ORG 0000H JMP MAIN ORG 000BH JMP INIT0 ORG 0030H MAIN_INIT: MOV SMG_SWITCH,#0 MOV TMOD,#1 MOV TH0,#0D8H MOV TL0,#0EFH//...

潮南区15988698143: c51单片机红外NEC编码解码! -
恭些吡诺: 这个程序太简单了,我之前写过红外发射程序的,接收程序也很简单,你这个项目我2个小时都能帮你解决,但是89C52单片机发射38K不准需要把晶振加大,提高单片机的运行速度. 你的项目只要主机A发射红外协议后面加一个地址,单片机B接收的时候全部进入接收状态,判接收的地址是否符合对于单片机B的地址,如果地址符合,那就先回应一个数据例如:55FF55,主机接收到55FF55后后面开始接收数据,把接收到的数据直接写入单片机内EEPRM里面!

潮南区15988698143: 89c52 单片机测速程序 光电码盘 -
恭些吡诺: 这个说白了就是测量脉冲的个数,也就是理想方波的频率.给你一个测频率的程序,仅供参考 #include<reg51.h> #include<intrins.h> #define uint unsigned int #define uchar unsigned char float f=0; uchar LED0_data,LED1_data,LED2_data,LED3...

潮南区15988698143: 请教单片机89C52问题? -
恭些吡诺: 用定时器中断 来 控制驱动数码管 就不会产生 这种现象,(每个数码管的刷新频率 > 50 Hz) 如 4个 数码管 可以 定时 3 - 5 mS 就可以,每次中断 更新 1 位数码管.

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