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

📄 epphal.c

📁 基于D12的USB固件驱动
💻 C
字号:
#include <iom128v.h>   /* include peripheral declarations */
#include <macros.h>    /* for CLI() SEI() _NOP() macro */
#define set_bit(x,y)  (x|=(1<<y))
#define clr_bit(x,y)  (x&=(~(1<<y)))

/*###################################################################

                       Hardware Interface Control    

  ###################################################################*/

/*********************************************************************
  Function:     outportCommand
  Description:  TRANSMIT COMMAND TO D12
  Calls:        set_bit(); _NOP(); clr_bit();
  Called By:           
  Input:        void                   
  Output:                       
  Return:       void                     
  Others:                            
*********************************************************************/
void outportCommand(unsigned char Data)
{
  DDRB = 0xFF;
  
  set_bit(PORTD, 4);/* WR 1 */
  
  set_bit(PORTE, 3);/*  A0 1 */  
 
  _NOP();
   
  clr_bit(PORTD, 4);/* WR 0 */
  
  PORTB = Data;
 
  _NOP();  
 
  set_bit(PORTD, 4);/* WR 1 */
 
  clr_bit(PORTE, 3);/* A0 0 */ 
}

/*********************************************************************
  Function:     outportData
  Description:  TRANSMIT DATA TO D12
  Calls:        set_bit(); _NOP(); clr_bit();
  Called By:           
  Input:        void                   
  Output:                       
  Return:       void                     
  Others:                            
*********************************************************************/  
void outportData(unsigned char Data)
{
  DDRB = 0xFF;
  
  set_bit(PORTD, 4);/* WR 1 */
 
  clr_bit(PORTE, 3);/* A0 0 */       
 
  _NOP();
  
  clr_bit(PORTD, 4);/* WR 0 */
 
  PORTB = Data;
  
  _NOP();    
  
  set_bit(PORTD, 4);/* WR 1 */
 
  set_bit(PORTE, 3);/* A0 1 */
  
} 

/*********************************************************************
  Function:     outportData
  Description:  READ DATA FROM D12
  Calls:        set_bit(); _NOP(); clr_bit();
  Called By:           
  Input:        void                   
  Output:                       
  Return:       void                     
  Others:                            
*********************************************************************/     
unsigned char inportData(void)
{
  unsigned char t; 
  
  clr_bit(PORTE, 3);/* A0 0 */
  
  set_bit(PORTE, 1);/* RD 1 */
  
  
  _NOP();         
 
  clr_bit(PORTE, 1);/* RD 0 */   
 
  DDRB = 0x00;
  
  _NOP();   
  
  t = PINB;         /* PINA */
  
  _NOP(); 
  
  set_bit(PORTE, 3);/* A0 1 */
  
  set_bit(PORTE, 1);/* RD 1 */
  
  return  t ;
}  

⌨️ 快捷键说明

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