📄 ir.asm
字号:
chip sn8pc20
//{{SONIX_CODE_OPTION
.Code_Option Reset_Pin P02
.Code_Option Watch_Dog Disable
.Code_Option High_Clk 4M_X'tal ; Crystal/Resonator: 2Mhz~8Mhz
.Code_Option Fcpu Fosc/4
.Code_Option Security Disable
//}}SONIX_CODE_OPTION
.data
.code
org 00h
jmp main
org 10h
//============================================================
// IR - control
//============================================================
main:
mov a,#97h //TC0C, TC0R value for IR cycle
b0mov irc,a
b0mov irr,a
//=======================================================================
// EX. Set IR cycle frequency is 38KHz. Input clock is 4MHz
//=======================================================================
// IRR initial value = 256 - (IR interrupt interval time * input clock)
//
// IR interval time = 1/38KHz = 26.3us
//
// Input clock = external oscillator 4MHz
//
// IRR = 256 - (26.3us * 4MHz)
// = 150.8
// => 151
// = 97H
mov a,#0BAH
b0mov ird,a // TC0D value for IR duty
//=======================================================================
// EX. Set IRD for 38KHz IR and duty is 1/3. Input clock is 4MHz.
//=======================================================================
// IRD initial value = IRR + (256-IRR) / (1/IR duty)
//
// IRR of 38KHz = 151
//
// IRD = 151 + (256-151)/(1/ (1/3))
// = 186
// = BAH
//
//---------------|--------------|-------------------------------------------|---------------|
// IR Freq | TC0C,TC0R | TC0D | Freq. Error |
//---------------|--------------|--------------|--------------|-------------|---------------|
// | | 1/2 duty(LOW)| 1/3 duty(LOW)|1/4 duty(LOW)| Rate |
//---------------|--------------|--------------|--------------|-------------|---------------|
// (KHz) | DEC->HEX | DEC->HEX | DEC->HEX | DEC->HEX | |
//---------------|--------------|--------------|--------------|-------------|---------------|
// 32 | 131->83H | 193.5->C1H | 172.67->ACH | 162.25->A2H | 0.00 % |
// 36 | 145->91H | 200.5->C8H | 182.00->B6H | 172.75->ACH | 0.10 % |
// 38 | 151->97H | 203.5->CBH | 186.00->BAH | 177.25->B1H | 0.25 % |
// 39.2 | 154->9AH | 205.0->CDH | 188.00->BCH | 179.50->B3H | 0.04 % |
// 40 | 156->9CH | 206.0->CEH | 189.33->BDH | 181.00->B5H | 0.00 % |
// 56 | 185->B9H | 220.5->DCH | 208.67->D0H | 202.75->CAH | 0.60 % |
//---------------|--------------|--------------|--------------|-------------|---------------|
b0bset firen // enable IROUT pin is output low status
b0bset fcren // enable IROUT pin outputs IR carry signal
main10:
//==================================================================
//
// User code
//
//==================================================================
jmp main10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -