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

📄 co0511.lst

📁 用m128调试CO0511液晶的源代码!
💻 LST
📖 第 1 页 / 共 3 页
字号:
__text_start:
__start:
    0287 EFCF      LDI	R28,0xFF
    0288 E1D0      LDI	R29,0x10
    0289 BFCD      OUT	0x3D,R28
    028A BFDE      OUT	0x3E,R29
    028B 51C0      SUBI	R28,0x10
    028C 40D0      SBCI	R29,0
    028D EA0A      LDI	R16,0xAA
    028E 8308      STD	Y+0,R16
    028F 2400      CLR	R0
    0290 E8E1      LDI	R30,0x81
    0291 E0F1      LDI	R31,1
    0292 E011      LDI	R17,1
    0293 38E1      CPI	R30,0x81
    0294 07F1      CPC	R31,R17
    0295 F011      BEQ	0x0298
    0296 9201      ST	R0,Z+
    0297 CFFB      RJMP	0x0293
    0298 8300      STD	Z+0,R16
    0299 E8EC      LDI	R30,0x8C
    029A E0F4      LDI	R31,4
    029B E0A0      LDI	R26,0
    029C E0B1      LDI	R27,1
    029D E015      LDI	R17,5
    029E 30ED      CPI	R30,0xD
    029F 07F1      CPC	R31,R17
    02A0 F021      BEQ	0x02A5
    02A1 95C8      LPM
    02A2 9631      ADIW	R30,1
    02A3 920D      ST	R0,X+
    02A4 CFF9      RJMP	0x029E
    02A5 940E0453  CALL	_main
_exit:
    02A7 CFFF      RJMP	_exit
FILE: E:\mcu\avr\test\cO0511\co0511.c
(0001) /********Co051112864图形液晶*************
(0002) CS      接PA0
(0003) RES     接PA1
(0004) A0		接PA2
(0005) SCLk    接PC6
(0006) SI      接PC7
(0007) C86		接PA5
(0008) P/S 	接PA4
(0009) *******************************/
(0010) /********16位ad函数*************
(0011) sclk     接PB3
(0012) DOUT     接PB2
(0013) CONV     接PB4
(0014) EOC      接PB1
(0015) cs		 接PB0
(0016) pa5输出
(0017) *******************************/
(0018) #define uint  unsigned int 
(0019) #define uchar unsigned char 
(0020) #include<iom128v.h>
(0021) //#include<math.h>
(0022) #include<macros.h>
(0023) //#include"ffft.h"
(0024) uchar  turn[128]={0};
(0025) uchar n=0;
(0026) /**************************************************
(0027) float FFT_Re[128]={82,88,108,140,164,177,169,148,114,92,81,90,111,141,165,177,169,144,115,91,82,89,112,141,
(0028) 166,178,168,144,114,90,80,91,112,143,167,178,166,144,112,89,80,91,112,143,168,177,168,142,111,89,82,91,115,
(0029) 144,168,177,166,142,110,89,81,92,115,146,168,178,165,139,109,88,81,93,117,145,169,177,165,139,109,86,82,93,
(0030) 117,148,170,176,164,138,106,88,81,94,118,149,170,177,163,137,106,87,80,94,121,149,171,177,163,106,86,82,96,
(0031) 120,150,171,178,161,136,104,85,82,98,120,152,172,175,161,134,104};    //输入序列实部,初值为20KHz正弦波AD采样得到 
(0032) float FFT_Im[128]={0.0};     //虚部分存,因为是序列变换因此初值为零
(0033) float Wr_Buff[64]={1,0.9988,0.9952,0.9892,0.9808,0.9700,0.9569,0.9415,0.9239,0.9040,
(0034) 0.8819,0.8577,0.8315,0.8032,0.7730,0.7410,0.7071,0.6716,0.6344,0.5957,0.5556,0.5141,
(0035) 0.4714,0.4276,0.3827,0.3369,0.2903,0.2430,0.1951,0.1467,0.0980,0.0491,0,-0.0491,
(0036) -0.0980,-0.1467,-0.1951,-0.2430,-0.2903,-0.3369,-0.3827,-0.4276,-0.4714,-0.5141,
(0037) -0.5556,-0.5957,-0.6344,-0.6716,-0.7071,-0.7410,-0.7730,-0.8032,-0.8315,-0.8577,
(0038) -0.8819,-0.9040,-0.9239,-0.9415,-0.9569,-0.9700,-0.9808,-0.9892,-0.9952,-0.9988}; //旋转因子实部
(0039) float Wi_Buff[64]={0,-0.0491,-0.0980,-0.1467,-0.1951,-0.2430,-0.2903,-0.3369,-0.3827,
(0040) -0.4276,-0.4714,-0.5141,-0.5556,-0.5957,-0.6344,-0.6716,-0.7071,-0.7410,-0.7730,
(0041) -0.8032,-0.8315,-0.8577,-0.8819,-0.9040,-0.9239,-0.9415,-0.9569,-0.9700,-0.9808,
(0042) -0.9892,-0.9952,-0.9988, -1,-0.9988,-0.9952,-0.9892,-0.9808,-0.9700,-0.9569,-0.9415,
(0043) -0.9239,-0.9040,-0.8819,-0.8577,-0.8315,-0.8032,-0.7730,-0.7410,-0.7071,-0.6716,
(0044) -0.6344,-0.5957,-0.5556,-0.5141,-0.4714,-0.4276,-0.3827,-0.3369,-0.2903,-0.2430,
(0045) -0.1951,-0.1467,-0.0980,-0.0491};         //旋转因子虚部
(0046) float Window[128]={0.0806,0.0822,0.0850,0.0888,0.0938,0.0998,0.1069,0.1150,0.1242,
(0047) 0.1343,0.1454,0.1575,0.1705,0.1844,0.1992,0.2147,0.2311,0.2482,0.2660,0.2844,0.3035,
(0048) 0.3232,0.3433,0.3640,0.3850,0.4065,0.4282,0.4503,0.4725,0.4949,0.5174,0.5400,0.5626,
(0049) 0.5851,0.6075,0.6297,0.6518,0.6735,0.6950,0.7160,0.7367,0.7568,0.7765,0.7956,0.8140,
(0050) 0.8318,0.8489,0.8653,0.8808,0.8956,0.9095,0.9225,0.9346,0.9457,0.9558,0.9650,0.9731,
(0051) 0.9802,0.9862,0.9912,0.9950,0.9978,0.9994, 1,0.9994,0.9978,0.9950,0.9912,0.9862,
(0052) 0.9802,0.9731,0.9650,0.9558,0.9457,0.9346,0.9225,0.9095,0.8956,0.8808,0.8653,0.8489,
(0053) 0.8318,0.8140,0.7956,0.7765,0.7568,0.7367,0.7160,0.6950,0.6735,0.6518,0.6297,0.6075,
(0054) 0.5851,0.5626,0.5400,0.5174,0.4949,0.4725,0.4503,0.4282,0.4065,0.3850,0.3640,0.3433,
(0055) 0.3232,0.3035,0.2844,0.2660,0.2482,0.2311,0.2147,0.1992,0.1844,0.1705,0.1575,0.1454,
(0056) 0.1343,0.1242,0.1150,0.1069,0.0998,0.0938,0.0888,0.0850,0.0822,0.0806,0.0800};   //窗函数,改进汉宁窗
(0057) float Res[128];             //转换结果
(0058) float Result1_r;
(0059) float Result1_i;
(0060) float Result2_r;
(0061) float Result2_i;
(0062) //*************************************************
(0063) void FFT_Proc(void);
(0064) /*************************************************
(0065) int main(void)
(0066) {
(0067)     unsigned char i;
(0068) 	for(i=0;i<128;i++)
(0069) 	    FFT_Re[i]*=Window[i];
(0070)     FFT_Proc();
(0071) 	while(1);
(0072) 	return 1;
(0073) }
(0074) *************************************************/ 
(0075) /*------------------------------------------------
(0076) FFT_Proc :计算128点FFT
(0077)     信息 :标准C浮点运算,可移植
(0078) ------------------------------------------------/
(0079) void FFT_Proc(void)
(0080) {
(0081)     unsigned char i;
(0082)     unsigned char j;
(0083)     unsigned char a;
(0084)     unsigned char b;
(0085)     unsigned char c;
(0086)     unsigned char k=0;
(0087)     unsigned char temp=0;
(0088)     unsigned char revers=0;
(0089)     float FFT_Re1[128];
(0090)     for(i=0;i<128;i++)
(0091) 	    FFT_Re1[i]=FFT_Re[i];
(0092)     for(i=0;i<128;i++)
(0093)     {
(0094)         for(j=0;j<7;j++)
(0095)         { 
(0096)             a=(i&(0x01<<j));
(0097)             b=(6-(j<<1));
(0098)             c=6-2*(6-j);
(0099)             if(j<3)
(0100) 	       revers+=a<<b;
(0101)             else if(j>3)
(0102) 	       revers+=a>>c;
(0103)             else
(0104)                revers+=a;
(0105)         }
(0106)         FFT_Re[i]=FFT_Re1[revers];	    
(0107)         revers=0;
(0108)     }                               //对128点输入序列进行位倒序
(0109)     for(i=0;i<7;i++)                //第一重循环控制蝶形的级数
(0110)     {
(0111)         for(j=0;(j+(1<<i))<128;j++) //控制每级的蝶形和旋转因子
(0112)         {
(0113)              if(k<64)
(0114)              {
(0115)                 c=k;
(0116)                 k+=(1<<(6-i));
(0117)              }
(0118)              else
(0119)              k=0;
(0120)              if(temp<(1<<i))
(0121)              {
(0122)                  temp++;
(0123)                  a=j;
(0124)                  b=(j+(1<<i));
(0125)                  Result1_r=FFT_Re[a]+Wr_Buff[c]*FFT_Re[b]-Wi_Buff[c]*FFT_Im[b];
(0126) 	             Result1_i=FFT_Im[a]+Wi_Buff[c]*FFT_Re[b]+Wr_Buff[c]*FFT_Im[b];
(0127) 	             Result2_r=FFT_Re[a]-Wr_Buff[c]*FFT_Re[b]+Wi_Buff[c]*FFT_Im[b];
(0128) 	             Result2_i=FFT_Im[a]-Wi_Buff[c]*FFT_Re[b]-Wr_Buff[c]*FFT_Im[b];  //蝶形单元
(0129)                  FFT_Re[a]=Result1_r;
(0130)                  FFT_Im[a]=Result1_i;
(0131)                  FFT_Re[b]=Result2_r;
(0132)                  FFT_Im[b]=Result2_i;                                              
(0133)              }
(0134)              else
(0135)              {
(0136)                  j=(j+(1<<i)-1);
(0137)                  temp=0;
(0138)              }
(0139) 		    
(0140)          }
(0141)          k=0;
(0142)          temp=0;
(0143)      }
(0144)      for(i=0;i<128;i++)
(0145)      Res[i]=sqrt(FFT_Re[i]*FFT_Re[i]+FFT_Im[i]*FFT_Im[i]);                      //结果取模
(0146) 	 turn[i]=Res[i];
(0147) }
(0148) /**************************************************************************/
(0149) 
(0150) uchar const tab5[]={
(0151) /*--  调入了一幅图像  --*/
(0152) /*--  宽度x高度=128x64  --*/
(0153) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0154) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0155) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0156) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0157) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0158) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0159) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0160) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0161) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0162) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
(0163) 0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x01,0x01,0x01,
(0164) 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
(0165) 0x00,0x00,0x00,0x00,0x02,0x01,0x00,0x02,0x02,0x03,0x02,0x03,0x02,0x02,0x00,0x00,
(0166) 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
(0167) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0168) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0169) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0170) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x20,0xFF,0x00,0x80,0xAB,0xAA,
(0171) 0xAA,0xAA,0xAA,0xAB,0x80,0x00,0x00,0x00,0x01,0x00,0xFD,0x54,0x54,0x56,0x55,0x54,
(0172) 0xFC,0x02,0x01,0x00,0x00,0x02,0x02,0x02,0xFA,0x92,0x92,0x92,0x92,0x92,0x90,0x9F,
(0173) 0x80,0x00,0x00,0x20,0x20,0xBF,0x00,0x7F,0x54,0x54,0xFF,0x54,0x55,0x7F,0x00,0x00,
(0174) 0x00,0x10,0x20,0xFF,0x00,0x80,0xAB,0xAA,0xAA,0xAA,0xAA,0xAB,0x80,0x00,0x00,0x00,
(0175) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0176) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0177) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0178) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0xC0,0x80,
(0179) 0x80,0x88,0x88,0xC8,0x08,0x0F,0x08,0x48,0x88,0x18,0x88,0x40,0x40,0x40,0x4A,0x4A,
(0180) 0xCF,0x12,0x92,0x00,0x1E,0x12,0x12,0x12,0x1E,0x00,0x00,0x00,0x80,0x43,0x92,0x0E,
(0181) 0x02,0x12,0x0E,0x42,0x86,0x1A,0x82,0x43,0x40,0x40,0x40,0x4F,0x49,0x4E,0x40,0x06,
(0182) 0x05,0x15,0x0D,0xC5,0x04,0x06,0xC0,0x80,0x80,0x80,0x80,0xC0,0x00,0x00,0x00,0x00,
(0183) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0184) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0185) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0186) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0187) 0x04,0x04,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x04,0x0C,0x04,0x00,0x00,0x30,0xC0,
(0188) 0xFE,0x80,0x40,0x82,0x92,0x92,0xFE,0x92,0x92,0x82,0x00,0x00,0x80,0x10,0x10,0x90,
(0189) 0x90,0x92,0xBE,0xD0,0x90,0x10,0x90,0x10,0x00,0x00,0x00,0xFE,0x10,0x92,0x62,0x44,
(0190) 0x78,0x40,0x7C,0x42,0x42,0x4E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0191) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0192) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0193) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0194) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0195) 0x04,0x18,0x90,0x74,0x14,0x94,0x75,0x16,0x34,0xD0,0x14,0x18,0x00,0x00,0x04,0x08,
(0196) 0x71,0x11,0x11,0x11,0xFF,0x11,0x11,0x31,0x10,0x00,0x00,0x00,0x08,0x49,0x4A,0x7F,
(0197) 0x8A,0x09,0x24,0x12,0x00,0xFF,0x01,0x01,0x00,0x00,0x08,0x08,0xFF,0x09,0x06,0x10,
(0198) 0xFF,0x10,0x10,0x1F,0x04,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0199) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0200) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0201) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0202) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0203) 0x00,0x80,0x80,0x80,0x80,0x90,0xF0,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x10,0x10,
(0204) 0x10,0x10,0x10,0x10,0xF0,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x80,0x00,0x00,0xF0,
(0205) 0x00,0x80,0x80,0x80,0x80,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x10,0x20,0x40,
(0206) 0x80,0x20,0x10,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0207) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0208) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0209) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0210) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0211) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0212) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0213) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0214) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0215) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0216) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0217) };
(0218) /***********************************************************************
(0219) 延时函数
(0220) 系统时钟:8M
(0221) -----------------------------------------------------------------------*/
(0222) void delay_1us(void)                 //1us延时函数
(0223)   {
(0224)    asm("nop");
_delay_1us:
    02A8 0000      NOP
(0225)   }
    02A9 9508      RET
_delay_nus:
  i                    --> R20
  n                    --> R22
    02AA 940E04AF  CALL	push_gset2
    02AC 01B8      MOVW	R22,R16
(0226) 
(0227) void delay_nus(unsigned int n)       //N us延时函数
(0228)   {
(0229)    unsigned int i=0;
    02AD 2744      CLR	R20
    02AE 2755      CLR	R21
(0230)    for (i=0;i<n;i++)
    02AF C003      RJMP	0x02B3
(0231)    delay_1us();
    02B0 DFF7      RCALL	_delay_1us
    02B1 5F4F      SUBI	R20,0xFF
    02B2 4F5F      SBCI	R21,0xFF
    02B3 1746      CP	R20,R22
    02B4 0757      CPC	R21,R23
    02B5 F3D0      BCS	0x02B0
(0232)   }
    02B6 940E048F  CALL	pop_gset2
    02B8 9508      RET
(0233)   
(0234) void delay_1ms(void)                 //1ms延时函数
(0235)   {
(0236)    unsigned int i;
(0237)    for (i=0;i<1140;i++);
_delay_1ms:
  i                    --> R16
    02B9 2700      CLR	R16
    02BA 2711      CLR	R17
    02BB C002      RJMP	0x02BE
    02BC 5F0F      SUBI	R16,0xFF
    02BD 4F1F      SBCI	R17,0xFF
    02BE 3704      CPI	R16,0x74
    02BF E0E4      LDI	R30,4
    02C0 071E      CPC	R17,R30
    02C1 F3D0      BCS	0x02BC
(0238)   }
    02C2 9508      RET
_delay_nms:
  i                    --> R20
  n                    --> R22
    02C3 940E04AF  CALL	push_gset2
    02C5 01B8      MOVW	R22,R16
(0239)   
(0240) void delay_nms(unsigned int n)       //N ms延时函数
(0241)   {
(0242)    unsigned int i=0;
    02C6 2744      CLR	R20
    02C7 2755      CLR	R21
(0243)    for (i=0;i<n;i++)
    02C8 C003      RJMP	0x02CC
(0244)    delay_1ms();
    02C9 DFEF      RCALL	_delay_1ms
    02CA 5F4F      SUBI	R20,0xFF
    02CB 4F5F      SBCI	R21,0xFF
    02CC 1746      CP	R20,R22
    02CD 0757      CPC	R21,R23
    02CE F3D0      BCS	0x02C9
(0245)   }
    02CF 940E048F  CALL	pop_gset2
    02D1 9508      RET
(0246) /**********位操作函数*********/
(0247) void set_sclk_195(uchar i)//clk     接PB3
(0248) {	 
(0249) 	 if(i)
_set_sclk_195:
  i                    --> R16
    02D2 2300      TST	R16
    02D3 F011      BEQ	0x02D6
(0250) 	 PORTB|=0x08;
    02D4 9AC3      SBI	0x18,3
    02D5 C003      RJMP	0x02D9
(0251) 	 else
(0252) 	 PORTB&=0xf7;
    02D6 B388      IN	R24,0x18
    02D7 7F87      ANDI	R24,0xF7
    02D8 BB88      OUT	0x18,R24
(0253) }
    02D9 9508      RET
(0254) void set_conv(uchar i)
(0255) {	 
(0256) 	 if(i)
_set_conv:
  i                    --> R16
    02DA 2300      TST	R16
    02DB F011      BEQ	0x02DE
(0257) 	 PORTB|=0x10;
    02DC 9AC4      SBI	0x18,4
    02DD C003      RJMP	0x02E1
(0258) 	 else
(0259) 	 PORTB&=0xef;
    02DE B388      IN	R24,0x18
    02DF 7E8F      ANDI	R24,0xEF
    02E0 BB88      OUT	0x18,R24
(0260) }
    02E1 9508      RET
(0261) void set_cs_195(uchar i)
(0262) {	 
(0263) 	 if(i)
_set_cs_195:
  i                    --> R16
    02E2 2300      TST	R16
    02E3 F011      BEQ	0x02E6
(0264) 	 PORTB|=0x01;
    02E4 9AC0      SBI	0x18,0
    02E5 C003      RJMP	0x02E9
(0265) 	 else
(0266) 	 PORTB&=0xfe;
    02E6 B388      IN	R24,0x18
    02E7 7F8E      ANDI	R24,0xFE
    02E8 BB88      OUT	0x18,R24
(0267) }
    02E9 9508      RET
(0268) void set_cs(uchar i)
(0269) { if(i)
_set_cs:
  i                    --> R16
    02EA 2300      TST	R16
    02EB F011      BEQ	0x02EE
(0270) 	 PORTA|=0x01;
    02EC 9AD8      SBI	0x1B,0
    02ED C003      RJMP	0x02F1
(0271) 	 else

⌨️ 快捷键说明

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