长沙理工自己的实验程序

源代码在线查看: 训练项目四:扩展io口的使用._c

软件大小: 158 K
上传用户: szjunhui899
关键词: 理工 实验 程序
下载地址: 免注册下载 普通下载 VIP

相关代码

				/****************************************************************************
				** 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  
				#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(0xdf);
				   delay_nms(80);
				   w8255a(0xef);
				   delay_nms(80);
				   w8255a(0x7f);
				   delay_nms(80);
				   w8255a(0xbf);
				   delay_nms(80);
				   
				   }
				}
				
				/****************************************************************************
				 END FILE
				****************************************************************************/			

相关资源