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

📄 main.s

📁 项目是为日本瑞萨工作所做的BAKE炉温控系统 整个文件夹包括设计文档
💻 S
字号:
	.module main.c
	.area data
_FLine::
	.blkb 1
	.area idata
	.byte 0
	.area data
	.dbfile main.c
	.dbsym e FLine _FLine c
_LcdShowBuff::
	.blkb 64
	.area idata
	.byte 203,213,214,221,180,243,209,167,32,32,32,32,32,32,32,32
	.byte 181,165,198,172,187,250,202,181,209,233,202,210,32,32,32,32
	.byte 'h,'t,'t,'p,58,47,47,'s,'u,'m,'c,'u,46,'s,32,32
	.byte 'u,'d,'a,46,'e,'d,'u,46,'c,'n,32,32,32,32,32,32
	.area data
	.dbfile main.c
	.dbsym e LcdShowBuff _LcdShowBuff A[64:64]c
	.area text
	.dbfile main.c
	.dbfunc e main _main fV
;             RF -> 0,X
;             LN -> 2,X
_main::
	.dbline -1
	ais #-3
	tsx
	.dbline 31
; /*-----------------------------------------------------*
; *工 程 名:TG12864E02.prj                               *
; *硬件连接: 1.LCD的DB0-7与MCU的B口的PTB0-7连接          *
; *          2.LCD的RS,R/W,E与MCU的PTC0,PTC1,PTC2连接    *
; *   功 能:初始时显示:"苏州大学        "                *
; *                    "单片机实验室    "                *
; *                    "http://sumcu.s  "                *
; *                    "uda.edu.cn      "                *
; *-----------------------------------------------------*/
; 
; /*[头文件]*/
; #include "GP32C.h"        //映像寄存器地址头文件
; #include "lcd.h"          //Lcd头文件
; #include "SCI.h"          //SCI头文件
; //有关定时器寄存器位定义
; #define TSTOPBit   5      //定时器计数停止位
; //定时器初始化函数声明
; void Timer1init(void);
; //SCI初始化
; extern void SCIInit(void);
; //全局变量声明
;   unsigned char FLine=0;  //得到焦点的行号
;   //[外部定义64个字节的Lcd显示缓冲区]
;   unsigned char LcdShowBuff[64]="苏州大学        "
;                                 "单片机实验室    "                
;                                 "http://sumcu.s  "                
;                                 "uda.edu.cn      ";
; //*====================================================*
; /*[主函数]*/
; void main()
;  {  
	.dbline 34
;     unsigned char *RF;        //接收标志
;     unsigned char LN;         //行号标志
;     asm("SEI");               //关总中断
	SEI
	.dbline 35
;     Timer1init();             //调定时器1初始化子程序
	jsr _Timer1init
	.dbline 36
;     Lcdinit();                //Lcd初始化
	jsr _Lcdinit
	.dbline 37
;     SCIInit();                //SCI初始化
	jsr _SCIInit
	tsx
	.dbline 38
;     asm("CLI");               //开总中断
	CLI
	jmp L3
L2:
	.dbline 42
;   //[主循环]
;   //循环等待接收
;   while(1)
;   {
	.dbline 43
;   	SCISend1(86);
	lda #86
	psha
	jsr _SCISend1
	ais #1
	tsx
	.dbline 44
;   	if(SCIRe1(RF)!=56) continue;
	lda 1,X
	psha
	lda ,X
	psha
	jsr _SCIRe1
	ais #2
	tsx
	sta *__r1
	cmp #56
	beq L5
	.dbline 44
	bra L3
L5:
	.dbline 45
;   	LN=SCIRe1(RF);
	lda 1,X
	psha
	lda ,X
	psha
	jsr _SCIRe1
	ais #2
	tsx
	sta *__r1
	sta 2,X
	.dbline 46
;   	if(LN==1)     //将接收到的数据放在第一行显示缓冲区
	cmp #1
	bne L7
	.dbline 47
;        SCIReN(16,LcdShowBuff);
	ldhx #_LcdShowBuff
	pshx
	pshh
	lda #16
	psha
	jsr _SCIReN
	ais #3
	tsx
	bra L8
L7:
	.dbline 48
;   	else if(LN==2)//将接收到的数据放在第二行显示缓冲区
	lda 2,X
	cmp #2
	bne L9
	.dbline 49
;   	   SCIReN(16,LcdShowBuff+16);
	ldhx #_LcdShowBuff+16
	pshx
	pshh
	lda #16
	psha
	jsr _SCIReN
	ais #3
	tsx
	bra L10
L9:
	.dbline 50
;   	else if(LN==3)//将接收到的数据放在第三行显示缓冲区
	lda 2,X
	cmp #3
	bne L12
	.dbline 51
;   	   SCIReN(16,LcdShowBuff+32);
	ldhx #_LcdShowBuff+32
	pshx
	pshh
	lda #16
	psha
	jsr _SCIReN
	ais #3
	tsx
	bra L13
L12:
	.dbline 52
;   	else if(LN==4)//将接收到的数据放在第四行显示缓冲区
	lda 2,X
	cmp #4
	bne L15
	.dbline 53
;   	   SCIReN(16,LcdShowBuff+48);
	ldhx #_LcdShowBuff+48
	pshx
	pshh
	lda #16
	psha
	jsr _SCIReN
	ais #3
	tsx
L15:
L13:
L10:
L8:
	.dbline 54
L3:
	.dbline 41
	jmp L2
X0:
	.dbline -2
L1:
	ais #3
	.dbline 0 ; func end
	rts
	.dbsym l RF 0 pc
	.dbsym l LN 2 c
	.dbend
	.dbfunc e Timer1init _Timer1init fV
_Timer1init::
	.dbline -1
	.dbline 64
;   }
;  }
; 
; /*[内部直接调用子程序存放处]*/
; /*Timer1init:定时器1初始化子程序-----------------------*
; *功能:对定时器1初始化                                  *
; *参数:无                                               *
; *返回:无                                               *
; *-----------------------------------------------------*/
; void Timer1init(void)
;  {
	.dbline 66
;      //允许溢出中断、不启动计数、分频因子=64
;      T1SC=0b01100110;
	lda #102
	sta 0x20
	.dbline 68
;      //计数寄存器初值=0x0000
;      T1CNTH=0x00; T1CNTL=0x00;           
	clr 0x21
	.dbline 68
	clr 0x22
	.dbline 71
;      //1/2秒产生1次溢出中断
;      //计数寄存器=1/2×(2457600/64)=1200
;      T1MODH=0x12; T1MODL=0x00;
	lda #18
	sta 0x23
	.dbline 71
	clr 0x24
	.dbline 73
;      //允许定时器1计数寄存器计数
;      T1SC&=~(1<<TSTOPBit);
	bclr #5,0x20
	.dbline -2
L18:
	.dbline 0 ; func end
	rts
	.dbend

⌨️ 快捷键说明

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