广东省科学技术职业学院电子与机械工程学院学号:0501110129姓名:蔡显甚单片机AVR程序1/*********************************************************************文件名:闪烁灯.c*杜邦线接法:用单条杜邦线把PD.0和J38的1端相连接。***********************************************************************/#includeavr/io.h#defineF_CPU8000000//这里的值是单片机工作的相关晶振频率#includeutil/delay.h#defineLED1PORTD|=~0XFE//LED=1LED不亮#defineLED0PORTD&=0XFE//LED=0LED发光intmain(void){DDRD=0x01;//PD0定义为输出,PD的其他端口为输入。while(1){LED1;_delay_ms(500);LED0;_delay_ms(500);}}广东省科学技术职业学院电子与机械工程学院学号:0501110129姓名:蔡显甚单片机AVR程序2/*********************************************************************文件名:闪烁灯2.c*创建人:东流,2012年2月10日*版本号:1.0*杜邦线接法:用8针杜邦线把PD和J38的1--8连接(PD0对应J38的1端)。用杜邦线把PB0对应J38的9端。用杜邦线把PB1对应J38的10端。用杜邦线把PB2对应J38的11端。用杜邦线把PB3对应J38的12端。***********************************************************************/#includeavr/io.h#defineF_CPU8000000//这里的值是单片机工作的相关晶振频率#includeutil/delay.hintmain(void){DDRD=0xff;DDRB=0x0f;while(1){/*北面的三个LED亮*/PORTD=0xf8;PORTB=0xff;_delay_ms(300);/*东面的三个LED亮*/PORTD=0xc7;PORTB=0xff;_delay_ms(300);/*南面的三个LED亮*/PORTD=0x3f;PORTB=0xfe;_delay_ms(300);/*西面的三个LED亮*/PORTD=0xff;PORTB=0xf1;_delay_ms(300);/*北面的两个LED亮,中间一个不亮*/PORTD=0xfa;PORTB=0xff;_delay_ms(300);/*东面的两个LED亮,中间一个不亮*/PORTD=0xd7;PORTB=0xff;广东省科学技术职业学院电子与机械工程学院学号:0501110129姓名:蔡显甚单片机AVR程序3_delay_ms(300);/*南面的两个LED亮,中间一个不亮*/PORTD=0xbf;PORTB=0xfe;_delay_ms(300);/*西面的两个LED亮,中间一个不亮*/PORTD=0xff;PORTB=0xf5;_delay_ms(300);/*12个LED全亮*/PORTD=0x00;PORTB=0xf0;_delay_ms(200);/*12个LED全灭*/PORTD=0xff;PORTB=0xff;_delay_ms(200);/*12个LED全亮*/PORTD=0x00;PORTB=0xf0;_delay_ms(200);/*12个LED全灭*/PORTD=0xff;PORTB=0xff;_delay_ms(200);_delay_ms(500);//延时0.5秒}}广东省科学技术职业学院电子与机械工程学院学号:0501110129姓名:蔡显甚单片机AVR程序4/*********************************************************************文件名:闪烁灯2.c*描述:在LED上根据要求,进行不同的显示。*杜邦线接法:用8针杜邦线把PD和J38的1--8连接(PD0对应J38的1端)。用杜邦线把PB0对应J38的9端。用杜邦线把PB1对应J38的10端。用杜邦线把PB2对应J38的11端。用杜邦线把PB3对应J38的12端。***********************************************************************/#includeavr/io.h#defineF_CPU8000000//这里的值是单片机工作的相关晶振频率#includeutil/delay.h#defineucharunsignedcharintmain(void){uchari,temp;DDRD=0xff;DDRB=0x0f;PORTB=0xff;PORTD=0xff;while(1){temp=0xf7;for(i=0;i4;i++){PORTB=temp;//把值赋给P2口_delay_ms(100);//延时(10毫秒*j)秒temp=temp1;//值右移一位temp=temp|0x08;}PORTB=0xff;temp=0x7f;for(i=0;i8;i++){PORTD=temp;//把值赋给P1口_delay_ms(100);//延时(10毫秒*j)秒temp=temp1;//值右移一位temp=temp|0x80;}PORTD=0xff;}}广东省科学技术职业学院电子与机械工程学院学号:0501110129姓名:蔡显甚单片机AVR程序5/*********************************************************************文件名:闪烁灯2.c*杜邦线接法:用8针杜邦线把PD和J38的1--8连接(PD0对应J38的1端)。用杜邦线把PB0对应J38的9端。用杜邦线把PB1对应J38的10端。用杜邦线把PB2对应J38的11端。用杜邦线把PB3对应J38的12端。***********************************************************************/#includeavr/io.h#defineF_CPU8000000//这里的值是单片机工作的相关晶振频率#includeutil/delay.h#defineucharunsignedchar//定义北面的三个灯的两灭#defineLED1LPORTD&=0XFE//LED1=0LED1红灯发光#defineLED2LPORTD&=0XFD//LED2=0LED2黄灯发光#defineLED3LPORTD&=0XFB//LED3=0LED3绿灯发光#defineLED1MPORTD|=~0XFE//LED1=1LED红灯不亮#defineLED2MPORTD|=~0XFD//LED2=1LED黄灯不亮#defineLED3MPORTD|=~0XFB//LED3=1LED绿灯不亮//定义东面的三个灯的两灭#defineLED4LPORTD&=0XF7//LED4=0LED4红灯发光#defineLED5LPORTD&=0XEF//LED5=0LED5黄灯发光#defineLED6LPORTD&=0XDF//LED6=0LED6绿灯发光#defineLED4MPORTD|=~0XF7//LED4=1LED红灯不亮#defineLED5MPORTD|=~0XEF//LED5=1LED黄灯不亮#defineLED6MPORTD|=~0XDF//LED6=1LED绿灯不亮//定义南面的三个灯的两灭#defineLED7LPORTD&=0XBF//LED7=0LED7红灯发光#defineLED8LPORTD&=0X7F//LED8=0LED8黄灯发光#defineLED9LPORTB&=0XFE//LED9=0LED9绿灯发光#defineLED7MPORTD|=~0XBF//LED7=1LED红灯不亮#defineLED8MPORTD|=~0X7F//LED8=1LED黄灯不亮#defineLED9MPORTB|=~0XFE//LED9=1LED绿灯不亮//定义西面的三个灯的两#defineLED10LPORTB&=0XFD//LED10=0LED10红灯发光#defineLED11LPORTB&=0XFB//LED11=0LED11黄灯发光#defineLED12LPORTB&=0XF7//LED12=0LED12绿灯发光#defineLED10MPORTB|=~0XFD//LED10=1LED红灯不亮#defineLED11MPORTB|=~0XFB//LED11=1LED黄灯不亮#defineLED12MPORTB|=~0XF7//LED12=1LED绿灯不亮intmain(void){unsignedchari;DDRD=0xff;//PD口定义为输出DDRB=0x0f;//PB口定义为输出PORTD=0xff;//PD口赋值高电平PORTB=0x0f;//PB口赋值高电平广东省科学技术职业学院电子与机械工程学院学号:0501110129姓名:蔡显甚单片机AVR程序6while(1){/*南北红灯亮、东西绿灯亮、持续时20秒*/LED1L;LED2M;LED3M;LED4M;LED5M;LED6L;LED7L;LED8M;LED9M;LED10M;LED11M;LED12L;/*这里,我们调用_delay_ms()函数的时候,参数不要过大,最好不要超过1000,怕引起溢出*/for(i=0;i20;i++){_delay_ms(1000);//延时20个1秒,总共时间20秒}/*南北红灯亮、东西黄灯亮、持续时间5秒*/LED1L;LED2M;LED3M;LED4M;LED5L;LED6M;LED7L;LED8M;LED9M;LED10M;LED11L;LED12M;for(i=0;i5;i++){_delay_ms(1000);}/*南北绿灯亮、东西红灯亮、持续时间20秒*/LED1M;LED2M;LED3L;LED4L;LED5M;LED6M;LED7M;LED8M;LED9L;LED10L;LED11M;LED12M;for(i=0;i20;i++){_delay_ms(1000);}/*南北黄灯亮、东西红灯亮、持续时间5秒*/LED1M;LED2L;LED3M;LED4L;LED5M;LED6M;LED10L;LED11M;LED12M;for(i=0;i5;i++){_delay_ms(1000);}}}广东省科学技术职业学院电子与机械工程学院学号:0501110129姓名:蔡显甚单片机AVR程序7/*********************************************************************文件名:数码管显示.c*杜邦线接法:用8针排线把PD口和J12的1-8连接(PD.0接J12的1端)。用8针排线把PB口和J13的1-8连接(PB.7接J13的1端)。***********************************************************************/#includeavr/io.h#defineF_CPU8000000//这里的值是单片机工作的相关晶振频率#includeutil/delay.h#defineucharunsignedchar#defineuintunsignedint//数码管的段码编码uchartable[16]={0x3f,0x06,0x5b,0x4f,0x66,0x