<?xml version="1.0" encoding="UTF-8" ?>
  <rss version="2.0">
    <channel>

<title>瑞安万鑫电子</title>
      <link>http://wansan.ycool.com/</link>
      <description><![CDATA[]]></description>
      <pubDate>Tue, 29 Apr 2008 12:04:55 GMT</pubDate>
      <lastBuildDate>Tue, 29 Apr 2008 12:04:55 GMT</lastBuildDate>
      <image>
        <url>http://sta.yculblog.com/images/logo/general-88x31.gif</url>
        <title>瑞安万鑫电子</title>
        <link>http://wansan.ycool.com/</link>
      </image>
<item>
        <title>PCB设计考虑</title>
        <link>http://wansan.ycool.com/post.1459191.html</link>
        <description><![CDATA[(引)恰当的PCB板设计是射频/微波电路设计的重要部分。在高频输入和输出引脚端使用控制阻抗的导线和使导线尽可能的短，以减少损耗和辐射。在高频，导线长度为&lambda;/lO或者更长，其作用类似天线。保持导线尽可能地短，可以减少寄生电感。一般情况，2.54 cm(1英寸)的PCB导线长度，大约附加20 nH的寄生电感。寄生电感将影响实际的元件参数。例如：1.27 cm(O.5英寸)长的导线与一个100 nH的电感器连接，将增加额外的10 nH电感。使用宽的导线、可靠的接地或者电源板在信号导线的下面可以减少寄生电感。另外，所有的GND引脚端要求使用低电感连接到地，尽可能地靠近所有的VDD引脚端，连接退耦电容到地。...
]]></description>
        <guid isPermaLink="true">http://wansan.ycool.com/post.1459191.html</guid>
        <pubDate>Sat, 15 Jul 2006 12:07:39 GMT</pubDate>

      </item>

      <item>
        <title>2.数码管显示</title>
        <link>http://wansan.ycool.com/post.1385071.html</link>
        <description><![CDATA[<p>/*****************************************************<br />This program was produced by the<br />CodeWizardAVR V1.24.8c Professional<br />Automatic Program Generator<br />?Copyright 1998-2006 Pavel Haiduc, HP InfoTech s.r.l.<br /><a href="http://www.hpinfotech.com">http://www.hpinfotech.com</a></p>
<p>Project : M8<br />Version : 1.0<br />Date&nbsp;&nbsp;&nbsp; : 2006-5-5<br />Author&nbsp; : WCJ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />Company : 瑞安万鑫电子&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />Comments:AVR(ATMEGA8) 入门学习板</p>
<p><br />Chip type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : ATmega8L<br />Program type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Application<br />Clock frequency&nbsp;&nbsp;&nbsp;&nbsp; : 4.000000 MHz<br />Memory model&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Small<br />External SRAM size&nbsp; : 0<br />Data Stack size&nbsp;&nbsp;&nbsp;&nbsp; : 256<br />*****************************************************/<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本章简介<br />/****************************************************<br />一,学习目的:LED数码管动态显示</p>
<p>二,基础知识:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AVR采用3个8位寄存器控制I/O端口<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 方向寄存器:DDRx&nbsp;&nbsp;&nbsp;&nbsp; (可读写)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 数据寄存器:PORTx&nbsp;&nbsp;&nbsp; (可读写)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 输入引脚寄存器:PINx (只读)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * SFIOR寄存器中的上拉屏蔽位PUD为&quot;1&quot;,则会屏蔽掉所有端口引脚中的内部上拉电阻&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 数码管的驱动动态显示<br />三,实验任务:&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.编写74HC164的驱动程序<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.在4位共阳数码管上动态显示数字<br />四,注意事项:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 将JP1上的PC2，PC3，PC4，PC5跳针短路（数码管的位选）<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 将JP2上的PB3，PB5跳针短路（通过74HC164实现段码）<br />****************************************************/<br />#include &lt;mega8.h&gt;//包含ATMEGA8L的寄存器定义,和中断向量表<br />#include &lt;delay.h&gt;//CVAVR 自带的延时函数<br />//数码管的段码，低电平有效<br />#define&nbsp; DATA_164 PORTB.3//164数据脚<br />#define&nbsp; CLK_164&nbsp; PORTB.5//164时钟脚<br />//数码管的位码，低电平有效<br />#define BIT4 PORTC.5//千位&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />#define BIT3 PORTC.4//百位<br />#define BIT2 PORTC.3//十位<br />#define BIT1 PORTC.2//个位<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BIT 7 6 5 4 3 2 1 0<br />/*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LED段码:低电平亮&nbsp;&nbsp; 段码<br />数字 74HC164D输出码位:G C H D B F A E<br />0:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 0 1 0 0 0 0 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0xA0<br />1:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 0 1 1 0 1 1 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0xB7<br />2:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 1 1 0 0 1 0 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x64<br />3:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 0 1 0 0 1 0 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x25<br />4:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 0 1 1 0 0 1 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x33<br />5:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 0 1 0 1 0 0 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x29<br />6:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 0 1 0 1 0 0 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x28<br />7:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 0 1 1 0 1 0 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0xB5<br />8:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 0 1 0 0 0 0 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x20<br />9:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 0 1 0 0 0 0 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x21<br />.:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 1 0 1 1 1 1 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0xDF<br />*/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* 0&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp; 7&nbsp;&nbsp;&nbsp; 8&nbsp;&nbsp;&nbsp; 9&nbsp;&nbsp;&nbsp; .*/<br />unsigned char LEDcode[11]={0xA0,0xB7,0x64,0x25,0x33,0x29,0x28,0xB5,0x20,0x21,0xDF};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />unsigned char display_buf[4];//显示缓冲寄存器<br />//写164串行接口 <br />//数码管的段码<br />void wr_164(unsigned char wr_data)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned char i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;8;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if((wr_data&amp;0x80)==0x80)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {DATA_164=1;}&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {DATA_164=0;}&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLK_164=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLK_164=1;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wr_data&lt;&lt;=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />} <br />&nbsp;&nbsp; </p>
<p>void display(void)<br />{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //送段码，显示；延时，关闭显示<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wr_164(display_buf[0]);BIT1=0;delay_ms(2);BIT1=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wr_164(display_buf[1]);BIT2=0;delay_ms(2);BIT2=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wr_164(display_buf[2]);BIT3=0;delay_ms(2);BIT3=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wr_164(display_buf[3]);BIT4=0;delay_ms(2);BIT4=1;<br />}<br />// Declare your global variables here&nbsp;&nbsp;&nbsp;&nbsp; <br />//4位数最高为9999 所以选INT类型，这里没有考虑负数&nbsp; <br />void numbertobcd(unsigned int number)<br />{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned int i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i=number/1000; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; display_buf[0]=LEDcode[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; number=number%1000;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i=number/100;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; display_buf[1]=LEDcode[i]; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; number=number%100;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i=number/10;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; display_buf[2]=LEDcode[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i=number%10;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; display_buf[3]=LEDcode[i];&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; display();//显示数据&nbsp;&nbsp; number<br />} <br />void main(void)<br />{<br />// Declare your local variables here<br />unsigned int temp=1234;//预显示的数值<br />// Input/Output Ports initialization<br />// Port B initialization<br />// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In <br />// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T <br />PORTB=0xff;<br />DDRB=0xEF;</p>
<p>// Port C initialization<br />// Func6=In Func5=Out Func4=Out Func3=Out Func2=Out Func1=In Func0=In <br />// State6=T State5=0 State4=0 State3=0 State2=0 State1=T State0=T <br />PORTC=0x00;//<br />DDRC=0xFF;//数码管位选</p>
<p>// Port D initialization<br />// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In <br />// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T <br />PORTD=0x00;<br />DDRD=0x00;<br />PORTD.3=1;//输入上拉;<br />DDRD.3=0;//PORTD.3为输入方式;<br />// Timer/Counter 0 initialization<br />// Clock source: System Clock<br />// Clock value: Timer 0 Stopped<br />TCCR0=0x00;<br />TCNT0=0x00;</p>
<p>// Timer/Counter 1 initialization<br />// Clock source: System Clock<br />// Clock value: Timer 1 Stopped<br />// Mode: Normal top=FFFFh<br />// OC1A output: Discon.<br />// OC1B output: Discon.<br />// Noise Canceler: Off<br />// Input Capture on Falling Edge<br />// Timer 1 Overflow Interrupt: Off<br />// Input Capture Interrupt: Off<br />// Compare A Match Interrupt: Off<br />// Compare B Match Interrupt: Off<br />TCCR1A=0x00;<br />TCCR1B=0x00;<br />TCNT1H=0x00;<br />TCNT1L=0x00;<br />ICR1H=0x00;<br />ICR1L=0x00;<br />OCR1AH=0x00;<br />OCR1AL=0x00;<br />OCR1BH=0x00;<br />OCR1BL=0x00;</p>
<p>// Timer/Counter 2 initialization<br />// Clock source: System Clock<br />// Clock value: Timer 2 Stopped<br />// Mode: Normal top=FFh<br />// OC2 output: Disconnected<br />ASSR=0x00;<br />TCCR2=0x00;<br />TCNT2=0x00;<br />OCR2=0x00;</p>
<p>// External Interrupt(s) initialization<br />// INT0: Off<br />// INT1: Off<br />MCUCR=0x00;</p>
<p>// Timer(s)/Counter(s) Interrupt(s) initialization<br />TIMSK=0x00;</p>
<p>// Analog Comparator initialization<br />// Analog Comparator: Off<br />// Analog Comparator Input Capture by Timer/Counter 1: Off<br />ACSR=0x80;<br />SFIOR=0x00;</p>
<p>while (1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; numbertobcd(temp); //数码管显示1234 TEMP的值<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />}<br /></p>...
]]></description>
        <guid isPermaLink="true">http://wansan.ycool.com/post.1385071.html</guid>
        <pubDate>Thu, 01 Jun 2006 12:06:10 GMT</pubDate>

      </item>

      <item>
        <title>1.闪灯控制</title>
        <link>http://wansan.ycool.com/post.1265635.html</link>
        <description><![CDATA[<p>/*****************************************************<br />This program was produced by the<br />CodeWizardAVR V1.24.8c Professional<br />Automatic Program Generator<br />?Copyright 1998-2006 Pavel Haiduc, HP InfoTech s.r.l.<br /><a href="http://www.hpinfotech.com">http://www.hpinfotech.com</a></p>
<p>Project : M8<br />Version : 1.0<br />Date&nbsp;&nbsp;&nbsp; : 2006-5-5<br />Author&nbsp; : WCJ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />Company : 瑞安万鑫电子&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />Comments:AVR(ATMEGA8) 入门学习板</p>
<p><br />Chip type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : ATmega8L<br />Program type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Application<br />Clock frequency&nbsp;&nbsp;&nbsp;&nbsp; : 4.000000 MHz<br />Memory model&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Small<br />External SRAM size&nbsp; : 0<br />Data Stack size&nbsp;&nbsp;&nbsp;&nbsp; : 256<br />*****************************************************/<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本章简介<br />/****************************************************<br />一,学习目的:AVR的IO口读写操作&nbsp;&nbsp; </p>
<p>二,基础知识:AVR采用3个8位寄存器控制I/O端口<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 方向寄存器:DDRx&nbsp;&nbsp;&nbsp;&nbsp; (可读写)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 数据寄存器:PORTx&nbsp;&nbsp;&nbsp; (可读写)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 输入引脚寄存器:PINx (只读)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * SFIOR寄存器中的上拉屏蔽位PUD为&quot;1&quot;,则会屏蔽掉所有端口引脚中的内部上拉电阻&nbsp;&nbsp; </p>
<p>三,实验任务:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1:PD3读取PC串口第4脚,使接在PB1脚上LED(D2 0C1A) (低电平亮,高电平暗)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />四,注意事项:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PC串口是RS232电平,所以通过板子上的MAX232进行电平转换<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 将JP2上的PB1跳针短路,将PORTB.1连接到D2的阴极 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 将JP3上的PD3跳针短路,PD3读取串口RTS脚（4）电平，通过程序控制D2<br />****************************************************/<br />#include &lt;mega8.h&gt;//包含ATMEGA8L的寄存器定义,和中断向量表<br />#include &lt;delay.h&gt;//CVAVR 自带的延时函数<br />void main(void)<br />{</p>
<p>PORTB=0x02;//输出为1;<br />DDRB=0x02;//PORTB.1为输出方式;<br />/*<br />或者<br />PORTB=0b00000010;//输出为1;<br />DDRB=0b00000010;//PORTB.1为输出方式;<br />*/&nbsp; <br />/*<br />或者<br />PORTB.1=1;//输出为1;<br />DDRB.1=1;//PORTB.1为输出方式;<br />*/ <br />PORTD.3=1;//输入上拉;<br />DDRD.3=0;//PORTD.3为输入方式;<br />while (1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(PIND.3==0)//读取管脚状态<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PORTB.1=0;//D2亮 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delay_ms(200); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PORTB.1=1;//D2暗 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delay_ms(200);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PORTB.1=1;//D2暗 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />}<br /></p>...
]]></description>
        <guid isPermaLink="true">http://wansan.ycool.com/post.1265635.html</guid>
        <pubDate>Tue, 23 May 2006 13:05:58 GMT</pubDate>

      </item>

      <item>
        <title>CPLD学习板</title>
        <link>http://wansan.ycool.com/post.1262116.html</link>
        <description><![CDATA[<img src="http://node1.foto.ycstatic.com/200605/21/c/16832092.jpg" border="0" alt="" />...
]]></description>
        <guid isPermaLink="true">http://wansan.ycool.com/post.1262116.html</guid>
        <pubDate>Sun, 21 May 2006 10:05:19 GMT</pubDate>

      </item>

      <item>
        <title>TMS320LF2407A学习板和JTAG板</title>
        <link>http://wansan.ycool.com/post.1262111.html</link>
        <description><![CDATA[C2000的入门学习板,无外扩SRAM和FLASH<br /><img src="http://node1.foto.ycstatic.com/200605/21/7/16831959.jpg" border="0" alt="" /><br /><br /><br /><img src="http://node1.foto.ycstatic.com/200605/21/3/16831987.jpg" border="0" alt="" />...
]]></description>
        <guid isPermaLink="true">http://wansan.ycool.com/post.1262111.html</guid>
        <pubDate>Sun, 21 May 2006 10:05:49 GMT</pubDate>

      </item>

      <item>
        <title>AT90S8515学习板</title>
        <link>http://wansan.ycool.com/post.1262093.html</link>
        <description><![CDATA[<img src="http://node1.foto.ycstatic.com/200605/21/7/16831847.jpg" border="0" alt="" /><br />自己手工焊的学习板由89C51改过来的,嘿嘿!...
]]></description>
        <guid isPermaLink="true">http://wansan.ycool.com/post.1262093.html</guid>
        <pubDate>Sun, 21 May 2006 10:05:59 GMT</pubDate>

      </item>

      <item>
        <title>AVR(ATMEGA8)入门学习板出来了!</title>
        <link>http://wansan.ycool.com/post.1256906.html</link>
        <description><![CDATA[<img alt="" src="http://node1.foto.ycstatic.com/200605/18/4/16832148.jpg" border="0" /><br /><br /><img alt="" src="http://node1.foto.ycstatic.com/200605/18/b/16832043.jpg" border="0" /><br /><img alt="" src="http://node1.foto.ycstatic.com/200605/18/6/16831910.jpg" border="0" /><br />自己画ＰＣＢ的<br />用了ＡＴＭＥＧＡ８的ＡＶＲ单片机<br />先简单说下可以做些什么实验吧！<br />串口通讯<br />Ｉ／Ｏ口的输出，输入（通过串口控制上位机）<br />外部中断０<br />ＬＥＤ数码管显示<br />ＬＣＤ１６０２显示<br />ＡＤＣ模数转换显示（ＬＥＤ显示）<br />ＡＤＣ模数转换显示（ＬＣＤ显示）<br />定时器０（定时功能）<br />定时器０（计数功能）<br />定时器１（信号发生器功能）<br />定时器１（ＰＷＭ脉宽调制功能）<br />频率计（ＩＣＰ输入捕获功能在ＬＣＤ上显示）<br />定时器２（实时时钟功能，采用外部３２.７６８Ｋ）<br />模拟比较器<br />ＳＰＩ接口（７４ＨＣ１６４（ＬＥＤ显示）和７４ＨＣ１６５（键盘输入））<br />Ｉ２Ｃ总线（２４Ｃ０２）<br /><br />学习这个ＡＶＲ后，可以有自己的频率计，信号发生器，或者自己可以做个程控直流电源！其他有待发现！<br />...
]]></description>
        <guid isPermaLink="true">http://wansan.ycool.com/post.1256906.html</guid>
        <pubDate>Thu, 18 May 2006 13:05:19 GMT</pubDate>

      </item>

      <item>
        <title>学习空闲要多娱乐！</title>
        <link>http://wansan.ycool.com/post.1044156.html</link>
        <description><![CDATA[学习累了！工作累了！<br />要休息下啊！<br />放松放松　...
]]></description>
        <guid isPermaLink="true">http://wansan.ycool.com/post.1044156.html</guid>
        <pubDate>Mon, 09 Jan 2006 01:01:14 GMT</pubDate>

      </item>

      <item>
        <title>学习嵌入式系统</title>
        <link>http://wansan.ycool.com/post.1044140.html</link>
        <description><![CDATA[<p>昨晚把Ｒed Hat Linux9下载好了！网络上的ＩＳＯ文件很多很难下！<br />并且在vware下安装起来了！<br />终于有点点进步！<br />前段时间是用cygwin下的！可是按网络上留传的那些步骤操作，不是预料的结果，决定还是安装ＬＩＮＵＸ操作系统！<br />linux有意思！！！！</p>...
]]></description>
        <guid isPermaLink="true">http://wansan.ycool.com/post.1044140.html</guid>
        <pubDate>Mon, 09 Jan 2006 00:01:38 GMT</pubDate>

      </item>

      <item>
        <title>C51</title>
        <link>http://wansan.ycool.com/post.1005551.html</link>
        <description><![CDATA[<strong>C51<br />又对５１的汇编感兴趣了！那天好好回顾回顾！<br />嘿嘿</strong>...
]]></description>
        <guid isPermaLink="true">http://wansan.ycool.com/post.1005551.html</guid>
        <pubDate>Thu, 15 Dec 2005 12:12:31 GMT</pubDate>

      </item>

      <item>
        <title>Delphi调用指定的Windows程序</title>
        <link>http://wansan.ycool.com/post.817234.html</link>
        <description><![CDATA[Delphi调用指定的Windows程序-----------------------摘于网络，本人实践过！<br />
原码如下：<br />
unit Unit1;<br />
<br />
interface<br />
<br />
uses<br />
 &nbsp;Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,<br />
 &nbsp;Dialogs, StdCtrls,shellapi, Buttons;{shellapi 单元里面的 ShellExecute函数}<br />
<br />
type<br />
 &nbsp;TForm1 = class(TForm)<br />
 &nbsp;&nbsp;&nbsp;Button1: TButton;<br />
 &nbsp;&nbsp;&nbsp;Button2: TButton;<br />
 &nbsp;&nbsp;&nbsp;Button3: TButton;<br />
 &nbsp;&nbsp;&nbsp;Button4: TButton;<br />
 &nbsp;&nbsp;&nbsp;Label1: TLabel;<br />
 &nbsp;&nbsp;&nbsp;Label2: TLabel;<br />
 &nbsp;&nbsp;&nbsp;Label3: TLabel;<br />
 &nbsp;&nbsp;&nbsp;Label4: TLabel;<br />
 &nbsp;&nbsp;&nbsp;BitBtn1: TBitBtn;<br />
 &nbsp;&nbsp;&nbsp;procedure Button1Click(Sender: TObject);<br />
 &nbsp;&nbsp;&nbsp;procedure Button2Click(Sender: TObject);<br />
 &nbsp;&nbsp;&nbsp;procedure Button3Click(Sender: TObject);<br />
 &nbsp;&nbsp;&nbsp;procedure Button4Click(Sender: TObject);<br />
 &nbsp;private<br />
 &nbsp;&nbsp;&nbsp;{ Private declarations }<br />
 &nbsp;public<br />
 &nbsp;&nbsp;&nbsp;{ Public declarations }<br />
 &nbsp;end;<br />
<br />
var<br />
 &nbsp;Form1: TForm1;<br />
 &nbsp;PI:TProcessInformation; {利用CreateProcess函数和TerminateProcess函数全局变量}<br />
 &nbsp;SI:TStartUpInfo;<br />
 &nbsp;MyHandle:Thandle;<br />
<br />
implementation<br />
<br />
{$R *.dfm}<br />
//-----------------------------------------------------------------------------------<br />
{WinExec函数的方式来调用指定的Windows程序的响应代码}<br />
{WinExec函数的第1个参数表示了被调用程序的路径和名称，第2个参数表示了程序的显示方式。}<br />
//-----------------------------------------------------------------------------------<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WinExec('Notepad.exe',SW_MAXIMIZE);<br />
end;<br />
//------------------------------------------------------------------------------------<br />
{ShellExecute函数的方式来调用指定的Windows程序的响应代码}<br />
{uses &nbsp;shellapi 应用单元 }<br />
{ShellExecute用于打开与指定文件关联在一起的程序文件。<br />
第1个参数用于指定一个窗口的句柄；<br />
第2个参数指定了程序运行的类别，如’Open’或’Print’；<br />
第3个参数指定了想用关联程序打印或打开的一个程序名或文件名；<br />
如果第3个参数中指定了一个可执行文件，<br />
那么第4个参数就是传递给执行程序的参数；<br />
第5个参数指定了可执行程序的完整路径。<br />
最后一个参数用于设定程序运行方式。}<br />
//------------------------------------------------------------------------------------------<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
ShellExecute(Application.Handle,'Open','NotePad.exe',PChar('C:\AutoExec.bat'),nil,SW_SHOWNORMAL);<br />
end;<br />
//---------------------------------------------------------------------------------------------<br />
{CreateProcess函数调用指定程序的响应代码}<br />
{CreateProcess函数激活D:\WINNT\system32\notepad.exe程序后，把它的进程信息存储在变量PI中}<br />
//---------------------------------------------------------------------------------------------<br />
procedure TForm1.Button3Click(Sender: TObject);<br />
begin &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
 &nbsp;&nbsp;&nbsp;&nbsp;FillChar(SI,sizeof(SI),#0);<br />
 &nbsp;&nbsp;&nbsp;&nbsp;with SI do<br />
 &nbsp;&nbsp;&nbsp;&nbsp;begin<br />
 &nbsp;&nbsp;&nbsp;&nbsp;cb:=sizeof(SI);<br />
 &nbsp;&nbsp;&nbsp;&nbsp;dwFlags:=StartF_UsesTDHandles or STARTF_USESHOWWINDOW;<br />
 &nbsp;&nbsp;&nbsp;&nbsp;lptitle:=nil;<br />
 &nbsp;&nbsp;&nbsp;&nbsp;wShowWindow:=SW_Show;<br />
 &nbsp;&nbsp;&nbsp;&nbsp;end;<br />
 &nbsp;&nbsp;&nbsp;&nbsp;CreateProcess(PChar('D:\WINNT\system32\notepad.exe'),<br />
 &nbsp;&nbsp;&nbsp;nil,nil,nil,true,DETACHED_PROCESS,nil,nil,SI,PI);<br />
end;<br />
//----------------------------------------------------------------------------------------------------<br />
{关闭本实例打开的D:\WINNT\system32\notepad.exe程序}<br />
//----------------------------------------------------------------------------------------------------<br />
procedure TForm1.Button4Click(Sender: TObject);<br />
begin<br />
MyHandle:=OpenProcess(PROCESS_ALL_ACCESS, FALSE,PI.dwProcessId);<br />
TerminateProcess(MyHandle,0);<br />
end;<br />
<br />
end.<br />
...
]]></description>
        <guid isPermaLink="true">http://wansan.ycool.com/post.817234.html</guid>
        <pubDate>Sat, 13 Aug 2005 18:08:41 GMT</pubDate>

      </item>

      <item>
        <title>TMS320LF2407A 运行中</title>
        <link>http://wansan.ycool.com/post.797616.html</link>
        <description><![CDATA[我的2407的IO口可以控制了！ <br />需要对CMD文件要好好的看看，还是对这个不理解！...
]]></description>
        <guid isPermaLink="true">http://wansan.ycool.com/post.797616.html</guid>
        <pubDate>Tue, 02 Aug 2005 16:08:51 GMT</pubDate>

      </item>
    </channel>
  </rss>
