• 大小: 70KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-11
  • 语言: 其他
  • 标签: SPI  双机通信  AVR  

资源简介

用两片ATmega16做了个SPI双机通信的仿真,开发环境为ICCAVR ,没有用到中断,只须修改头文件便可移值到GCC上去。

资源截图

代码片段和文件信息

#include “display.h“

//===================MAX7219的核心函数,接收单片机的数据===================== 
void SEND(unsigned char addunsigned char dat)//发送2个字节的子函数第一个字节为地址第二个字节为操作数  
{  
unsigned char adsjx;  
unsigned int i;  
i=0;  
MAX7219_LOAD_0;//load=0  
   while(i<16)  
   {
//   if(add==1||add==5) dat=dat|0x80; //小数点问题解决
   if (i<8){ads=add;}   
   else {ads=dat;}   
      for(j=8;j>=1;j--)  
      {  
      x=ads&0x80;  
         if (x==0){MAX7219_DIN_0;}  
         else {MAX7219_DIN_1;}  
            ads=ads<<1;  
      MAX7219_CLK_1;//clk=1  
         MAX7219_CLK_0;//clk=0  
      }  
   i=i+8;  
   }  
MAX7219_LOAD_1;//load=1  
}  
//===================================== 

//==============SEG亮度================ 
void SEG_LIGHT(unsigned light) 

SEND(0x0alight&0x0f); 

//=================================== 

//==============SEG开================ 
void SEG_OPEN(void) 

SEND(0x0c0x01); 

//=================================== 

//==============SEG关================ 
void SEG_CLOSE(void) 

SEND(0x0c0x00); 

//=================================== 

//==============SEG清屏==============
void SEG_CLEAR(unsigned char part) 

switch(part) 
        { 
        case 0://左 
                { 
                SEND(0x010x0f);  
                SEND(0x020x0f);  
                SEND(0x030x0f);  
                SEND(0x040x0f); 
                }break; 
        case 1://右 
                { 
                SEND(0x050x0f);  
                SEND(0x060x0f);  
                SEND(0x070x0f);  
                SEND(0x080x0f); 
                }break; 
        default://全部 
                { 
                SEND(0x010x0f);  
                SEND(0x020x0f);  
                SEND(0x030x0f);  
                SEND(0x040x0f); 
                SEND(0x050x0f);  
                SEND(0x060x0f);  
                SEND(0x070x0f);  
                SEND(0x080x0f); 
                }break; 
        } 


//==============SEG初始化============= 
void SEG_INIT(void) 

MAX7219_OUT_DDR|=(1<MAX7219_OUT_PORT|=(1<SEND(0x0c0x01); 
SEND(0x0b0x07);  
SEND(0x0a0x05);  
SEND(0x090xff);  
SEG_CLEAR(3); 



//=============SEG左四显示数字============== 
void SEG_L(unsigned int number) 

unsigned char i=4; 
SEND(0x010x0f); //先清除左四位左四位黑屏 
SEND(0x020x0f);  
SEND(0x030x0f);  
SEND(0x040x0f); 

if(number>9999)//要显示的数值超过4位,则显示4个H 
        { 
        SEND(0x010x0c);  
        SEND(0x020x0c);  
        SEND(0x030x0c);  
        SEND(0x040x0c); 
        } 
else//小于四位可以显示 
        { 
/* for(i=4;i>0;i--)
 {
  SEND(inumber%10);
  number=(number-number%10)/10; 
 } */
        do 
                { 
                SEND(inumber%10); 
                number=(number-number%10)/10; 
                i--; 
       

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       92692  2008-11-01 13:55  two_spi.DSN
     文件        1166  2008-11-01 13:07  display._h
     文件        1236  2008-11-04 12:00  salve._c
     文件        3438  2008-11-03 13:52  two_spi.PWI
     文件        3953  2008-11-01 13:50  display.c
     文件        1166  2008-11-01 13:11  display.h
     文件        3953  2008-11-01 13:49  display._c
     文件       49319  2008-10-05 10:42  Last Loaded spi.DBK
     文件        1365  2008-11-04 12:09  master._c
     文件        1365  2008-11-04 12:10  master.c
     文件        2375  2008-11-04 12:10  MASTER.cof
     文件        1332  2008-11-04 12:10  MASTER.dbg
     文件          69  2008-11-04 12:10  master.dp2
     文件         808  2008-11-04 12:10  MASTER.hex
     文件       11742  2008-11-04 12:10  master.lis
     文件          11  2008-11-04 12:10  MASTER.lk
     文件        6620  2008-11-04 12:10  MASTER.lst
     文件         555  2008-11-04 12:10  MASTER.mak
     文件        2089  2008-11-04 12:10  MASTER.mp
     文件        2822  2008-11-04 12:10  master.o
     文件         999  2008-11-04 12:10  master.prj
     文件        4924  2008-11-04 12:10  master.s
     文件          43  2008-11-01 20:01  MASTER.SRC
     文件        1286  2008-11-04 12:07  salve.c
     文件        5459  2008-11-04 12:07  SALVE.cof
     文件        3581  2008-11-04 12:07  SALVE.dbg
     文件         175  2008-11-04 12:07  salve.dp2
     文件        2516  2008-11-04 12:07  SALVE.hex
     文件       36508  2008-11-04 12:07  salve.lis
     文件          10  2008-11-04 12:07  SALVE.lk
     文件       21798  2008-11-04 12:07  SALVE.lst
............此处省略6个文件信息

评论

共有 条评论