⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chuankou.c

📁 AVR单片机mega16的串口通信程序下载。
💻 C
字号:
#include <iom16v.h> 
#define CS 0 
#define CLK 1 
#define DIO 2 
#define KEY 3
unsigned int count,i; 
unsigned int j;  

void SETB(unsigned char k) 
{//这里的PORTB根据自己的程序修改 
PORTB=PORTB|(1<<k); 
} 

void CLRS(unsigned char l) 
{//这里的PORTB根据自己的程序修改 
PORTB=PORTB&amt;~(1<<l); 
} 

//初始化显示时Data=0xA4,position=0xFF 
//Data为显示数据,position为数据显示位置 
//Data为10进制或16进制数,只能一位一位发送 
//position为1-8的数字 
void Display(unsigned char Data,unsigned char position) 
{ 
unsigned char DataPos=~0; 
unsigned char num=~0; 
unsigned char wait=~0; 
unsigned char datanum=~0; 
unsigned int transdata=~0; 
unsigned int iToDIO=~0; 
unsigned char cToDIO=~0; 
DDRB=0xFF; 
SETB(KEY); 
SETB(CS); 
SETB(DIO); 
datanum=2; 
CLRS(CS); 
if(Data!=0xA4) 
{ 
DataPos=0xC8+position-1; 
transdata=DataPos; 
transdata=transdata<<8; 
transdata=transdata+Data; 
while(datanum--) 
{ 
wait=25; 
while(wait--) 
{;} 
for(num=0;num<8;num++) 
{ 
while(wait--) 
{;} 
CLRS(CLK); 
wait=4; 
while(wait--) 
{;} 
} 
} 
} 
else 
{ 
wait=25; 
while(wait--); 
for(num=0;num<8;num++) 
{ 
cToDIO=Data&amt;0x80; 
Data=Data<<1; 
if(cToDIO==0x00) 
{ 
CLRS(DIO); 
} 
else 
{ 
SETB(DIO); 
} 
SETB(CLK); 
wait=4; 
while(wait--); 
CLRS(CLK); 
wait=4; 
while(wait--); 
} 
} 
SETB(CS); 
} 

unsigned int ADC_Conv(void) 
{ 
unsigned int temp1,temp2; 
temp1=(unsigned int)ADCL; 
temp2=(unsigned int)ADCH; 
temp2=(temp2<<8)+temp1; 
return temp2; 
} 


void main() 
{ 
ADMUX=0x00; 
ADCSRA=0xE6; 

Display(0xA4,0xff); 
while(1) 
{ 
count=20000; 
while(count--); 
i=ADC_Conv(); 
for(j=0;j<4;j++) 
{ 
Display(i>10,j+1); 
if(i!=0) 
{ 
i=i/10; 
} 
} 
} 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -