单片机ATmega8读取165串入拨码开关地址的程序

来源:本站
导读:目前正在解读《单片机ATmega8读取165串入拨码开关地址的程序》的相关信息,《单片机ATmega8读取165串入拨码开关地址的程序》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《单片机ATmega8读取165串入拨码开关地址的程序》的详细说明。

单片机ATmega8读取165串入的拨码开关地址

晶振:内部1M//

//Author:wanghu//

//AVRGCC@2008.6.1//

#include

#include

/**********定义位操作的位移宏bywanghu********/

#definesetbit(val,bitn)(val|=(1《《(bitn)))//

#defineclrbit(val,bitn)(val&=~(1《《(bitn)))//

#definegetbit(val,bitn)(val&(1《《(bitn)))//

//使用方法:if(getbit(PINB,7))//

//setbit(PORTB,0);//

//elseclrbit(PORTB,0);//

单片机ATmega8读取165串入拨码开关地址的程序

unsignedcharreadaddress(void)

{

unsignedcharadd=0;

unsignedchari=0;

clrbit(PORTC,1);

setbit(PORTC,1);

for(i=0;i《7;i++)

{

add|=getbit(PINC,0);//上电后QH的值即是165的第8位值,可以直接赋值完后,给165上升沿读取下个数据

add《《=1;

clrbit(PORTC,2);

setbit(PORTC,2);

}

add|=getbit(PINC,0);

returnadd;

}

intmain(void)

{

unsignedchari,j,k;//定义变量

unsignedcharadd=0;

DDRB=0xFF;

PORTB=0;

PORTC=0x01;

DDRC=0xFE;

DDRD=0xFF;

i=1;

for(j=0;j《8;j++)//循环8次,即PA0~~PA7轮流闪亮,流水一遍自检

{

PORTB=i;//按位取反,反相输出,低电平有效

for(k=0;k《10;k++)_delay_ms(30);//延时30*10=300毫秒,可自行调节

i=i《《1;//左移一位

}

while(1)

{

add=readaddress();

PORTB=add;

PORTD=add;

}

}

提醒:《单片机ATmega8读取165串入拨码开关地址的程序》最后刷新时间 2024-03-14 00:51:22,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《单片机ATmega8读取165串入拨码开关地址的程序》该内容的真实性请自行鉴别。