📄 toucher2.lis
字号:
.module toucher2.c
.area data(ram, con, rel)
0000 _realaddr::
0000 .blkb 2
.area idata
0000 0030 .word 12288
.area data(ram, con, rel)
0002 .dbfile F:\AVR\zhulast\toucher2.c
0002 .dbsym e realaddr _realaddr i
.area text(rom, con, rel)
0000 .dbfile F:\AVR\zhulast\toucher2.c
0000 .dbfunc e write_print _write_print fV
0000 ; cmd -> R16
.even
0000 _write_print::
0000 .dbline -1
0000 .dbline 180
0000 ; #include "allhead.h"
0000 ;
0000 ; /****************************变量声明********************************/
0000 ; extern uchar realtimebuff[7];
0000 ; extern uchar time_set[7];
0000 ; extern uchar tx_buff[12]; //存放要发向转换器的数
0000 ; //TWI 相关全局变量
0000 ; extern uchar i2c_rd_buff[32]; //i2c读出的数最初存放的地方
0000 ; extern uchar i2c_wt_buff[35]; //写
0000 ; extern uchar fhz;
0000 ;
0000 ; extern uchar canuse[4]; //转换器的投用情况 按位
0000 ; extern uchar detuse[33][4]; //所有485节点的投用情况,0,1按位起作用
0000 ; extern uchar det_link[33]; //探测器或联动模块选择字节段,按位起作用
0000 ;
0000 ;
0000 ; //GAL门相关全局变量
0000 ; extern uchar gal1data ;
0000 ; extern uchar gal2data ; //继电器控制信号1,联动模块故障1,联动输出都为1
0000 ; extern uchar gal3data ; //指示灯为共阳极的
0000 ; extern uchar gal4data ;
0000 ; extern uchar gal5data ;
0000 ;
0000 ; extern uint baojingaddr;
0000 ; extern uint guzhangaddr; //第一次取用的最新故障地址
0000 ; extern uint guzhangaddr2; //已存住的最新故障地址
0000 ; extern uint baojingaddr2;
0000 ; extern uint onaddr2 ; //开关机用
0000 ; extern uchar canuse[4];
0000 ; extern uchar detuse[33][4]; //所有485节点的投用情况,0,1按位起作用
0000 ; extern uchar zhongbuff[32][10]; // 一次接收的转换器的数
0000 ; extern uint cuo1;
0000 ; extern uint cuo2;
0000 ; extern uchar keyc;
0000 ; extern uchar gal1data;
0000 ; extern uchar gal2data;
0000 ; extern uchar gal3data;
0000 ; extern uchar gal4data;
0000 ;
0000 ;
0000 ; //系统坐标
0000 ; extern uchar xh; //横坐标高字节
0000 ; extern uchar xl; //横坐标低字节
0000 ; extern uchar yh; //纵坐标高字节
0000 ; extern uchar yl; //纵坐标高字节
0000 ; //矩形的右下角坐标
0000 ; extern uchar x2h; //横坐标高字节
0000 ; extern uchar x2l; //横坐标低字节
0000 ; extern uchar y2h; //纵坐标高字节
0000 ; extern uchar y2l; //纵坐标高字节
0000 ; //common use
0000 ; extern uchar i;
0000 ; extern uchar j;
0000 ; //系统坐标转换后坐标
0000 ; extern uint x;
0000 ; extern uint y;
0000 ;
0000 ; extern uchar biaozhi; //USART1接收中断数据标志
0000 ; extern uchar key; //键值
0000 ; extern uchar RXC_BUFF[15]; //触摸屏发送的数据
0000 ; extern uchar jiemian; //界面标志
0000 ;
0000 ;
0000 ; //开关机记录显示用
0000 ; extern uint addre2; //外部E2的当前地址
0000 ; extern uchar addre2hi; //地址高址
0000 ; extern uchar addre2lo; //地址低址
0000 ;
0000 ;
0000 ; extern uchar num_open; //存放开关机记录中的编号
0000 ; extern uchar num_open2; //存放翻页后的第一个开关机记录编号
0000 ; extern uchar data[16]; //存放外部E2中的开关机记录中信息
0000 ; extern uchar baojing[16]; //存放外部E2中的报警记录信息
0000 ; extern uchar guzhang[8]; //存放外部E2中的故障记录信息
0000 ; extern uint chroma[16] ; //显示的浓度
0000 ; extern uchar c[3]; //通道关联探测器编号及高低报情况
0000 ;
0000 ; extern uint ccc; //等待CAN返回计数延时用
0000 ; //uchar use_instance; //使用情况;
0000 ;
0000 ; /********************************************************************/
0000 ;
0000 ;
0000 ; extern uchar pass1[6]; //更改密码所存数组
0000 ; extern uchar pass2[6]; //确认密码所存数组
0000 ; extern uchar pass3[6]; //输入密码所存数组
0000 ; extern uchar pass[6]; //存放E2中读出的密码
0000 ; extern uchar time[22]; //存放时间设定后的值
0000 ; extern uchar high[4]; //高报浓度
0000 ; extern uchar low[4]; //低报浓度
0000 ; extern uchar passage1[4]; //通道1
0000 ; extern uchar passage2[4]; //通道2
0000 ; //extern uchar passage3[4]; //通道3
0000 ; //extern uchar passage4[4]; //通道4
0000 ; extern uchar linkage1[2]; //存放控制外设界面中输入的转换器编号
0000 ; extern uchar linkage2[2]; //存放控制外设界面中输入的探测器编号
0000 ; extern uchar linkage[4]; //存放系统设置界面中输入的调零地址号
0000 ; extern uchar old_can[2]; //原来转换器地址
0000 ; extern uchar new_can[2]; //修改后转换器地址
0000 ; extern uchar can[2]; //修改探测器界面中can的地址
0000 ; extern uchar old_det[2]; //原来探测器地址
0000 ; extern uchar new_det[2]; //修改后探测器地址
0000 ; extern uchar index_link1; //指向linkage1数组中的数
0000 ; extern uchar index_link2; //指向linkage2数组中的数
0000 ; extern uchar index_link; //指向linkage数组中的数
0000 ; extern uchar bd; //指向biaoding数组中的数
0000 ; //uchar send_buff[8];
0000 ; //uchar recv_buff[8];
0000 ; extern uchar p1; //对应old_can数组
0000 ; extern uchar p2; //对应new_can数组
0000 ; extern uchar p3; //对应can数组
0000 ; extern uchar p4; //对应old_det数组
0000 ; extern uchar p5; //对应new_det数组
0000 ; extern uchar m1; //对应pass1数组
0000 ; extern uchar m2; //对应pass2数组
0000 ; extern uchar m3; //对应pass3数组
0000 ; extern uchar m; //对应pass数组
0000 ; extern uchar n; //对应time数组
0000 ; extern uchar n1; //对应high数组
0000 ; extern uchar n2; //对应low数组
0000 ; extern uchar way1; //通道1标志
0000 ; extern uchar way2; //通道2标志
0000 ; //extern uchar way3; //通道3标志
0000 ; //extern uchar way4; //通道4标志
0000 ; extern uchar page; //翻页标志
0000 ; extern uchar flag_can; //can标志
0000 ; //extern uchar flag_sound; //按键音
0000 ; extern uchar flag_print; //打印标志
0000 ; extern uchar gas_type; //气体类型
0000 ; extern uchar unit_chroma; //浓度单位
0000 ; extern uchar info_det[4]; //存放高低报浓度转换后的值
0000 ; extern uchar choice; //选择
0000 ; extern uchar regist; //注册
0000 ; extern uchar denglu; //登录
0000 ; extern uchar num_can; //can编号
0000 ; extern uchar num_det; //节点编号
0000 ; extern uchar num_det2; //已选择的节点的编号
0000 ; extern uchar addr_can; //控制外设界面中转换器编号
0000 ; extern uchar addr_can1; //联动界面中通道1关联的转换器编号
0000 ; extern uchar addr_can2; //联动界面中通道2关联的转换器编号
0000 ; //extern uchar addr_can3; //联动界面中通道3关联的转换器编号
0000 ; //extern uchar addr_can4; //联动界面中通道4关联的转换器编号
0000 ; extern uchar addr_det; //控制外设界面中探测器编号
0000 ; extern uchar addr_det1; //联动界面中通道1关联的探测器编号
0000 ; extern uchar addr_det2; //联动界面中通道2关联的探测器编号
0000 ; //extern uchar addr_det3; //联动界面中通道3关联的探测器编号
0000 ; //extern uchar addr_det4; //联动界面中通道4关联的探测器编号
0000 ; //extern uchar high_low1; //联动界面中通道1关联的高低报情况
0000 ; //extern uchar high_low2; //联动界面中通道2关联的高低报情况
0000 ; //extern uchar high_low3; //联动界面中通道3关联的高低报情况
0000 ; //extern uchar high_low4; //联动界面中通道4关联的高低报情况
0000 ; extern uchar channel; //存放通道的吸合断开情况
0000 ; extern uchar cha_local; //存放本地通道的吸合断开情况
0000 ; extern uchar state_cha;
0000 ;
0000 ; //光标坐标
0000 ; extern uchar X1H;
0000 ; extern uchar X1L;
0000 ; extern uchar Y1H;
0000 ; extern uchar Y1L;
0000 ; extern uchar X2H;
0000 ; extern uchar X2L;
0000 ; extern uchar Y2H;
0000 ; extern uchar Y2L;
0000 ; extern uint X1; //光标左上角横坐标
0000 ; extern uint Y1; //光标左上角纵坐标
0000 ; extern uint X2; //光标右下角横坐标
0000 ; extern uint Y2; //光标右下角纵坐标
0000 ;
0000 ; //uchar first_clarm[11]; //存放首次报警信息
0000 ; uint realaddr=0x3000; //实时地址
0000 ;
0000 ;
0000 ; /******************************************************************
0000 ; ***********************打印*************************
0000 ; **********************************************************/
0000 ;
0000 ; //写打印函数
0000 ; void write_print(uchar cmd)
0000 ; {
0000 L2:
0000 .dbline 182
0000 L3:
0000 .dbline 181
0000 ; while((PIND&0x80)==0x80)
0000 20B2 in R2,0x10
0002 3324 clr R3
0004 27FC sbrc R2,7
0006 FCCF rjmp L2
0008 .dbline 183
0008 ; ; //如果忙,等待
0008 ; GAL5ADDR=cmd; //输入命令
0008 00930050 sts 20480,R16
000C .dbline -2
000C L1:
000C .dbline 0 ; func end
000C 0895 ret
000E .dbsym r cmd 16 c
000E .dbend
000E .dbfunc e cha_print _cha_print fV
000E ; temp2 -> R20
000E ; temp1 -> R22
.even
000E _cha_print::
000E 0E940000 xcall push_gset2
0012 422F mov R20,R18
0014 602F mov R22,R16
0016 .dbline -1
0016 .dbline 188
0016 ; }
0016 ;
0016 ; //命令打印函数
0016 ; void cha_print(uchar temp1,uchar temp2)
0016 ; {
0016 .dbline 189
0016 ; write_print(temp1);
0016 062F mov R16,R22
0018 F3DF xcall _write_print
001A .dbline 190
001A ; write_print(temp2);
001A 042F mov R16,R20
001C F1DF xcall _write_print
001E .dbline -2
001E L5:
001E 0E940000 xcall pop_gset2
0022 .dbline 0 ; func end
0022 0895 ret
0024 .dbsym r temp2 20 c
0024 .dbsym r temp1 22 c
0024 .dbend
0024 .dbfunc e int_prt _int_prt fV
.even
0024 _int_prt::
0024 .dbline -1
0024 .dbline 195
0024 ; }
0024 ;
0024 ; //初始化打印机
0024 ; void int_prt(void)
0024 ; {
0024 .dbline 196
0024 ; cha_print(0x1b,0x40); //初始化
0024 20E4 ldi R18,64
0026 0BE1 ldi R16,27
0028 F2DF xcall _cha_print
002A .dbline 197
002A ; cha_print(0x1b,0x31); //行间距6
002A 21E3 ldi R18,49
002C 0BE1 ldi R16,27
002E EFDF xcall _cha_print
0030 .dbline 198
0030 ; write_print(0x06);
0030 06E0 ldi R16,6
0032 E6DF xcall _write_print
0034 .dbline 199
0034 ; cha_print(0x1c,0x26); //设置汉字打印方式
0034 26E2 ldi R18,38
0036 0CE1 ldi R16,28
0038 EADF xcall _cha_print
003A .dbline -2
003A L6:
003A .dbline 0 ; func end
003A 0895 ret
003C .dbend
003C .dbfunc e kong_print _kong_print fV
003C ; kkk -> R20
003C ; temp -> R22
.even
003C _kong_print::
003C 0E940000 xcall push_gset2
0040 602F mov R22,R16
0042 .dbline -1
0042 .dbline 203
0042 ; }
0042 ; //空格打印函数
0042 ; void kong_print(uchar temp)
0042 ; {
0042 .dbline 204
0042 ; uchar kkk=0;
0042 4427 clr R20
0044 .dbline 205
0044 ; for(kkk=0;kkk<temp;kkk++)
0044 03C0 xjmp L11
0046 L8:
0046 .dbline 206
0046 00E2 ldi R16,32
0048 DBDF xcall _write_print
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -