📄 co0511.lst
字号:
__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 + -