历史上的今天
今天是:2025年01月18日(星期六)
2020年01月18日 | 基于PIC单片机对SC1621摇控器的控制
2020-01-18 来源:elecfans
;*APPLICATION NOTE E6000 ICEXPLORER ******************
;* TItle: ;
;SC6121的遥控器发射码依次为:同步头(引导码)+32位数据码 ;
;(用户码低8位+用户码高8位+键码+键码的反码) ;
;引导码是由9MS的高电平加4.5MS的低电平构成, ;
;我们接收到的刚好反相为9MS的低电平加4.5MS的高电平。 ;
;数据码‘0’是由560US的高电平加560US的低电平构成 ;
;接收时反相为560US的低电平加560US的高电平构成=1.125mS ;
;数据码‘1’是由560US的高电平加1.69MS的高电平构成 ;
;接收时反相为560US的低电平加1.69MS的高电平构成=2.25mS ;

;* Version: 00 ;
;* Last Updated: 2006.06.09 ;
;* MCU: PIC16C74 ;
;* FOR: www.picavr.com ;
;******************************************************
;***ROM PCLATH.D3=0 000H-7FFH ;
; PCLATH.D3=1 800H-FFFH ;
;******************************************************
;** RAM BANK0=20H---7FHSTATUS RP0=0,RP1=0 ;
;** BANK1=A0H---FFHSTATUS RP0=1,RP1=0 ;
;** BANK2=100H--17FH STATUS RP1=1,RP0=0 ;
;** BANK3=180H--1FFH STATUS RP1=1,RP0=1 ;
;******************************************************
; ________________
; MCLR/VPP/TH-| 1 40 |-RB7/PGD
; RA0/AN0-| 2 39 |-RB6/PGC
; RA1/AN1-| 3 38 |-RB5
; RA2/AN2/VRref--| 4 37 |-RB4
; RA3/AN3/VRref+-| 5 36 |-RB3/PGM
; RA4/TOCKI-| 6 35 |-RB2
; RA5/AN4/SS-| 7 34 |-RB1
; RE0/RD/AN5-| 8 33 |-RB0/INT
; RE1/WR.AN6-| 9 32 |-VDD
; RE2/CS/AN7-| 10 31 |-VSS
; VDD-| 11 30 |-RD7/PSP7
;VSS-| 12 29 |-RD6/PSP6
; OSC1/CLKIN-| 13 28 |-RD5/PSP5
; OSC2/CLKOUT-| 14 27 |-RD4/PSP4
; RC0/TISO/TICKI-| 15 26 |-RC7/RX/DT
; RC1/T1OSI/CCP2-| 16 25 |-RC6/TX/CK
;RC2/CCP1-| 17 24 |-RC5/SDO
; RC3/SCK/SCL-| 18 23 |-RC4/SDA
; RD0/PSP0-| 19 22 |-RD3/PSP3
; RD1/PSP1-| 20 21 |-RD2/PSP2
;~~~~~~~~~~~~~~~
; 16F74A
;****************************************************
RMT EQU 0 ;遥控接收输入脚位地址(RB。0)
;-------------------------------------------------
BITIN EQU 7 ;遥控接收数据位位标志
;-------------------------------------------------
CNT0 EQU 20H ;用户临时寄存器1
CNT1 EQU 21H ;用户临时寄存器2
CNT2 EQU 22H ;用户临时寄存器3
CNT3 EQU 23H ;用户临时寄存器4
TABADD EQU 24H ;数码管显示码取码用寄存器
FLAGS EQU 25H ;显示位选标志位
DISPBUF_H EQU 26H ;显示器高位
DISPBUF_L EQU 27H ;显示器低位
FLAGS2 EQU 28H ;临时寄存器
W_TEMP EQU 2AH ;W现场保护寄存器
STATUS_TEMP EQU 2BH ;STATUS现场保护寄存器
CSR0 EQU 2CH ;遥控键码反码寄存器
CSR1 EQU 2DH ;遥控器键码寄存器
CSR2 EQU 2EH ;遥控器用户码高8位寄存器
CSR3 EQU 2FH ;遥控器用户码低8位寄存器
CSR0A EQU 30H ;遥控接收32位数据暂存寄存器
CSR1A EQU 31H ;遥控接收32位数据暂存寄存器
CSR2A EQU 32H ;遥控接收32位数据暂存寄存器
CSR3A EQU 33H ;遥控接收32位数据暂存寄存器
;**************************************************
CONT1 EQU 7FH ;
;**************************************************
ORG 0000H
GOTO MAIN
ORG 0004H
RETFIE ;
ORG 0008H
;************************************************
MAIN:
CALL RESET_ ;BANK0--BANK1清0
CLRFSTATUS ;清状态寄存器口
BSF STATUS,RP0 ;BANK-1
;------------------------------------------------
MOVLW 0FH ;00001111设定:RB口不用上拉,分频器配给WDT
MOVWF OPTION_ ;分频比设为1:256
MOVLW 02H ;00000010转换结果左对齐,只选3个A/D通道RA0/AN0,RA1,RA3
MOVWF ADCON1 ;选择VDD和VSS作参考源
;------------------------------------------------
MOVLW 00H
MOVWF TRISC ;PORTC所有管脚设为输出
MOVLW 01H ;
MOVWF TRISB ;RB0=输入
MOVLW 0FFH ;
MOVWF TRISA ;
;------------------------------------------------
BCF STATUS,RP0 ;BANK-0
;------------------------------------------------
MOVLW 01001001B ;01001001选择:时钟时钟源为FOSC/8,允许ADC工作
MOVWF ADCON0 ;通道AN1,暂时不启动转换过程
BCF PIR1, ADIF ;清除A/D中断标志位
;------------------------------------------------
MOVLW 00H ;
MOVWF PORTC ;
MOVLW 0FFH ;
MOVWF PORTB ;
;*****************************************************
LOOP:
NOP ;
NOP ;
;*****************************************************
RCV:
BTFSC PORTB,RMT
GOTO LOOP ;是干扰退出
MOVLW 4
MOVWF CNT1 ;4*256*10us
CLRF CNT2
CLRF CNT0
RCV1: ;先检测引导码的9MS低电平
GOTO $+1 ;每一个循环10US
NOP ;
BTFSC PORTB,RMT ;
INCF CNT2,1 ;
BTFSS PORTB,RMT ;
CLRF CNT2 ;
BTFSC CNT2,3 ;高电平大于8*10US=80US则为有效高电平,否则是一些干扰信号
GOTO RCV2 ;
史海拾趣
|
我对C语言比较熟,Pascal语言也翻过一些,总体感觉就是,C和PASCAL似乎可以互相转换。 后来又想,是不是在头文件中定义宏,可以用PASCAL的语法来写C代码呢?比如, #define BEGIN { #define END } 后来发现,早在我爸我妈还没生我的时候,不, ...… 查看全部问答> |
|
理解电路描述注意三个方面就可以了:1、首先了解功能和处理过程 2、信号连接(模块层次多了,相同的信号会被赋于不同的名字) 3、最后看时序(程序上看着不顺,就仿真看波形了) 最后情景式阅读程序,因为一个电路模块往往能处理各种情况,按某一 ...… 查看全部问答> |
|
各路兄弟帮帮小弟忙,我现在写好了动态物体的跟踪定位代码,已成功移植到DSP上。但现在有个问题:我想在输出视频(即监视器上),用一个方框把动态物体标识住,但不知道ccs的图形函数库怎样使用。 请大侠们帮我想想办法,如何加上这个方框!!感激 ...… 查看全部问答> |
|
问一个wince pb的Attach DEVICE失败的问题 我用pb按wizard定制了一个os,采用emulater模拟的。 一开始连接都是成功了,后来不怎样就失败了。 失败的显示剪贴如下: (CoreCon) 12:31:05 07/07/2006 中国标准时间: Transpo ...… 查看全部问答> |
|
有没有windows XP Embedded ? 有没有相关的学习资料和开发板卖?价格大概多少? 强烈要求把wince作为一个主论坛!… 查看全部问答> |
|
char ii; uchar jj; void send(uchar data) { for (ii=7;ii>=0;ii--) { //scl=0; //aa(); jj=(data>>ii); //sda=(j&0x01); //aa(); //scl=1; //aa(); //aa(); } 复制代码 一个子程序 ,注释掉的内容是为了调试方便画掉的 。 data传来的数据位A0, ...… 查看全部问答> |
|
请教版主一个问题,我用UART2接收数据,接收一包数据的过程中我发现其它的数据都是对的,但中间就是却少一个0xff,请问是怎么回事啊?可能会是什么原因引起的啊,谢谢!! ///串口2初始化 void Uart2Init(void) { ///////////////////串 ...… 查看全部问答> |




