1._c
来自「AVR mega16双机通讯实验 从机接受数据并发送到lcd1602上显示」· _C 代码 · 共 67 行
_C
67 行
#include < iom16v.h>
#include <macros.h>
unsigned char disp[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
void delayms(void)
{
char a;
for(a=0;a<141;a++)
;
}
void delay(int a)
{
int b;
for(b=0;b<a;b++)
delayms();
}
void Spi_init()
{
DDRB|=(1<<7)|(1<<5)|(1<<4);
SPCR=0x73;
SPSR=0x00;
}
void Spi_Transmit(int a)
{
PORTB&=~(1<<4);
SPCR |= (1<<MSTR); // MSTR有时会被清零,这里强制进入主机模式
SPDR=a;
while(SPSR^0X80);
PORTB|=(1<<4);
}
void main()
{
unsigned char data;
DDRA=0x00;
PORTA=0xFF;
DDRB=0xFF;
PORTB=0xFF;
DDRC=0x00;
PORTC=0x00;
DDRD=0x00;
PORTD=0x00;
Spi_init();
while(1)
{
for(data=0;data<111;data++)
{
delay(1000);
Spi_Transmit(data);
}
if(data>111)
data=0;
//if(a==10) for循环中有了a=0相当于给a赋值0这样就不需要在判断a为10时再置零了
//a=0;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?