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

📄 训练项目四:扩展io口的使用.c

📁 长沙理工自己的实验程序
💻 C
字号:
/****************************************************************************
** File Name:          扩展I/O口的使用
** Createed By:        Wangchangsong
** Create Date:        07/26/2008
** Version:            1.0
** Descriptions:       led display
**
**---------------------------------------------------------------------------
** Modified By:
** Modified Date:
** Version:
** Descriptions:
**
****************************************************************************/

#include <iom128v.h> 
#define CON8255 0x8003                    
                                            /* 宏定义,定义8255的地址         */                       
#define A8255 0x8000
                                            /* 宏定义,定义8255A口地址        */
/****************************************************************************
** Function Name:      init      
** Descriptions:       initialization
** Input Parameters:   viod
** Output parameters:  void
** Returned Value:     void
**---------------------------------------------------------------------------
****************************************************************************/

void init(void)                             /* 初始化                         */
{ 
   MCUCR=MCUCR|0x80;                        /*允许外部存储器扩展,允许使用8255*/
   XMCRB=0x80;                              /* 外部存储总线保持允许           */
   w8255con(0x80);                          /*A口工作在模式0,A口作输出       */
}

/****************************************************************************
** Function Name:      w8255con        
** Descriptions:       
** Input Parameters:   ctrl
** Output parameters:  void
** Returned Value:     void
**---------------------------------------------------------------------------
****************************************************************************/

void w8255con(unsigned char ctrl) 
{ 
   unsigned char *p = (unsigned char *)(CON8255); /*指针指向控制总线          */
   *p=ctrl;           
}

/****************************************************************************
** Function Name:      w8255a       
** Descriptions:       
** Input Parameters:   value
** Output parameters:  void
** Returned Value:     void
**---------------------------------------------------------------------------
****************************************************************************/

void w8255a(unsigned char value) 
{   
   unsigned char *p = (unsigned char *)(A8255);   /* 指针指向8255的A口        */
   *p=value; 
}

/****************************************************************************
** Function Name:      delay_1ms       
** Descriptions:       delay time
** Input Parameters:   void
** Output parameters:  void
** Returned Value:     void
**---------------------------------------------------------------------------
****************************************************************************/

void delay_1ms(void)                           /* 延时                        */
{ 
    unsigned int i;
	
    for(i = 1;i < 2260;i++);
}

/****************************************************************************
** Function Name:      delay_nms       
** Descriptions:       delay time
** Input Parameters:   uiTime
** Output parameters:  void
** Returned Value:     void
**---------------------------------------------------------------------------
****************************************************************************/

void delay_nms(unsigned int uiTime)                 /* 延时                   */
{
    unsigned int i = 0;
	
    while(i < uiTime)
    {delay_1ms();
     i++;
    }
}

/****************************************************************************
** Function Name:      main       
** Descriptions:       
** Input Parameters:   void
** Output parameters:  void
** Returned Value:     void
**---------------------------------------------------------------------------
****************************************************************************/

void main(void) 
{
   init();
   while(1)
   {
   w8255a(0xfe);                               /* 给A口赋值                   */
   delay_nms(80);
   w8255a(0xfd);
   delay_nms(80);
   w8255a(0xfb);
   delay_nms(80);
   w8255a(0xf7);
   delay_nms(80);
   w8255a(0xef);
   delay_nms(80);
   w8255a(0xdf);
   delay_nms(80);
   w8255a(0xbf);
   delay_nms(80);
   w8255a(0x7f);
   delay_nms(80);
   
   }
}

/****************************************************************************
 END FILE
****************************************************************************/

⌨️ 快捷键说明

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