STC51单片机IO口模式快速设置_第1页
STC51单片机IO口模式快速设置_第2页
STC51单片机IO口模式快速设置_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

STC51单片机IO口模式的快速设置新型51单片机STC系列,较传统51单片机在性能和速度上有根本性的提高。速度提高812倍;片上RAM大量增加;片上外围模块大量增加,等等。其中IO口的模式增加为4种(传统51只有1中),以P0口为例:这里,每个端口新增两个寄存器PxM0, PxM1(x=0,1,2,3)。在设置每一个IO端的模式时都需要对这两个寄存器进行操作。比如:要将 P0.7设为推挽输出,P0.6设为准双向口,P0.5设为高阻输入;P0.4设为开路模式,P0.3-P0.0都设为准双向口,那么需要如下的代码:IO_Init() P0M0=0x30;/0011 0000 P0M1=0x90;/1001 0000这样的设置不便于记忆,很容易写错,且写好的代码可读性差,为此,我们可以通过一个宏定义来解决,具体如下:#define PORT0 0#define PORT1 1#define PORT2 2#define PORT3 3#define BIT0 0#define BIT1 1#define BIT2 2#define BIT3 3#define BIT4 4#define BIT5 5#define BIT6 6#define BIT7 7#define STANDARD 0#define PP_OUT 1#define Z_IN 2#define OD 3#define IOMODE(Port,bit_n,mode) switch(Port) case 0: switch(mode) case STANDARD: P0M0&=(1bit_n); P0M1&=(1bit_n); break; case PP_OUT: P0M0&=(1bit_n); P0M1|= (1bit_n); break; case Z_IN: P0M0|=(1bit_n); P0M1&=(1bit_n); break; case OD: P0M0|=(1bit_n); P0M1|=(1bit_n); break; break;case 1: switch(mode) case STANDARD: P1M0&=(1bit_n); P1M1&=(1bit_n); break; case PP_OUT: P1M0&=(1bit_n); P1M1|= (1bit_n); break; case Z_IN: P1M0|=(1bit_n); P1M1&=(1bit_n); break; case OD: P1M0|=(1bit_n); P1M1|=(1bit_n); break; break;case 2: switch(mode) case STANDARD: P2M0&=(1bit_n); P2M1&=(1bit_n); break; case PP_OUT: P2M0&=(1bit_n); P2M1|= (1bit_n); break; case Z_IN: P2M0|=(1bit_n); P2M1&=(1bit_n); break; case OD: P2M0|=(1bit_n); P2M1|=(1bit_n); break; break;case 3: switch(mode) case STANDARD: P3M0&=(1bit_n); P3M1&=(1bit_n); break; case PP_OUT: P3M0&=(1bit_n); P3M1|= (1bit_n); break; case Z_IN: P3M0|=(1bit_n); P3M1&=(1bit_n); break; case OD: P3M0|=(1bit_n); P3M1|=(1bit_n); break; break; 有了上面的宏定义,在初始化程序中可以直接这样写IO_Init()IOMODE(PORT0,BIT7,PP_OUT)IOMODE(PORT0,BIT6, STANDARD)IOMODE(PORT0,BIT5, Z_IN)IOMODE(PORT0,BIT4, OD)IOMODE(PORT0,BIT3, STA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论