您当前的位置:五五电子网电子知识单片机-工控设备51单片机51单片机8255驱动C程序 正文
51单片机8255驱动C程序

51单片机8255驱动C程序

点击数:7840 次   录入时间:03-04 11:42:13   整理:http://www.55dianzi.com   51单片机
void wd_PC(unsigned char PC_data)          /*写PC口*/
                {
                ACC=IO_flags;              /*把状态标志字读到ACC便于进行位操作*/
             
                {IO_flagsC=0;              /*置PC状态标志位为低--输出*/
                IO_flags=ACC;              /*位操作完成,把ACC的内容写回状态标志字*/
                PABC_config();              /*调用配置子程序,完成对8255的设置*/
                ACC=IO_flags;              
                }
                while(IO_flagsC==1);      /*判断状态标志位是否为高
                                            为高,设置未完成,需从新设置*/

               a8255_PC=PC_data;           /*将PC_data的内容送到PC口*/
                }
void set_PC(unsigned char PC_num)
             {
             ACC=IO_flags;
             IO_flagsC=0;
             ACC=IO_flags;
             PC_num=PC_num<<1;
             PC_num=(PC_num|0x01);
             a8255_CON=PC_num;
               }
void clr_PC(unsigned char PC_num)
             {
             ACC=IO_flags;
             IO_flagsC=1;
             ACC=IO_flags;
             PC_num=PC_num<<1;
             PC_num=(PC_num&0xFE);
             a8255_CON=PC_num;
               }
              
void main(void)
               {
               set_PC(0x01);
               }

/*---------------------------------------------------
文件名称:Config.h
功能描述:端口定义和RAM配置
输入参数:无
输出参数:无
特殊说明:根据具体分配的地址,重新设定各值
//----------------------------------------------------------------------------------------------------------------*/
#include <reg52.h>
#include<ABSACC.H>  
#define a8255_PA    XBYTE[0x7F7C]     /*PA口地址*/
#define a8255_PB    XBYTE[0x7F7D]     /*PB口地址*/
#define a8255_PC    XBYTE[0x7F7E]     /*PC口地址*/
#define a8255_CON   XBYTE[0x7F7F]     /*控制字地址*/
unsigned char IO_flags;   /* 用于表示PA、PB、PC的当前输入输出状态
                            内容不能被其它程序改写,操作时ACC=IO_flags*/                        
sbit    IO_flagsA=ACC^0;  /*PA的当前输入输出状态
                           置位表示输入,复位表示输出*/
sbit    IO_flagsB=ACC^1;  /*PB的当前输入输出状态*/
sbit    IO_flagsC=ACC^2;  /*PC的当前输入输出状态*/

char rd_PA(void);          /*读PA口*/ 
char rd_PB(void);          /*读PB口*/
char rd_PC(void);          /*读PC口*/
void wd_PA(unsigned char PA_data);  /*写PA口*/
void wd_PB(unsigned char PB_data);  /*写PA口*/
void wd_PC(unsigned char PC_data);  /*写PA口*/
void PABC_config(void );            /*写8255控制字*/


 



上一页  [1] [2] [3] 


本文关键字:单片机  程序  51单片机单片机-工控设备 - 51单片机