⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ir.asm

📁 范例程序 SONiX
💻 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 + -