当前位置:首页 > 单片机 > 单片机
[导读] LPC900系列单片机UART和CCU模块实现红外通信程序$INCLUDE(REG932.INC);变量定义BEEPBITP2.7KEY1BITP0.1FEBITSCON.7PLEENBITTCR20.7RCV_BUFDATA30H;接收缓冲区首地址(30H~3FH)BRGR1_DATADATA09H;波特率

LPC900系列单片机UART和CCU模块实现红外通信程序

$INCLUDE(REG932.INC)

;变量定义
BEEPBITP2.7
KEY1BITP0.1

FEBITSCON.7
PLEENBITTCR20.7
RCV_BUFDATA30H;接收缓冲区首地址(30H~3FH)
BRGR1_DATADATA09H;波特率设为2400bit/s
BRGR0_DATADATA0B4H

ORG0000H
AJMPMAIN

;主程序开始
ORG0100H
MAIN:
MOVSP,#60H
MOVP0M1,#00H;P0,P1口设置为准双向
MOVP0M2,#00H
MOVP1M1,#00H
MOVP1M2,#00H
MOVP2M1,#0C0H;P2.6,P2.7设置为开漏
MOVP2M2,#0C0H
ACALLCCU_INIT;CCU模块初始化,用以产生38KHz调制信号
ACALLUART_INIT
MAIN_L1:
JBKEY1,$
ACALLSEND_DATA;发送16字节数据
MOVR7,#01H
ACALLDELAY
ACALLRCV_DATA;接收16字节数据
ACALLCOMPARE;比较接收到的数据和发送的数据
JZMAIN_L2
CLRBEEP;如果正确则蜂鸣器短响一声
MOVR7,#01H
ACALLDELAY
SETBBEEP
AJMPMAIN_L1
MAIN_L2:
CLRBEEP;如果错误则蜂鸣器长响一声
MOVR7,#05H
ACALLDELAY
SETBBEEP
AJMPMAIN_L1

;********************************************
;名称:SEND_DATA
;功能:通过UART连续发送16字节数据(0~15)
;入口参数:无
;出口参数:无
;注意:此程序采用查询方式发送。
;********************************************
SEND_DATA:
MOVR7,#10H
CLRTI
CLRA
SEND_DL1:
MOVSBUF,A
JNBTI,$;等待一字节发送完毕
CLRTI
INCA
DJNZR7,SEND_DL1
RET

;********************************************************************
;名称:RCV_DATA
;功能:通过UART连续接收16字节数据
;入口参数:RCV_BUF--用于接收数据的缓冲区首地址
;出口参数:接收到的16字节数据位于接收缓冲区
;注意:此程序采用查询方式进行接收。由于采取半双工通信,所以接收
;数据之前要打开接收允许,接收完毕之后要关闭接收允许。
;********************************************************************
RCV_DATA:
MOVR7,#10H
MOVR0,#RCV_BUF
SETBREN;串行接收允许
CLRFE
CLRRI
RCV_DL1:
JNBRI,$;等待接收一字节
CLRRI
MOVA,SBUF
MOV@R0,A
INCR0
DJNZR7,RCV_DL1
CLRREN;串行接收禁止
RET

;*********************************************
;名称:COMPARE
;功能:比较缓冲区中的内容是否为0~15
;入口参数:RCV_BUF--需要比较的缓冲区首地址
;出口参数:ACC--比较正确则返回1,否则返回0。
;*********************************************
COMPARE:
MOVR7,#10H
MOVR0,#RCV_BUF
MOVR1,#00H
CLRA
COMP_L1:
MOVA,@R0
CJNEA,01H,COMP_RTN;ACC与R1(01H)比较
INCR0
INCR1
DJNZR7,COMP_L1
MOVA,#01H;比较结果正确,返回01H
RET
COMP_RTN:
CLRA;比较结果错误,返回00H
RET

;**********************************************************************
;名称:CCU_INIT
;功能:CCU模块初始化,使OCA(P2.7)输出38KHz,50%占空比的PWM波,
;作为红外线的载波
;使用6MHz晶振时,CCU频率=((6000000/2)/6)*32=16MHz
;定时器重装值=CCU频率/红外线载频=16000000/38000=421=01A5H
;**********************************************************************
CCU_INIT:
MOVTOR2H,#01H;定时器重装值
MOVTOR2L,#0A5H
MOVOCRAH,#00H;(OCRAH:OCRAL)=(TOR2H:TOR2L)/2,PWM的占空比为50%
MOVOCRAL,#0D2H
MOVTCR21,#85H;PLL预分频为5+1
MOVCCCRA,#01H;非反相的PWM
MOVTCR20,#00H
SETBPLEEN
NOP
JNBPLEEN,$;等待锁相环(PLL)稳定
ORLTCR20,#03H;启动定时器,对称PWM模式
RET

;***************************************
;名称:UART_INIT
;功能:UART初始化,波特率2400bit/s
;***************************************
UART_INIT:
MOVPCON,#00H
MOVSSTAT,#00H;双缓冲禁止,中断禁止,采用查询方式发送和接收
MOVSCON,#40H;串口模式1,接收禁止
ORLPCON,#40H;SMOD0=1,SCON的位7作为FE
MOVBRGCON,#00H
MOVBRGR1,#BRGR1_DATA
MOVBRGR0,#BRGR0_DATA
MOVBRGCON,#03H;启动UART的波特率发生器
RET

;*****************************************************
;名称:DELAY
;功能:延时(R7*0.1)秒(振荡器为6MHz)
;入口参数:R7--延时时间
;出口参数:无
;注意:如果入口参数R7等于0,则不延时而直接返回。
;*****************************************************
DELAY:
MOVA,R7
JZDELAY_RTN
DELAY_L1:
MOVR6,#0C8H;延时0.1S
DELAY_L2:
MOVR5,#0FAH
DELAY_L3:
NOP
NOP
NOP
NOP
DJNZR5,DELAY_L3
DJNZR6,DELAY_L2
DJNZR7,DELAY_L1
DELAY_RTN:
RET
END

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

该系列产品有助于嵌入式设计人员在更广泛的系统中轻松实现USB功能

关键字: 单片机 嵌入式设计 USB

设计工程师为了解决ISI问题,常常需要在链路损耗和均衡技术之间做出综合考虑。泰克的SDLA软件不仅可以模拟发送端的Tx EQ和接收端的Rx EQ,还能模拟传输链路的不同损耗。

关键字: 通信 示波器 测试测量

单片机编程语言是程序员与微控制器进行交流的桥梁,它们构成了单片机系统的软件开发基石,决定着如何有效、高效地控制和管理单片机的各项资源。随着微控制器技术的不断发展,针对不同应用场景的需求,形成了丰富多样的编程语言体系。本文...

关键字: 单片机 微控制器

单片机,全称为“单片微型计算机”或“微控制器”(Microcontroller Unit,简称MCU),是一种高度集成化的电子器件,它是现代科技领域的关键组件,尤其在自动化控制、物联网、消费电子、汽车电子、工业控制等领域...

关键字: 单片机 MCU

STM32是由意法半导体公司(STMicroelectronics)推出的基于ARM Cortex-M内核的32位微控制器系列,以其高性能、低功耗、丰富的外设接口和强大的生态系统深受广大嵌入式开发者喜爱。本文将详细介绍S...

关键字: STM32 单片机

在当前的科技浪潮中,单片机作为嵌入式系统的重要组成部分,正以其强大的功能和广泛的应用领域受到越来越多行业的青睐。在众多单片机中,W79E2051以其卓越的性能和稳定的工作特性,成为市场上的明星产品。本文将深入探讨W79E...

关键字: 单片机 w79e2051单片机

单片机,又称为微控制器或微处理器,是现代电子设备中的核心部件之一。它集成了中央处理器、存储器、输入输出接口等电路,通过外部信号引脚与外部设备进行通信,实现对设备的控制和管理。本文将详细介绍单片机的外部信号引脚名称及其功能...

关键字: 单片机 微控制器 中央处理器

随着科技的飞速发展,单片机和嵌入式系统在现代电子设备中的应用越来越广泛。它们不仅提高了设备的智能化水平,还推动了各行各业的创新与发展。在单片机和嵌入式系统的开发中,编程语言的选择至关重要。本文将深入探讨单片机和嵌入式系统...

关键字: 单片机 嵌入式系统 电子设备

5G网络相较于4G网络,具有更高的数据传输速率,能够支持更高的峰值速率,理论上峰值传输速率可以达到10Gbit/s,这比4G网络快了大约10到100倍。

关键字: 5G 通信 4G网络

PLC(可编程逻辑控制器)和单片机是两种不同的控制设备,它们之间存在明显的区别:

关键字: 单片机 plc 控制器
关闭
关闭