<?xml version="1.0" encoding="gb2312"?><rss version="2.0"><channel><title>侃单片机</title><link></link><description></description><language>zh-cn</language><generator>Goodspeed Rss</generator><ttl>5</ttl><pubDate>Tue, 07 Jul 2009 02:12:55 GMT</pubDate><category></category><copyright></copyright><docs></docs><item><title>AVR微秒级与毫秒级精确延时</title><pubDate>Sat, 14 Apr 2007 13:11:08 GMT</pubDate><link>http://blog.ednchina.com/blog/levension/22091/message.aspx</link><description>&lt;p&gt;/*******************************************************************&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;微秒级精确延时(ICC)&lt;/p&gt;
&lt;p&gt;*******************************************************************/&lt;/p&gt;
&lt;p&gt;include &amp;lt;iom8v.h&amp;gt;&lt;br&gt;/*======================================&lt;br&gt;&amp;nbsp;微秒级精确延时函数,晶振8M:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;Delay = 0.125 *((tt*4-1)+9)微秒&lt;br&gt;&amp;nbsp;其中9包括了调用方的 r16 赋值 1t&lt;br&gt;&amp;nbsp;rcall 3t&amp;nbsp;&amp;nbsp;&amp;nbsp; nop 1t&amp;nbsp;&amp;nbsp; ret 4t&lt;br&gt;&amp;nbsp;brne指令在当判断条件不成立时是单周期&lt;br&gt;&amp;nbsp;最后一次判断只有1个周期,补一个nop&lt;br&gt;&amp;nbsp;简化计算 = 0.5tt + 1 (us)&lt;br&gt;======================================*/&lt;br&gt;void shortdelay(unsigned char tt)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm("_L2: subi R16,1");&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm(" nop") &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm(" brne _L2");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm(" nop");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm(" ret");&lt;br&gt;}&lt;/p&gt;
&lt;p&gt;void main()&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; shortdelay( 18 );&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; shortdelay( 48 );&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;/************************************************************************&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 毫秒级精确延时(ICC)&lt;/p&gt;
&lt;p&gt;*************************************************************************/&lt;/p&gt;
&lt;p&gt;#include&amp;lt;iom8v.h&amp;gt;&lt;/p&gt;
&lt;p&gt;#define xtal 8 //以MHz为单位，不同的系统时钟要修改。&lt;/p&gt;
&lt;p&gt;void delay_1ms(void)&lt;br&gt;{&lt;br&gt;uint i;&lt;br&gt;for(i=0;i&amp;lt;(unsigned int)(xtal*143-2);i++);&lt;br&gt;}&lt;/p&gt;
&lt;p&gt;&lt;br&gt;void delay_ms(uint num)&lt;br&gt;{&lt;br&gt;uint i;&lt;br&gt;for(i=0;i&amp;lt;num;i++) delay_1ms();&lt;br&gt;}&lt;/p&gt;
&lt;p&gt;void main(void)&lt;br&gt;{&lt;br&gt;DDRB=0xff;&lt;br&gt;PORTB=0x00;&lt;/p&gt;
&lt;p&gt;while(1)&lt;br&gt;{&lt;br&gt;delay_ms(100);&lt;br&gt;PORTB^=0xff;&lt;br&gt;}&lt;br&gt;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><comments></comments><guid>http://blog.ednchina.com/blog/levension/22091/message.aspx</guid><category>侃单片机 单片机</category><author></author></item><item><title>AVR的两种位操作的比较（位域方式和移位宏方式）</title><pubDate>Tue, 10 Apr 2007 16:27:42 GMT</pubDate><link>http://blog.ednchina.com/blog/levension/21416/message.aspx</link><description>&lt;p&gt;AVR的两种位操作的比较（位域方式和移位宏方式） &lt;/p&gt;
&lt;p&gt;测试环境如下： &lt;br&gt;硬件:AT90S2313 &lt;br&gt;软件:&amp;nbsp;&amp;nbsp;&amp;nbsp; WiinAVR gcc3.3&amp;nbsp;&amp;nbsp; -Os级优化(最小size)。 &lt;/p&gt;
&lt;p&gt;&lt;br&gt;说明： &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 由于AVR不支持位操作，所以必须通过软件来实现。下面对我所知道的两种方法进行一个简单的比较。 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1、位域方式。先定义一个位域， &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; typedef struct _bit_struct &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char bit0 : 1 ; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char bit1 : 1 ; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char bit2 : 1 ; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char bit3 : 1 ; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char bit4 : 1 ; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char bit5 : 1 ; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char bit7 : 1 ; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char bit6 : 1 ; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }bit_field; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 再用一个宏&amp;nbsp;&amp;nbsp;&amp;nbsp; ,来指向要操作的位。 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define LED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GET_BITFIELD(PORTB).bit0 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define BUTTON&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GET_BITFIELD(PINB).bit7 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 使用时只需要直接赋值即可：如LED =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 ,LED = 1,&amp;nbsp; 或者直接判断 LED==0&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;nbsp;&amp;nbsp;&amp;nbsp; LED ==1. &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 这种方法类似C51中的位操作。直接。 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2、位移宏方式。主要有三个. &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define Set_Bit(val, bitn)&amp;nbsp;&amp;nbsp;&amp;nbsp; (val |=(1&amp;lt;&amp;lt;(bitn))) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define Clr_Bit(val, bitn)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (val&amp;amp;=~(1&amp;lt;&amp;lt;(bitn))) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define Get_Bit(val, bitn)&amp;nbsp;&amp;nbsp;&amp;nbsp; (val &amp;amp;(1&amp;lt;&amp;lt;(bitn)) ) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 　三个分别用来设置某一位，清除某一位，取某一位的值. &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 使用方法为.Set_Bit(PORTA,3);&amp;nbsp;&amp;nbsp; Clr_Bit(PORTB,2);&amp;nbsp;&amp;nbsp; Get_Bit(val,5); &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3、测试程序. &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 说明，假设PORTB.7接按纽，PORTB.0 接LED &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 测试程序完成如下操作。&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 当BUTTON == 0时 ,LED输出1 否则输出0， &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 这样的目的是即测试了输入，又测试了输出1和输出0，相对全面一点。&amp;nbsp; C代码如下. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // testled.c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 测试AVR的位操作. &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 这是gcc；如是其它编译器，请修改。 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #include &amp;lt;avr/io.h&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 定义一个寄存器（Register）或端口（Port）的八个位 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; typedef struct _bit_struct &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char bit0 : 1 ; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char bit1 : 1 ; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char bit2 : 1 ; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char bit3 : 1 ; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char bit4 : 1 ; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char bit5 : 1 ; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char bit7 : 1 ; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char bit6 : 1 ; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }bit_field; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //定义一个宏，用来得到每一位的值 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define GET_BITFIELD(addr) (*((volatile&amp;nbsp; bit_field *) (addr))) &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //定义每一个位 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define LED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GET_BITFIELD(PORTB).bit0 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define BUTTON&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GET_BITFIELD(PINB).bit7 &lt;/p&gt;
&lt;p&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define Set_Bit(val, bitn)&amp;nbsp;&amp;nbsp;&amp;nbsp; (val |=(1&amp;lt;&amp;lt;(bitn))) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define Clr_Bit(val, bitn)&amp;nbsp;&amp;nbsp;&amp;nbsp; (val&amp;amp;=~(1&amp;lt;&amp;lt;(bitn))) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define Get_Bit(val, bitn)&amp;nbsp;&amp;nbsp;&amp;nbsp; (val &amp;amp;(1&amp;lt;&amp;lt;(bitn)) ) &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int main( void ) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDRB = 0x41;&amp;nbsp;&amp;nbsp; //配置PB0为输出,PB7为输入 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( BUTTON==0 )&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED = 1; else LED = 0; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //if(!Get_Bit(PINB,7) )&amp;nbsp; Set_Bit(PORTB,0);&amp;nbsp;&amp;nbsp;&amp;nbsp; else Clr_Bit(PORTB,0); &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1); &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----------------------&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----------------------------- &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4、测试过程。 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a.先使用位域方式。 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 主程序中使用 if ( BUTTON==0 )&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED = 1; else LED = 0; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 结果如下： &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int main( void ) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4a:&amp;nbsp;&amp;nbsp;&amp;nbsp; cf ed&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldi&amp;nbsp;&amp;nbsp;&amp;nbsp; r28, 0xDF&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 223 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4c:&amp;nbsp;&amp;nbsp;&amp;nbsp; d0 e0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldi&amp;nbsp;&amp;nbsp;&amp;nbsp; r29, 0x00&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 0 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4e:&amp;nbsp;&amp;nbsp;&amp;nbsp; de bf&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x3e, r29&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 62 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 50:&amp;nbsp;&amp;nbsp;&amp;nbsp; cd bf&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x3d, r28&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 61 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDRB = 0x41;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //配置PB0为输出,PB7为输入 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 52:&amp;nbsp;&amp;nbsp;&amp;nbsp; 81 e4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldi&amp;nbsp;&amp;nbsp;&amp;nbsp; r24, 0x41&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 65 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 54:&amp;nbsp;&amp;nbsp;&amp;nbsp; 87 bb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x17, r24&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 23 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( BUTTON==0 )&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED = 1; else LED = 0; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 56:&amp;nbsp;&amp;nbsp;&amp;nbsp; 86 b3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; in&amp;nbsp;&amp;nbsp;&amp;nbsp; r24, 0x16&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 22 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 58:&amp;nbsp;&amp;nbsp;&amp;nbsp; e8 2f&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp; r30, r24 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5a:&amp;nbsp;&amp;nbsp;&amp;nbsp; ff 27&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; eor&amp;nbsp;&amp;nbsp;&amp;nbsp; r31, r31 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5c:&amp;nbsp;&amp;nbsp;&amp;nbsp; 80 81&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ld&amp;nbsp;&amp;nbsp;&amp;nbsp; r24, Z &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5e:&amp;nbsp;&amp;nbsp;&amp;nbsp; 86 fd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbrc&amp;nbsp;&amp;nbsp;&amp;nbsp; r24, 6 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 60:&amp;nbsp;&amp;nbsp;&amp;nbsp; 07 c0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rjmp&amp;nbsp;&amp;nbsp;&amp;nbsp; .+14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 0x70 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 62:&amp;nbsp;&amp;nbsp;&amp;nbsp; 88 b3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; in&amp;nbsp;&amp;nbsp;&amp;nbsp; r24, 0x18&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 24 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 64:&amp;nbsp;&amp;nbsp;&amp;nbsp; e8 2f&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp; r30, r24 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 66:&amp;nbsp;&amp;nbsp;&amp;nbsp; ff 27&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; eor&amp;nbsp;&amp;nbsp;&amp;nbsp; r31, r31 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 68:&amp;nbsp;&amp;nbsp;&amp;nbsp; 80 81&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ld&amp;nbsp;&amp;nbsp;&amp;nbsp; r24, Z &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6a:&amp;nbsp;&amp;nbsp;&amp;nbsp; 81 60&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ori&amp;nbsp;&amp;nbsp;&amp;nbsp; r24, 0x01&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 1 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6c:&amp;nbsp;&amp;nbsp;&amp;nbsp; 80 83&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st&amp;nbsp;&amp;nbsp;&amp;nbsp; Z, r24 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6e:&amp;nbsp;&amp;nbsp;&amp;nbsp; 06 c0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rjmp&amp;nbsp;&amp;nbsp;&amp;nbsp; .+12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 0x7c &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 70:&amp;nbsp;&amp;nbsp;&amp;nbsp; 88 b3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; in&amp;nbsp;&amp;nbsp;&amp;nbsp; r24, 0x18&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 24 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 72:&amp;nbsp;&amp;nbsp;&amp;nbsp; e8 2f&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp; r30, r24 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 74:&amp;nbsp;&amp;nbsp;&amp;nbsp; ff 27&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; eor&amp;nbsp;&amp;nbsp;&amp;nbsp; r31, r31 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 76:&amp;nbsp;&amp;nbsp;&amp;nbsp; 80 81&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ld&amp;nbsp;&amp;nbsp;&amp;nbsp; r24, Z &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 78:&amp;nbsp;&amp;nbsp;&amp;nbsp; 8e 7f&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; andi&amp;nbsp;&amp;nbsp;&amp;nbsp; r24, 0xFE&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 254 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7a:&amp;nbsp;&amp;nbsp;&amp;nbsp; 80 83&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st&amp;nbsp;&amp;nbsp;&amp;nbsp; Z, r24 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1); &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7c:&amp;nbsp;&amp;nbsp;&amp;nbsp; ff cf&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rjmp&amp;nbsp;&amp;nbsp;&amp;nbsp; .-2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 0x7c &lt;/p&gt;
&lt;p&gt;main函数共52Bytes.其中，从lst文件看得出:main函数的初始化用了4条指令，8Bytes. 最后一句while(1);用了1条指令2Bytes.( for循环和do-while也是) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDRB="0x41用了2条指令4Bytes". 计算一下：52-8-4-2=38Bytes,即if ( BUTTON==0 )&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED = 1; else LED = 0; 这句用了19条指令38Bytes. (居然运用了3个寄存器白r24,r30,r31,和一个Z，代码真是苦涩，，我看不懂，准备以后作代码加密用:).&amp;nbsp; ) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b.使用移位宏方式。 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 将 if ( BUTTON==0 )&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED = 1; else LED = 0;&amp;nbsp; 换为等效的&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!Get_Bit(PINB,7) )&amp;nbsp; Set_Bit(PORTB,0);&amp;nbsp;&amp;nbsp;&amp;nbsp; else Clr_Bit(PORTB,0); &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 结果,main函数仅24Bytes.其它代码一样，略去. 所以，上面这句代码仅用了24-14=10Bytes ,5条指令。生成的代码如下: &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 56:&amp;nbsp;&amp;nbsp;&amp;nbsp; b7 99&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbic&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x16, 7&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 22 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 58:&amp;nbsp;&amp;nbsp;&amp;nbsp; 02 c0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rjmp&amp;nbsp;&amp;nbsp;&amp;nbsp; .+4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 0x5e &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5a:&amp;nbsp;&amp;nbsp;&amp;nbsp; c0 9a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbi&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x18, 0&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 24 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5c:&amp;nbsp;&amp;nbsp;&amp;nbsp; 01 c0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rjmp&amp;nbsp;&amp;nbsp;&amp;nbsp; .+2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 0x60 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5e:&amp;nbsp;&amp;nbsp;&amp;nbsp; c0 98&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cbi&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x18, 0&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 24 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5. 菜论：鱼和熊掌。 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 由于AVR可以对I/O脚进行sbic,sbi,cbi,这样的位操作，所以使用I/O脚操作时，移位宏可以产生高效的代码。 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 例如，要实现上面的几个简单的指令，为了实现LED=1这样的类似C51的sbit的效果，我必须多付出(38-10=28Bytes)的代价。 &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6...... &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 对于I/O脚，可以产生这样高效的代码，是因为有sbi和cbi这样的指令，那么对于一般的变量，又如何呢？................ &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;br&gt;&lt;/p&gt;</description><comments></comments><guid>http://blog.ednchina.com/blog/levension/21416/message.aspx</guid><category>侃单片机 软件开发</category><author></author></item><item><title>ADuC845最小系统及代码下载</title><pubDate>Sat, 07 Apr 2007 13:41:52 GMT</pubDate><link>http://blog.ednchina.com/blog/levension/21017/message.aspx</link><description>&lt;p&gt;ADuC845是高性能51内核的单片机，能兼容标准的51代码，应用起来也跟51很相近。例如，使用内部ROM时，把/EA脚拉高等等。只要是熟悉普通51单片机，就可以轻松上手。&lt;/p&gt;
&lt;p&gt;下面是我使用的ADuC845的最小系统原理图：&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/7/5860d6af-01be-4f04-962d-5d984ce008ea.JPG" target=_blank&gt;&lt;img height="236" alt="点击看大图" src="http://blog.ednchina.com/Upload/Blog/2007/4/7/5860d6af-01be-4f04-962d-5d984ce008ea.JPG" width="400"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;把代码（HEX文件）下载到ADuC845去：&lt;/p&gt;
&lt;p&gt;ADuC845的代码下载很方便，只要一个RS232的串口便可。它是通过串口ISP的。&lt;/p&gt;
&lt;p&gt;你可以到ADI公司的网站上下载ISP软件。&lt;br&gt;&lt;a href="http://www.analog.com/en/content/0,2886,762%255F%252D1%255F66633,00.html"&gt;http://www.analog.com/en/content/0,2886,762%255F%252D1%255F66633,00.html&lt;/a&gt;&lt;br&gt;把滚动条拉到最底下，那个WSD 6.7 （Windows Serial Downloader V6.7）就是了。&lt;/p&gt;
&lt;p&gt;下面介绍串口ISP流程：&lt;/p&gt;
&lt;p&gt;1.打开ISP软件：&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/7/574b7fea-7b7b-4e74-b2e8-f3ff53e96dfa.JPG" target=_blank&gt;&lt;img height="308" alt="点击看大图" src="http://blog.ednchina.com/Upload/Blog/2007/4/7/574b7fea-7b7b-4e74-b2e8-f3ff53e96dfa.JPG" width="400"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.配置ISP软件&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/7/657784eb-31d3-4382-b7de-f7c685c9bdc8.JPG" target=_blank&gt;&lt;img height="308" alt="点击看大图" src="http://blog.ednchina.com/Upload/Blog/2007/4/7/657784eb-31d3-4382-b7de-f7c685c9bdc8.JPG" width="400"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;3、把ADuC845的TxD脚与RxD脚通过RS232与PC机的连接好，ADuC845的/PSEN脚接到地，按RESET重启。&lt;/p&gt;
&lt;p&gt;4、点击ISP软件的download，在弹出的小对话框中，选择你要下载的HEX文件，然后按确定。不用几秒就可以完成ISP下载。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/7/e095ddcb-f17f-44a1-8f8c-8a42ddf0dc2f.JPG" target=_blank&gt;&lt;img height="308" alt="点击看大图" src="http://blog.ednchina.com/Upload/Blog/2007/4/7/e095ddcb-f17f-44a1-8f8c-8a42ddf0dc2f.JPG" width="400"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;5、如果弹出如下界面，请检查你的ADuC845系统的电源，连接，晶振设置是否，管脚设置是否正确。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/7/933380c8-f425-43f7-8023-3177d076ac7e.JPG" target=_blank&gt;&lt;img height="306" alt="点击看大图" src="http://blog.ednchina.com/Upload/Blog/2007/4/7/933380c8-f425-43f7-8023-3177d076ac7e.JPG" width="400"&gt;&lt;/a&gt;&lt;/p&gt;</description><comments></comments><guid>http://blog.ednchina.com/blog/levension/21017/message.aspx</guid><category>侃单片机 单片机</category><author></author></item><item><title>使用KEILUV3开发高性能单片机ADuC845</title><pubDate>Sat, 07 Apr 2007 12:56:52 GMT</pubDate><link>http://blog.ednchina.com/blog/levension/21016/message.aspx</link><description>&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADuC845是ADI公司新推出的嵌有单指令周期8052闪存MCU、带两路24位Σ 一AA／D、双&lt;br&gt;l2位D／A以及两个灵活脉宽调制输出的高性能24位数据采集与处理系统芯片。该芯片的数据处&lt;br&gt;理速度达12 MIPS，且设计简单，噪声低，非常适用于精密仪器仪表。&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 下面是ADUC845的管脚图：&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/7/b78b85dd-41f6-44b0-a97f-04961e6222c6.JPG" target=_blank&gt;&lt;img height="294" alt="点击看大图" src="http://blog.ednchina.com/Upload/Blog/2007/4/7/b78b85dd-41f6-44b0-a97f-04961e6222c6.JPG" width="400"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;这是它的官方资料：&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/7/798f60c4-7a36-4e92-bb65-0470fdd87a90.rar" target=_blank&gt;&lt;img alt="rar" src="http://space.ednchina.com/images/FileIco/rar.gif"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span id="c" _20467&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 下面介绍用KEIL UV3写ADuC845的代码：&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 新建一个工程&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/7/c3b68c46-3a9a-4958-96a5-99a0ddd4ee31.JPG" target=_blank&gt;&lt;img height="300" alt="点击看大图" src="http://blog.ednchina.com/Upload/Blog/2007/4/7/c3b68c46-3a9a-4958-96a5-99a0ddd4ee31.JPG" width="400"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;输入工程名，保存&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/7/92f3cbc3-7203-4e1d-b05e-23b0014c0798.JPG" target=_blank&gt;&lt;img height="300" alt="点击看大图" src="http://blog.ednchina.com/Upload/Blog/2007/4/7/92f3cbc3-7203-4e1d-b05e-23b0014c0798.JPG" width="400"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;选择CPU类型---&amp;gt;Analog&amp;nbsp;&amp;nbsp;&amp;nbsp;Devices&amp;nbsp;&amp;nbsp;--&amp;gt;ADuC845,按确定&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/7/7d56285f-7a97-408a-b4fa-e2bdf5df15ab.JPG" target=_blank&gt;&lt;img height="263" alt="点击看大图" src="http://blog.ednchina.com/Upload/Blog/2007/4/7/7d56285f-7a97-408a-b4fa-e2bdf5df15ab.JPG" width="400"&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;开始写代码，先新建一个新的文本区，点下图红色按钮。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/7/36a7106e-2b89-4f30-8ab3-bd1744e7c59a.JPG" target=_blank&gt;&lt;img height="263" alt="点击看大图" src="http://blog.ednchina.com/Upload/Blog/2007/4/7/36a7106e-2b89-4f30-8ab3-bd1744e7c59a.JPG" width="400"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;写完代码，保存为.c文件&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/7/3cdc1659-7b3e-449a-99c0-657bfc4a4839.JPG" target=_blank&gt;&lt;img height="263" alt="点击看大图" src="http://blog.ednchina.com/Upload/Blog/2007/4/7/3cdc1659-7b3e-449a-99c0-657bfc4a4839.JPG" width="400"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;把c文件添加到你的工程中：&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/7/3b660810-3835-4964-a5d9-710ccdd9a420.JPG" target=_blank&gt;&lt;img height="263" alt="点击看大图" src="http://blog.ednchina.com/Upload/Blog/2007/4/7/3b660810-3835-4964-a5d9-710ccdd9a420.JPG" width="400"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/7/bca9bdf6-01f7-4ccf-81ee-5a691d783926.JPG" target=_blank&gt;&lt;img height="247" alt="点击看大图" src="http://blog.ednchina.com/Upload/Blog/2007/4/7/bca9bdf6-01f7-4ccf-81ee-5a691d783926.JPG" width="400"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;配置编译选项：&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/7/6c8050e9-4220-41bb-9fd8-a8b1c3d62b50.JPG" target=_blank&gt;&lt;img height="249" alt="点击看大图" src="http://blog.ednchina.com/Upload/Blog/2007/4/7/6c8050e9-4220-41bb-9fd8-a8b1c3d62b50.JPG" width="400"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;开始编译，链接：&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/7/e7f2d840-a724-4fad-9591-60467db25f9a.JPG" target=_blank&gt;&lt;img height="300" alt="点击看大图" src="http://blog.ednchina.com/Upload/Blog/2007/4/7/e7f2d840-a724-4fad-9591-60467db25f9a.JPG" width="400"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;在你的工程文件夹可以找到生成的HEX文件了：&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/7/79b7a28b-f30e-4367-b499-b94baa1f5ab5.JPG" target=_blank&gt;&lt;img height="253" alt="点击看大图" src="http://blog.ednchina.com/Upload/Blog/2007/4/7/79b7a28b-f30e-4367-b499-b94baa1f5ab5.JPG" width="400"&gt;&lt;/a&gt;&lt;/p&gt;</description><comments></comments><guid>http://blog.ednchina.com/blog/levension/21016/message.aspx</guid><category>侃单片机 单片机</category><author></author></item><item><title>8051的汇编控制指令占用字节执行周期列表</title><pubDate>Tue, 27 Feb 2007 16:08:23 GMT</pubDate><link>http://blog.ednchina.com/blog/levension/16808/message.aspx</link><description>&lt;font size="2"&gt;8051&amp;nbsp;INSTRUCTION&amp;nbsp;SET&lt;br&gt;&lt;br&gt;1.Arithmetic&amp;nbsp;operations:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Mnemonic&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Byte&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Cyc&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ADD&amp;nbsp;&amp;nbsp;&amp;nbsp;A,@Ri&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ADD&amp;nbsp;&amp;nbsp;&amp;nbsp;A,Rn&amp;nbsp;1&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ADD&amp;nbsp;&amp;nbsp;&amp;nbsp;A,direct&amp;nbsp;2&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ADD&amp;nbsp;&amp;nbsp;&amp;nbsp;A,#data&amp;nbsp;2&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ADDC&amp;nbsp;&amp;nbsp;A,@Ri&amp;nbsp;1&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ADDC&amp;nbsp;&amp;nbsp;A,Rn&amp;nbsp;1&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ADDC&amp;nbsp;&amp;nbsp;A,direct&amp;nbsp;2&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ADDC&amp;nbsp;&amp;nbsp;A,#data&amp;nbsp;2&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SUBB&amp;nbsp;&amp;nbsp;A,@Ri&amp;nbsp;1&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SUBB&amp;nbsp;&amp;nbsp;A,Rn&amp;nbsp;1&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SUBB&amp;nbsp;&amp;nbsp;A,direct&amp;nbsp;2&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SUBB&amp;nbsp;&amp;nbsp;A,#data&amp;nbsp;2&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INC&amp;nbsp;&amp;nbsp;&amp;nbsp;A&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INC&amp;nbsp;&amp;nbsp;&amp;nbsp;@Ri&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INC&amp;nbsp;&amp;nbsp;&amp;nbsp;Rn&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INC&amp;nbsp;&amp;nbsp;&amp;nbsp;DPTR&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INC&amp;nbsp;&amp;nbsp;&amp;nbsp;direct&amp;nbsp;2&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INC&amp;nbsp;&amp;nbsp;&amp;nbsp;direct&amp;nbsp;2&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DEC&amp;nbsp;&amp;nbsp;&amp;nbsp;A&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DEC&amp;nbsp;&amp;nbsp;&amp;nbsp;@Ri&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DEC&amp;nbsp;&amp;nbsp;&amp;nbsp;Rn&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DEC&amp;nbsp;&amp;nbsp;&amp;nbsp;direct&amp;nbsp;2&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MUL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AB&amp;nbsp;1&amp;nbsp;4&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DIV&amp;nbsp;&amp;nbsp;&amp;nbsp;AB&amp;nbsp;1&amp;nbsp;4&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;A&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&lt;br&gt;2.Logical&amp;nbsp;opreations:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ANL&amp;nbsp;&amp;nbsp;&amp;nbsp;A,@Ri&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XRL&amp;nbsp;&amp;nbsp;&amp;nbsp;A,@Ri&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ANL&amp;nbsp;&amp;nbsp;&amp;nbsp;A,Rn&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XRL&amp;nbsp;&amp;nbsp;&amp;nbsp;A,Rn&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ANL&amp;nbsp;&amp;nbsp;&amp;nbsp;A,direct&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XRL&amp;nbsp;&amp;nbsp;&amp;nbsp;A,direct&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ANL&amp;nbsp;&amp;nbsp;&amp;nbsp;A,#data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XRL&amp;nbsp;&amp;nbsp;&amp;nbsp;A,#data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ANL&amp;nbsp;&amp;nbsp;&amp;nbsp;direct,A&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XRL&amp;nbsp;&amp;nbsp;&amp;nbsp;direct,A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ANL&amp;nbsp;&amp;nbsp;&amp;nbsp;direct,#data&amp;nbsp;3&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XRL&amp;nbsp;&amp;nbsp;&amp;nbsp;direct,#data&amp;nbsp;3&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ORL&amp;nbsp;&amp;nbsp;&amp;nbsp;A,@Ri&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CLR&amp;nbsp;&amp;nbsp;&amp;nbsp;A&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ORL&amp;nbsp;&amp;nbsp;&amp;nbsp;A,Rn&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CPL&amp;nbsp;&amp;nbsp;&amp;nbsp;A&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ORL&amp;nbsp;&amp;nbsp;&amp;nbsp;A,direct&amp;nbsp;&amp;nbsp;2&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RL&amp;nbsp;&amp;nbsp;&amp;nbsp;A&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ORL&amp;nbsp;&amp;nbsp;&amp;nbsp;A,#data&amp;nbsp;2&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RLC&amp;nbsp;&amp;nbsp;&amp;nbsp;A&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ORL&amp;nbsp;&amp;nbsp;&amp;nbsp;direct,A&amp;nbsp;2&amp;nbsp;1&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RR&amp;nbsp;&amp;nbsp;&amp;nbsp;A&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ORL&amp;nbsp;&amp;nbsp;&amp;nbsp;direct,#data&amp;nbsp;3&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RRC&amp;nbsp;&amp;nbsp;&amp;nbsp;A&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SWAP&amp;nbsp;&amp;nbsp;A&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&lt;br&gt;3.Data&amp;nbsp;transfer:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Mnemonic&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Byte&amp;nbsp;Cyc&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOV&amp;nbsp;&amp;nbsp;&amp;nbsp;A,@Ri&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOV&amp;nbsp;&amp;nbsp;&amp;nbsp;DPTR,#data16&amp;nbsp;3&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOV&amp;nbsp;&amp;nbsp;&amp;nbsp;A,Rn&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOVC&amp;nbsp;&amp;nbsp;A,@A+DPTR&amp;nbsp;1&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOV&amp;nbsp;&amp;nbsp;&amp;nbsp;A,direct&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOVC&amp;nbsp;&amp;nbsp;A,@A+PC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOV&amp;nbsp;&amp;nbsp;&amp;nbsp;A,#data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOVX&amp;nbsp;&amp;nbsp;A,@Ri&amp;nbsp;1&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOV&amp;nbsp;&amp;nbsp;&amp;nbsp;@Ri,A&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOVX&amp;nbsp;&amp;nbsp;A,@DPTR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOV&amp;nbsp;&amp;nbsp;&amp;nbsp;@Ri,direct&amp;nbsp;2&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOVX&amp;nbsp;&amp;nbsp;@Ri,A&amp;nbsp;1&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOV&amp;nbsp;&amp;nbsp;&amp;nbsp;@Ri,#data&amp;nbsp;2&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOVX&amp;nbsp;&amp;nbsp;@DPTR,A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOV&amp;nbsp;&amp;nbsp;&amp;nbsp;Rn,A&amp;nbsp;1&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PUSH&amp;nbsp;&amp;nbsp;direct&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOV&amp;nbsp;&amp;nbsp;&amp;nbsp;Rn,direct&amp;nbsp;2&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;POP&amp;nbsp;&amp;nbsp;&amp;nbsp;direct&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOV&amp;nbsp;&amp;nbsp;&amp;nbsp;Rn,#data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;1&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XCH&amp;nbsp;&amp;nbsp;&amp;nbsp;A,@Ri&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOV&amp;nbsp;&amp;nbsp;&amp;nbsp;direct,A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XCH&amp;nbsp;&amp;nbsp;&amp;nbsp;A,Rn&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOV&amp;nbsp;&amp;nbsp;&amp;nbsp;direct,@Ri&amp;nbsp;2&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XCH&amp;nbsp;&amp;nbsp;&amp;nbsp;A,direct&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOV&amp;nbsp;&amp;nbsp;&amp;nbsp;direct,Rn&amp;nbsp;2&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XCHD&amp;nbsp;&amp;nbsp;A,@Ri&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOV&amp;nbsp;&amp;nbsp;&amp;nbsp;direct,direct&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOV&amp;nbsp;&amp;nbsp;&amp;nbsp;direct,#data&amp;nbsp;3&amp;nbsp;2&lt;br&gt;&lt;br&gt;4.Boolean&amp;nbsp;variable&amp;nbsp;manipulation:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Mnemonic&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Byte&amp;nbsp;Cyc&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CLR&amp;nbsp;&amp;nbsp;&amp;nbsp;C&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ANL&amp;nbsp;&amp;nbsp;&amp;nbsp;C,bit&amp;nbsp;2&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SETB&amp;nbsp;&amp;nbsp;C&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ANL&amp;nbsp;&amp;nbsp;&amp;nbsp;C,/bit&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CPL&amp;nbsp;&amp;nbsp;&amp;nbsp;C&amp;nbsp;1&amp;nbsp;1&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ORL&amp;nbsp;&amp;nbsp;&amp;nbsp;C,bit&amp;nbsp;2&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CLR&amp;nbsp;&amp;nbsp;&amp;nbsp;bit&amp;nbsp;2&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ORL&amp;nbsp;&amp;nbsp;&amp;nbsp;C,/bit&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SETB&amp;nbsp;&amp;nbsp;bit&amp;nbsp;2&amp;nbsp;1&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOV&amp;nbsp;&amp;nbsp;&amp;nbsp;C,bit&amp;nbsp;2&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CPL&amp;nbsp;&amp;nbsp;&amp;nbsp;bit&amp;nbsp;2&amp;nbsp;1&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOV&amp;nbsp;&amp;nbsp;&amp;nbsp;bit,C&amp;nbsp;2&amp;nbsp;2&lt;br&gt;&lt;br&gt;5.Program&amp;nbsp;and&amp;nbsp;machine&amp;nbsp;control:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Mnemonic&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Byte&amp;nbsp;Cyc&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NOP&amp;nbsp;1&amp;nbsp;1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JZ&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rel&amp;nbsp;2&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RET&amp;nbsp;1&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JNZ&amp;nbsp;&amp;nbsp;&amp;nbsp;rel&amp;nbsp;2&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RETI&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;2&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rel&amp;nbsp;2&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACALL&amp;nbsp;addr11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JNC&amp;nbsp;&amp;nbsp;&amp;nbsp;rel&amp;nbsp;2&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AJMP&amp;nbsp;&amp;nbsp;addr11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bit,rel&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LCALL&amp;nbsp;addr16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JNB&amp;nbsp;&amp;nbsp;&amp;nbsp;bit,rel&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LJMP&amp;nbsp;&amp;nbsp;addr16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;2&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JBC&amp;nbsp;&amp;nbsp;&amp;nbsp;bit,rel&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SJMP&amp;nbsp;&amp;nbsp;rel&amp;nbsp;2&amp;nbsp;2&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;CJNE&amp;nbsp;&amp;nbsp;A,direct,rel&amp;nbsp;3&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JMP&amp;nbsp;&amp;nbsp;&amp;nbsp;@A+DPTR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CJNE&amp;nbsp;&amp;nbsp;A,#data,rel&amp;nbsp;3&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DJNZ&amp;nbsp;&amp;nbsp;Rn,rel&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;2&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;CJNE&amp;nbsp;&amp;nbsp;@Ri,#data,rel&amp;nbsp;3&amp;nbsp;2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DJNZ&amp;nbsp;&amp;nbsp;direct,rel&amp;nbsp;3&amp;nbsp;2&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;CJNE&amp;nbsp;&amp;nbsp;Rn,#data,rel&amp;nbsp;3&amp;nbsp;2&lt;br&gt;&lt;/font&gt;</description><comments></comments><guid>http://blog.ednchina.com/blog/levension/16808/message.aspx</guid><category>侃单片机 单片机</category><author></author></item></channel></rss>