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

📄 sci_po~1.lst

📁 项目是为日本瑞萨工作所做的BAKE炉温控系统 整个文件夹包括设计文档
💻 LST
📖 第 1 页 / 共 2 页
字号:
  fp                   --> X+0
  m                    --> X+1
  ch                   --> X+6
  n                    --> X+5
    80EE A7 FD        aiS	#-3
    80F0 95           tSX	
(0082)    return i;
(0083) }
(0084) 
(0085) //SCIReN:HC08串行接收N个字节-----------------------------------------------*
(0086) //功  能:接收N个字节数据,并存放在ch数组中                                  *
(0087) //参  数:待接收的数据字节数及其存放的数组首地址                            *
(0088) //返  回:接收标志=0 收到数据,=1 未收到数据                                 *
(0089) //-------------------------------------------------------------------------*
(0090) INT8U SCIReN(INT8U n,INT8U ch[])
(0091) {
    80F1 6F 02        clr	2,X
    80F3 6F 01        clr	1,X
    80F5 20 31        bra	0x8128
(0092)    int m;                  
(0093)    INT8U fp;
(0094)    m=0;
(0095)    while (m<n)
(0096)    { 	          
    80F7 89           pshX	
    80F8 8B           pshH	
    80F9 CD 808F      jsr	_SCIRe1
    80FC A7 02        aiS	#2
    80FE 95           tSX	
    80FF B7 41        stA	*__r1
    8101 E6 02        ldA	2,X
    8103 EB 07        add	7,X
    8105 B7 43        stA	*__r3
    8107 E6 01        ldA	1,X
    8109 E9 06        adc	6,X
    810B B7 42        stA	*__r2
    810D B6 41        ldA	*__r1
    810F 55 42        ldHX	*__r2
    8111 F7           stA	0,X
    8112 95           tSX	
(0097) 	  ch[m]=SCIRe1(&fp); 
(0098) 	  if (fp==1) return 1;
    8113 F6           ldA	0,X
    8114 A1 01        cmp	#1
    8116 26 04        bne	0x811C
    8118 A6 01        ldA	#1
    811A 20 22        bra	0x813E
(0099) 	  m++;
    811C E6 02        ldA	2,X
    811E AB 01        add	#1
    8120 E7 02        stA	2,X
    8122 E6 01        ldA	1,X
    8124 A9 00        adc	#0
    8126 E7 01        stA	1,X
(0100)    } 
    8128 3F 40        clr	*__r0
    812A E6 05        ldA	5,X
    812C B7 41        stA	*__r1
    812E E6 02        ldA	2,X
    8130 B7 43        stA	*__r3
    8132 E6 01        ldA	1,X
    8134 B7 42        stA	*__r2
    8136 55 42        ldHX	*__r2
    8138 75 40        cpHX	*__r0
    813A 95           tSX	
    813B 91 BA        blt	0x80F7
(0101)    return 0;	 
    813D 4F           clrA	
    813E A7 03        aiS	#3
    8140 81           rts	
_main:
  i                    --> X+0
    8141 A7 FF        aiS	#-1
    8143 95           tSX	
FILE: Main.c
(0001) //-------------------------------------------------------------------------*
(0002) //工程文件名:SCI_Pooling.prj                                               *
(0003) //硬件连接:                                                                *
(0004) //    (1)MCU的串口与PC方的COM1相连                                         *
(0005) //程序描述:利用查询方式把收到的数据发送回去                                *
(0006) //目    的:初步掌握利用查询方式进行串行通信的基本知识                      *
(0007) //说    明:                                                                *
(0008) //注    意:                                                                *
(0009) //日    期:2007.01.03                                                      *
(0010) //-----------------------《嵌入式技术基础与实践》实例----------------------*
(0011) 
(0012) #include "Includes.h"   //总头文件
(0013) //主函数
(0014) void main()
(0015) {
    8144 CD 819B      jsr	_MCUInit
(0016)     INT8U i;
(0017)     MCUInit();
(0018)     SCIInit();          //调串行口初始化子程序              
    8147 CD 8035      jsr	_SCIInit
    814A 95           tSX	
    814B 20 49        bra	0x8196
(0019)     while(1)
(0020)     {
    814D 45 0044      ldHX	#0x0044
    8150 89           pshX	
    8151 8B           pshH	
    8152 A6 01        ldA	#1
    8154 87           pshA	
    8155 CD 80EE      jsr	_SCIReN
    8158 A7 03        aiS	#3
    815A 95           tSX	
    815B B7 41        stA	*__r1
    815D F7           stA	0,X
(0021)       //接收1个字节的数据,如果是#,则继续接收2个字节数据,并回送出去
(0022)       //                  如果是@,则回送@
(0023)       i=SCIReN(1,SerialBuff); 
(0024)       if(SerialBuff[0]=='#') 
    815E B6 44        ldA	*_SerialBuff
    8160 A1 23        cmp	#35
    8162 26 23        bne	0x8187
(0025)       {
    8164 45 0044      ldHX	#0x0044
    8167 89           pshX	
    8168 8B           pshH	
    8169 A6 02        ldA	#2
    816B 87           pshA	
    816C CD 80EE      jsr	_SCIReN
    816F A7 03        aiS	#3
    8171 95           tSX	
    8172 B7 41        stA	*__r1
    8174 F7           stA	0,X
(0026)         i=SCIReN(2,SerialBuff); 
(0027)         if(i==0)
    8175 26 1F        bne	0x8196
(0028)       	 SCISendN(2,SerialBuff);
    8177 45 0044      ldHX	#0x0044
    817A 89           pshX	
    817B 8B           pshH	
    817C A6 02        ldA	#2
    817E 87           pshA	
    817F CD 8051      jsr	_SCISendN
    8182 A7 03        aiS	#3
    8184 95           tSX	
(0029)       }
    8185 20 0F        bra	0x8196
(0030)       else   if(SerialBuff[0]=='@')
    8187 B6 44        ldA	*_SerialBuff
    8189 A1 40        cmp	#64
    818B 26 09        bne	0x8196
(0031)         SCISend1('@');   
    818D A6 40        ldA	#64
    818F 87           pshA	
    8190 CD 8042      jsr	_SCISend1
    8193 A7 01        aiS	#1
    8195 95           tSX	
(0032)     }  
    8196 20 B5        bra	0x814D
    8198 A7 01        aiS	#1
    819A 81           rts	
FILE: SetUp.c
(0001) //_HC08Setup:芯片初始化----------------------------------------------------*
(0002) //功能:系统初始化设置                                                      *
(0003) //     (1)由外部晶振f,通过本程序设置内部总线频率fbus                       *
(0004) //     (2) 确定是否禁止看门狗(COP)                                         *
(0005) //参数:无                                                                  *
(0006) //返回:无                                                                  *
(0007) //说明:该程序与芯片具体型号有关.                                           *
(0008) //     (1)外部晶振f=32.768kHz,使用内部PLL(锁相环),产生内部总线时钟频率     *
(0009) //        fbus=2.4576MHz.                                                  *
(0010) //     (2)禁止COP模块                                                      *
(0011) //-------------------------------------------------------------------------*
(0012) 
(0013) #include "GP32C.h"    //映像寄存器名定义
(0014) 
(0015) void MCUInit(void)
(0016)  {   
_MCUInit:
    819B A6 01        ldA	#1
    819D B7 1E        stA	0x1E
(0017)    //1.设置CONFIG2、CONFIG1
(0018)    //1.1 设置CONFIG2 
(0019)    CONFIG2=0b00000001;          
(0020)          //        ||_SCIBDSRC=1内部总线时钟用作SCI时钟 
(0021)          //        |__OSCSTOPENB=0 在stop模式下禁止振荡器工作
(0022)         
(0023)    //1.2 设置CONFIG1
(0024)    CONFIG1=0b00111101;
    819F A6 3D        ldA	#61
    81A1 B7 1F        stA	0x1F
(0025)            //||||||||_COPD=1 禁止COP模块
(0026)            //|||||||__STOP=0 禁止STOP指令
(0027)            //||||||___SSREC=1 32个CGMXCLK周期退出STOP模式
(0028)            //|||||____LVI5OR3=1 LVI工作在5V
(0029)            //||||_____LVIPWRD=1 禁止LVI模块电源
(0030)            //|||______LVIRSTD=1 允许LVI复位信号
(0031)            //||_______LVISTOP=0 在stop模式下禁止LVI
(0032)            //|________COPRS=0 COP溢出范围使用长的时间
(0033) 
(0034) //2.  PLL编程 
(0035)    PCTL=0x00;         //①禁止PLL:清零PLL控制寄存器PCTL             
    81A3 3F 36        clr	0x36
(0036)    PCTL=0x01;         //②将P、E写入PTCL,置VCO的参考频率为2             
    81A5 A6 01        ldA	#1
    81A7 B7 36        stA	0x36
(0037)    PMSH=0x01;         //③将N写入PMSH、PMSL,置VCO的倍频因子为$12C          
    81A9 A6 01        ldA	#1
    81AB B7 38        stA	0x38
(0038)    PMSL=0x2C;             
    81AD A6 2C        ldA	#44
    81AF B7 39        stA	0x39
(0039)    PMRS=0b10000000;   //④将L写入PMRS,置VCO的输出频率范围系数为$80   
    81B1 A6 80        ldA	#-128
    81B3 B7 3A        stA	0x3A
(0040)    PRDS=0x01;         //⑤将R写入PRDS
    81B5 A6 01        ldA	#1
    81B7 B7 3B        stA	0x3B
(0041)    PCTL|=(1<<5);      //⑥置PCTL.PLLON=1,启动PLL电路  
    81B9 1A 36        Bset	5,0x36
(0042)    PBWC|=(1<<7);      //⑦PBWC自动带宽控制位=1,选择自动控制方式  
    81BB 1E 37        Bset	7,0x37
(0043)    PCTL|=(1<<4);      //⑧PCTL.BCS=1,选择PLL电路为时钟源
FILE: <library>
    81BD 18 36        Bset	4,0x36
    81BF 81           rts	
__HC08Setup:
    81C0 81           rts	

⌨️ 快捷键说明

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