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

📄 toucher2.lis

📁 基于PIC单片机
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .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 + -