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

📄 em78x468xx.inc

📁 FM发射器源代码,方案义隆MCU+罗姆1418,频率88MHZ到108MHZ
💻 INC
📖 第 1 页 / 共 3 页
字号:
     ;}
;     
; Counter1 and Counter2 Control Register
;
 IOC91      ==    0x09
 CNT12CR    ==    0x09
; 
     ;{     
         mCNT2S     ==    0x80    ; Counter 2 Clock Source select bit.
                                  ; "0" : Fs (sub oscillator)
                                  ; "1" : Fm (main oscillator)
         mCNT2P2    ==    0x40    ; Counter 2 Prescaler Select Bit[2]
         mCNT2P1    ==    0x20    ; Counter 2 Prescaler Select Bit[1]
         mCNT2P0    ==    0x10    ; Counter 2 Prescaler Select Bit[0]
                                  ;                               
                                  ; |------|------|------|----------------|
                                  ; |CNT2P2|CNT2P1|CNT2P0| Counter2 Scaler|
                                  ; |------|------|------|----------------|
                                  ; |   0  |   0  |   0  |      1:2       |
                                  ; |   0  |   0  |   1  |      1:4       |
                                  ; |   0  |   1  |   0  |      1:8       |
                                  ; |   0  |   1  |   1  |      1:16      |
                                  ; |   1  |   0  |   0  |      1:32      |
                                  ; |   1  |   0  |   1  |      1:64      |
                                  ; |   1  |   1  |   0  |      1:128     |
                                  ; |   1  |   1  |   1  |      1:256     |
                                  ; |------|------|------|----------------|
                                  ;
         mCNT1S     ==    0x08    ; Counter 1 Clock Source select bit.
                                  ; "0" : Fs (sub oscillator)
                                  ; "1" : Fm (main oscillator)
         mCNT1P2    ==    0x04    ; Counter 1 Prescaler Select Bit[2]
         mCNT1P1    ==    0x02    ; Counter 1 Prescaler Select Bit[1]
         mCNT1P0    ==    0x01    ; Counter 1 Prescaler Select Bit[0]
                                  ;
                                  ; |------|------|------|----------------|
                                  ; |CNT1P2|CNT1P1|CNT1P0| Counter1 Scaler|
                                  ; |------|------|------|----------------|
                                  ; |   0  |   0  |   0  |       1:2      |
                                  ; |   0  |   0  |   1  |       1:4      |
                                  ; |   0  |   1  |   0  |       1:8      |
                                  ; |   0  |   1  |   1  |       1:16     |
                                  ; |   1  |   0  |   0  |       1:32     |
                                  ; |   1  |   0  |   1  |       1:64     |
                                  ; |   1  |   1  |   0  |       1:128    |
                                  ; |   1  |   1  |   1  |       1:256    |
                                  ; |------|------|------|----------------|        
     ;}     
;
; High/Low Pulse Width Timer Control Register
;
 IOCA1      ==    0x0A
 HLPWTCR    ==    0x0A
; 
     ;{ 
         mLPWTS     ==    0x80    ; Low Pulse Width Timer Clock Source select.
                                  ; "0" : Fs (sub oscillator)
                                  ; "1" : Fm (main oscillator)
         mLPWTP2    ==    0x40    ; Low Pulse Width Timer Prescaler Select Bit[2]
         mLPWTP1    ==    0x20    ; Low Pulse Width Timer Prescaler Select Bit[1]
         mLPWTP0    ==    0x10    ; Low Pulse Width Timer Prescaler Select Bit[0]
                                  ;
                                  ; |------|------|------|----------------|
                                  ; |LPWTP2|LPWTP1|LPWTP0|   LPWT Scaler  |
                                  ; |------|------|------|----------------|
                                  ; |   0  |   0  |   0  |       1:2      |
                                  ; |   0  |   0  |   1  |       1:4      |
                                  ; |   0  |   1  |   0  |       1:8      |
                                  ; |   0  |   1  |   1  |       1:16     |
                                  ; |   1  |   0  |   0  |       1:32     |
                                  ; |   1  |   0  |   1  |       1:64     |
                                  ; |   1  |   1  |   0  |       1:128    |
                                  ; |   1  |   1  |   1  |       1:256    |
                                  ; |------|------|------|----------------|        
                                  ;
         mHPWTS     ==    0x08    ; High Pulse Width Timer Clock Source select.
                                  ; "0" : Fs (sub oscillator)
                                  ; "1" : Fm (main oscillator)
         mHPWTP2    ==    0x04    ; High Pulse Width Timer Prescaler Select Bit[2]
         mHPWTP1    ==    0x02    ; High Pulse Width Timer Prescaler Select Bit[1]
         mHPWTP0    ==    0x01    ; High Pulse Width Timer Prescaler Select Bit[0]
                                  ;
                                  ; |------|------|------|----------------|
                                  ; |HPWTP2|HPWTP1|HPWTP0|   HPWT Scaler  |
                                  ; |------|------|------|----------------|
                                  ; |   0  |   0  |   0  |       1:2      |
                                  ; |   0  |   0  |   1  |       1:4      |
                                  ; |   0  |   1  |   0  |       1:8      |
                                  ; |   0  |   1  |   1  |       1:16     |
                                  ; |   1  |   0  |   0  |       1:32     |
                                  ; |   1  |   0  |   1  |       1:64     |
                                  ; |   1  |   1  |   0  |       1:128    |
                                  ; |   1  |   1  |   1  |       1:256    |
                                  ; |------|------|------|----------------|        
     ;}     
;
; Port 6 Pull High Control Register
;
 IOCB1    ==    0X0B
 P6PH     ==    0X0B
;
     ;{                         ; Bit[n]="0", Disable P6.[n] Pull High Function.n=7~0                       
                                ; Bit[n]="1", Enable P6.[n] Pull High Function.n=7~0        
         mPH67    ==    0x80    ; 
         mPH66    ==    0x40    ;
         mPH65    ==    0x20    ; 
         mPH64    ==    0x10    ; 
         mPH63    ==    0x08    ; 
         mPH62    ==    0x04    ; 
         mPH61    ==    0x02    ; 
         mPH60    ==    0x01    ; 
     ;}   
;     
; Port 6 Open Drain Control Register
;
 IOCC1    ==    0X0C
 P6OD     ==    0X0C
;
     ;{                         ; Bit[n]="0", Disable P6.[n] Open Drain Function. n=7~0
                                ; Bit[n]="1", Enable P6.[n] Open Drain Function. n=7~0                      
         mOD67    ==    0x80    ; 
         mOD66    ==    0x40    ;
         mOD65    ==    0x20    ; 
         mOD64    ==    0x10    ; 
         mOD63    ==    0x08    ; 
         mOD62    ==    0x04    ; 
         mOD61    ==    0x02    ; 
         mOD60    ==    0x01    ; 
     ;}   
;          
; Port 8 Pull High Control Register
;
 IOCD1    ==    0X0D
 P8PH     ==    0X0D
;
     ;{                         ; Bit[n]="0", Disable P8.[n] Pull High Function. n=7~0
                                ; Bit[n]="1", Enable P8.[n] Pull High Function. n=7~0 
         mPH87    ==    0x80    ; 
         mPH86    ==    0x40    ; 
         mPH85    ==    0x20    ; 
         mPH84    ==    0x10    ; 
         mPH83    ==    0x08    ; 
         mPH82    ==    0x04    ; 
         mPH81    ==    0x02    ; 
         mPH80    ==    0x01    ; 
     ;}  
;     
; Port 6 Pull Low Control Register
;
 IOCE1    ==    0X0E
 P6PL     ==    0X0E
;
     ;{                         ; Bit[n]="0", Disable P6.[n] Pull Low Function. n=7~0
                                ; Bit[n]="1", Enable P6.[n] Pull Low Function. n=7~0    
         mPL67    ==    0x80    ; 
         mPL66    ==    0x40    ; 
         mPL65    ==    0x20    ; 
         mPL64    ==    0x10    ; 
         mPL63    ==    0x08    ; 
         mPL62    ==    0x04    ; 
         mPL61    ==    0x02    ; 
         mPL60    ==    0x01    ; 
     ;}        
;
;======================================================;
; Others Define                                        ;
;======================================================;
;
; Bit set use BC or BS
;
 B0     ==    0x00
 B1     ==    0x01
 B2     ==    0x02
 B3     ==    0x03
 B4     ==    0x04
 B5     ==    0x05
 B6     ==    0x06
 B7     ==    0x07
;
 mB0    ==    0x01
 mB1    ==    0x02
 mB2    ==    0x04
 mB3    ==    0x08
 mB4    ==    0x10
 mB5    ==    0x20
 mB6    ==    0x40
 mB7    ==    0x80
;

;-------------------------------------------------------------------
;Bits define
;STATUS  Register bits  define
;-------------------------------------------------------------------
;C       ==      0
;DC      ==      1
;Z       ==      2
;P       ==      3
;T       ==      4
;PS0     ==      5
;PS1     ==      6
;Interrupt status bits define
;TCIF    ==      0
;INT0F   ==      1
;INT1F   ==      2
;CNT1F   ==      3
;CNT2F   ==      4
;HPWTF   ==      5
;LPWTF   ==      6
;ICIF    ==      7
;Interrupt mask register bits define
TCIE    ==      0
INT0E   ==      1
INT1E   ==      2
CNT1E   ==      3
CNT2E   ==      4
HPWTE   ==      5
LPWTE   ==      6
ICIE    ==      7
;-------------------------------------------------------------------
;General Purpose  Registers Define
;-------------------------------------------------------------------
INCOUNT     ==      0x10      ; For Timer delay
DELAYTIME   ==      0x11
;
DispFreqTmp_Hi == 0x2E
DispFreqTmp_Lw == 0x2F

DispFreq_Hi ==    0x14          ;
DispFreq_Lw ==    0x15          ;
OldKeyNum    ==    0x16
kEYCnt       ==    0x17         ;H
KeyNum       ==   0x18          ; For Key Scan
;
TEMP1	    ==	    0X19
TEMP2       ==      0x1A
COUNTER0    ==      0x19
COUNTER1    ==      0x1A
;

;IICaddress 	==	0x1B	
;IICdata		==	0x1C
;IIC_Hi	        ==	0x1D
;IIC_Lw	        ==	0x1E
ControlByte1    ==  0x1B
ControlByte2    ==  0x1C
Freq_Hi         ==   0x1D
Freq_Lw         ==   0x1E
WORKFLAGS       ==   0X1F
DISPFLAGS       ==   0X12
;
;R20 ~R25,R30 ~ 35 FOR BCD CHANGE
M1_Value_Hi       == 0x26
M1_Value_Lw       == 0x27
M2_Value_Hi       == 0x28
M2_Value_Lw       == 0x29
M3_Value_Hi       == 0x2A
M3_Value_Lw       == 0x2B
M4_Value_Hi       == 0x2C
M4_Value_Lw       == 0x2D
;--------------------------------------
CharityData1      == 0x3E
CharityData2      == 0x3F

;==============================================================
;  IIC Define  Port8.0->SDA, Port8.1->SCL
;=============================================================
i2port		==	0x08
scl	==	1
sda	==	0
wrcfg	==	11111110b	  ;eeprom write tri-state value
rdcfg	==	00000001b	  ;eeprom read tri-state value
;================================
IICaddress 	==	0x1B	
IICdata		==	0x1C
tmp1		==	0x19
tmp2		==	0x1a
IIC_Hi	==	0x1D
IIC_Lw	==	0x1E
cnt_hi	==	0x15
cnt_lw	==	0x16
;================================

;-------------------------------------------------------------------
;General Purpose  bits Define
;------------------------------------------------------------------
;WORKFLAGS
TwoMinUp    ==      0
KeyHold     ==      1
T1On        ==      2
NoPower     ==      3
Key_on      ==      4
AudioOn     ==      5
FGINTON     ==      6
LongKeyOn   ==      7
;--------------------------------------------------------------------
;DISPFLAGS   
;--------------------------------------------------------------------
M1on        ==      0
M2on        ==      1
M3on        ==      2
M4on        ==      3
ShowM       ==      4
;AddFreq     ==      5
;DecFreq     ==      6
;-------------------------------------------------------------------
;Constants define
MAXINTCN    ==      0x0A
;
MAX_FM_H      ==    0x10   ;108.0Mhz
MAX_FM_L      ==    0x80
;
MIN_FM_H      ==    0x08   ;88.0Mhz
MIN_FM_L      ==    0x80
;
STEP_VALUE    ==    0x01   ;0.1Mhz
; 
MHZ_FM_H      ==    0x10   ;100.0Mhz
MHZ_FM_L      ==    0x00   ;
;
M1_PRESET_H   ==      0x09  ; 90.0Mhz
M1_PRESET_L   ==      0x00  ; 
;
M2_PRESET_H   ==      0x09  ; 95.0Mhz
M2_PRESET_L   ==      0x50
;
M3_PRESET_H   ==      0x10  ; 100.0Mhz
M3_PRESET_L   ==      0x00  ; 
;
M4_PRESET_H   ==      0x10  ; 105.0Mhz
M4_PRESET_L   ==      0x50  ; 
;===================================
Key_Freq_INC  == 0b01111111  ;
Key_Freq_DEC  == 0b10111111  ;
Key_M1        == 0b11011111  ;
Key_M2        == 0b11101111  ;
Key_M3        == 0b11110111  ;
Key_M4        == 0b11111011  ;
Key_PWR       == 0b11111101  ;
Key_Audio     == 0b11111110  ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -