第四章_1 MCS-51单片机的内部资源及其编程IOzxl.ppt

第四章_1 MCS-51单片机的内部资源及其编程IOzxl.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章_1 MCS-51单片机的内部资源及其编程IOzxl

8051内部资源及其编程 I/O口 输入:键盘 输出:LED显示 定时/计数器 外部中断 串行口 4-1、 I/O口 8051单片机有4组8位双向I/O端口(P0、P1 、P2、 P3) 各端口功能 P0:通常用作地址/数据总线,即低8位地址与数据线分时复用;同时P0口也可用作I/O,可位寻址 P1:通常用作I/O,可位寻址 P2:通常用作扩展系统的高8位地址,与P0一起组成16位地址总线;同时P2也可用作I/O,可位寻址 P3:双功能口。作第一功能使用时,其功能同P1口,其第二功能见下。 8051 I/O口及其操作 字节操作 读字节 写字节 位操作 读位 写位 8051 I/O口操作 I/O字节操作(sfr P1=0x90;) 读字节 unsigned char a; a=P1; a=P10x0f; if(checkbit(P1,0)) {;} 写字节 P1=0x01; P1=a[i]; P1=P10x0f; setbit(P1,0); P1=P1|0x01; clrbit(P1,0); P1= P10xfe; xorbit(P1,0); 8051 I/O口操作 I/O位操作(sfr P1=0x90; sbit P1_0=P1^0;) 读位端口 bdata my_byte=0x20; sbit my_bit= my_byte ^0; 或bit my_bit=0x00; my_bit=P1_0; if(my_bit==1) {;} if(P1_0= =1) {;} 写位端口 P1_0=1; P1_0=0; P1_0=~P1_0; 8051 I/O编程示例 键盘扫描 LED数码显示 十字路口交通灯控制 键盘扫描思想 #include reg51.h void main(void) { while(1) { P20=0; if(P24==0) //S0 按下 { delay(200); if(P24==0) //S0 按下 { //S0 按键对应动作 //---- } } } } 键盘扫描思想 #include reg51.h void main(void) { while(1) { P2=P20xfe; if(P24==0) //S0 按下 { delay(200); if(P24==0) //S0 按下 { //S0 按键对应动作 //---- } } } } 键盘扫描思想 while(1) { P2=P20xfe; if(P24==0) //S0 按下 { delay(200); if(P24==0) //S0 按下 { flag=1; } } if(P25==0) //S1 按下 { delay(200); if(P25==0) //S1 按下 { flag=2; } } switch(flag) 1: ----;break; 2: ----;break; default: } 动态显示 I/O端口1不断送待显示字符的段选码,I/O端口2不断送出不同的位扫描码,并使每位显示字符停留显示一段时间,一般为1ms~5ms,利用眼睛的视觉暂留,从显示器上便可以见到相当稳定的数字显示。 LED数码显示程序设计-架构 LED数码显示程序设计-主程序 LED数码显示程序设计-数值处理程序 LED显示电路改进 LED显示程序改进 1、数码管的工作原理 数码管的段码(以共阴数码管为例) dp g f e d c b a MSB LSB 0x3F 0x06 0x5B 0x4F 0x66 0x6D 0x7D 0x07 0x7F 0x6F 0x77 0x7C 0x58 0x5E 0x79 0x71 1、数码管的工作原理 多个数码管的控制 静态显示,每个数码管单独控制,所有数码管同时点亮 动态显示,段码共用,位码分别控制,每个数码管循环点亮 段码输入 位码扫描 1、数码管的工作原理 多个数码管的控制 静态显示,每个数码管单独控制,所有数码管同时点亮 动态显示,段码共用,位码分别控制,每个数码管循环点亮 段码输入 位码扫描 例:如题设所示电路图,控制6个共阴数码管使用动态显示的方式显示“201006”。 2、多位数码管的动态显示 段码 位码 段码:P2.7~P2.0:dp~a 位码:P0.5~P0.0:BIT5~BIT0 按要求编程: 段码和位码输出采用查表法; 6个数码管以5ms左右的间隔依次点亮,显示对应的数

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档