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

📄 spi.c

📁 PIC单片机模拟SPI口
💻 C
字号:
uchar rdbyte_spi(void)            //从目标片读字节                                                                                                                                                                                                                                                                                                       
               {	                                                                                                                                                                                                                                                                                                                                                 
               	       uchar i ;                                                                                                                                                                                                                                                                                                                                        
               	       union bkind rwbuf;                                                                                                                                                                                                                                                                                                                               
                       PORTFD&=0xEF;                                                                                                                                                                                                                                                                                                                                    
                       PORTF=PORTFD;                                                                                                                                                                                                                                                                                                                                    
                       delay(2);                                                                                                                                                                                                                                                                                                                                      
               	       for(i=0;i<8;i++)                                                                                                                                                                                                                                                                                                                                 
               	       {                                                                                                                                                                                                                                                                                                                                                
                           PORTFD|=0x10;                                                                                                                                                                                                                                                                                                                                
                           PORTF=PORTFD;                                                                                                                                                                                                                                                                                                                                
                           rwbuf.x<<=1;                                                                                                                                                                                                                                                                                                                                 
                           if(PORTFbits.RF5) rwbuf.x|=0x01;                                                                                                                                                                                                                                                                                                             
                           delay(2);                                                                                                                                                                                                                                                                                                                                  
                           PORTFD&=0xEF;                                                                                                                                                                                                                                                                                                                                
                           PORTF=PORTFD;                                                                                                                                                                                                                                                                                                                                
                           delay(2);                                                                                                                                                                                                                                                                                                                                  
               	        }                                                                                                                                                                                                                                                                                                                                               
                       return rwbuf.x;                                                                                                                                                                                                                                                                                                                                  
               }                                                                                                                                                                                                                                                                                                                                                       
               void writebyte_spi(uchar trdata)      //向目标片写字节                                                                                                                                                                                                                                                                                                      
               {                                                                                                                                                                                                                                                                                                                                                        
               	       uchar i ;                                                                                                                                                                                                                                                                                                                                        
                       union bkind rwbuf;	                                                                                                                                                                                                                                                                                                                         
               	       rwbuf.x=trdata;                                                                                                                                                                                                                                                                                                                                  
                       PORTFD&=0xEF;                                                                                                                                                                                                                                                                                                                                    
                       PORTF=PORTFD;                                                                                                                                                                                                                                                                                                                                    
                       delay(2);         	                                                                                                                                                                                                                                                                                                                         
               	       for(i=0;i<8;i++)                                                                                                                                                                                                                                                                                                                                 
               	       {                                                                                                                                                                                                                                                                                                                                                
               	             if(rwbuf.b.b7) {PORTFD|=0x40;PORTF=PORTFD;	}                                                                                                                                                                                                                                                                                        
                             else           { PORTFD&=0xbf;PORTF=PORTFD;	}                                                                                                                                                                                                                                                                                        
                             delay(2);                                                                                                                                                                                                                                                                                                                                
                             PORTFD|=0x10;                                                                                                                                                                                                                                                                                                                              
                             PORTF=PORTFD;              	                                                                                                                                                                                                                                                                                                         
                             rwbuf.x<<=1;                                                                                                                                                                                                                                                                                                                               
                             PORTFD&=0xEF;                                                                                                                                                                                                                                                                                                                              
                             PORTF=PORTFD;                                                                                                                                                                                                                                                                                                                              
                             delay(2);                    	       	                                                                                                                                                                                                                                                                                                 
               	       }                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                        
               }                             

⌨️ 快捷键说明

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