下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业51单片机8255驱动C程序/*- 库文件名称:driver8155.h 功能描述:驱动8155,不需要了解8255的工作原理,透明操作8255的三个输入输出口PA、PB、PC 读A口只需要调用rd_PA,写则需要调用wr_PA;B、C操作也一样 全局变量: IO_flags,在其它程序中不能对其改写 特殊说明: 无 /-*/ #include unsigned char const cfg_table8= 0 x80, /*b, ;c=out b=out a=out*
2、/ 0 x90, /*b, ;c=out b=out a=in */ 0 x82, /*b, ;c=out b=in a=out*/ 0 x92, /*b, ;c=out b=in a=in */ 0 x89, /*b, ;c=in b=out a=out*/ 0 x99, /*b, ;c=in b=out a=in */ 0 x8B, /*b, ;c=in b=in a=out*/ 0 x9B, /*b, ;c=in b=in a=in */ ; unsigned char rd_mem(unsigned char mem_ad) void PABC_config(void ) a8255_
3、CON=cfg_tableIO_flags; char rd_PA(void) /*读PA口*/ unsigned char PA_data; ACC=IO_flags; /*把状态标志字读到ACC便于进行位操作*/ do IO_flagsA=1; /*置PA状态标志位为高-输入*/ IO_flags=ACC; PABC_config(); /*调用配置子程序,完成对8255的设置*/ ACC=IO_flags; while(IO_flagsA=0); /*判断状态标志位是否为高*/ /*控制字设置完成*/ PA_data=a8255_PA; /*把PA口的数据读到PA_data*/ retu
4、rn(PA_data); /*返回PA_data*/ char rd_PB(void) /*读PB口*/ unsigned char PB_data; ACC=IO_flags; /*把状态标志字读到ACC便于进行位操作*/ do IO_flagsB=1; /*置PB状态标志位为高-输入*/ IO_flags=ACC; PABC_config(); /*调用配置子程序,完成对8255的设置*/ ACC=IO_flags; while(IO_flagsB=0); /*判断状态标志位是否为高*/ /*控制字设置完成*/ PB_data=a8255_PB; /*把PA口的数据读到PB_data*/
5、return(PB_data); /*返回PB_data*/ char rd_PC(void) /*读PC口*/ unsigned char PC_data; ACC=IO_flags; /*把状态标志字读到ACC便于进行位操作*/ do IO_flagsC=1; /*置PC状态标志位为高-输入*/ IO_flags=ACC; PABC_config(); /*调用配置子程序,完成对8255的设置*/ ACC=IO_flags; while(IO_flagsC=0); /*判断状态标志位是否为高*/ /*控制字设置完成*/ PC_data=a8255_PC; /*把PC口的数据读到PC_dat
6、a*/ return(PC_data); /*返回PC_data*/ void wd_PA(unsigned char PA_data) /*写PA口*/ ACC=IO_flags; /*把状态标志字读到ACC便于进行位操作*/ IO_flagsA=0; /*置PA状态标志位为低-输出*/ IO_flags=ACC; /*位操作完成,把ACC的内容写回状态标志字*/ PABC_config(); /*调用配置子程序,完成对8255的设置*/ ACC=IO_flags; while(IO_flagsA=1); /*判断状态标志位是否为高 为高,设置未完成,需从新设置*/ a8255_PA=PA_
7、data; /*将PA_data的内容送到PA口*/ void wd_PB(unsigned char PB_data) /*写PB口*/ ACC=IO_flags; /*把状态标志字读到ACC便于进行位操作*/ IO_flagsB=0; /*置PB状态标志位为低-输出*/ IO_flags=ACC; /*位操作完成,把ACC的内容写回状态标志字*/ PABC_config(); /*调用配置子程序,完成对8255的设置*/ ACC=IO_flags; while(IO_flagsB=1); /*判断状态标志位是否为高 为高,设置未完成,需从新设置*/ a8255_PB=PB_data; /*
8、将PB_data的内容送到PB口*/ 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
9、的内容送到PC口*/ void set_PC(unsigned char PC_num) ACC=IO_flags; IO_flagsC=0; ACC=IO_flags; PC_num=PC_num1; PC_num=(PC_num|0 x01); a8255_CON=PC_num; void clr_PC(unsigned char PC_num) ACC=IO_flags; IO_flagsC=1; ACC=IO_flags; PC_num=PC_num1; PC_num=(PC_num&0 xFE); a8255_CON=PC_num; void main(void) set_PC(0
10、x01); /*-文件名称:Config.h功能描述:端口定义和RAM配置输入参数:无输出参数:无特殊说明:根据具体分配的地址,重新设定各值/-*/#include #include #define a8255_PA XBYTE0 x7F7C /*PA口地址*/#define a8255_PB XBYTE0 x7F7D /*PB口地址*/#define a8255_PC XBYTE0 x7F7E /*PC口地址*/#define a8255_CON XBYTE0 x7F7F /*控制字地址*/unsigned char IO_flags; /* 用于表示PA、PB、PC的当前输入输出状态 内容不能被其它程序改写,操作时ACC=IO_flags*/ sbit IO_flagsA=ACC0; /*PA的当前输入输出状态 置位表示输入,复位表示输出*/sbit IO_flagsB=ACC1; /*PB的当前输入输出状态*/sbit IO_flagsC=ACC2; /*PC的当前输入输出状态*/char rd_PA(void); /*读PA口*/ char rd_PB(void); /*读PB口*/char rd_PC(void); /*读PC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电力隧道项目施工方案(3篇)
- 石渣换填专项施工方案(3篇)
- 绿化桥梁护栏施工方案(3篇)
- 臭氧轻微污染应急预案(3篇)
- 营销逆向方案设计(3篇)
- 超薄门框施工方案图片(3篇)
- 通州地沟防腐施工方案(3篇)
- 银行门店活动应急预案(3篇)
- 阳台庭院景观施工方案(3篇)
- 项目应急预案下发通知(3篇)
- 2026年度济南临港经济开发区管委会公开招聘工作人员(5人)笔试参考题库及答案详解
- 2026年低压电工证考试题库及解析答案
- 全钒液流独立共享储能项目施工方案
- 2026-2030中国倾角传感器市场运营动态与发展机会对策建议研究报告
- 雨课堂在线学堂《创业管理四季歌:艺术思维与技术行动》单元考核测试答案
- 2024年江苏省张家港市文化中心管委办招聘3人历年(高频重点复习提升训练)共500题附带答案详解
- 《复变函数与积分变换》第三版课后习题及答案
- 四川大学高等学历继续教育本科生毕业论文样本格式
- 交接班管理制度车间交接班制度生产车间交接班制度
- 仪器内校员培训教材
- 《中国石化建设工程招标投标规定》(完整版)资料
评论
0/150
提交评论