知识回顾与新课引入_第1页
知识回顾与新课引入_第2页
知识回顾与新课引入_第3页
知识回顾与新课引入_第4页
知识回顾与新课引入_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、知识回顾与新课引入1、单片机的组成?各部分功能是?2、单片机与电子计算机的组成有何异同?3、ATmega16的PDIP封装形式有多少个引脚?其中I/O占了多少个引脚?4、单片机C语言开发时常用的头文件有?1I/O接口及应用并行接口概述并行接口应用举例位检测与位控制位操作实例2并行接口概述并行输入工作原理并行输出工作原理并行输入/输出接口工作原理3并行输入工作原理 并行输入接口中某一位的简化电路如图4-1所示。引脚的状态取决于外电路,缓冲器后的状态为引脚状态,三态门的输出由RP端控制,当RP为0时,三态门的输出为高阻状态,数据总线不受引脚影响;当RP为1时,三态门的输出与输入相同,此时为读引脚状

2、态。在读接口时,RP控制端有效。4并行输入接口某一位的简化接口电路如图:5并行输出工作原理并行输出接口中某一位的简化接口电路如图所示。当控制端WP为0(低电平)时,数据锁存器的输出端Q为上次输出的值,与输入端D无关,数据总线操作不影响输出。当控制端WP为1时,数据锁存器的输出端Q的值为输入端D的值,为输出数据状态。数据输出到引脚。锁存器输出端Q为0时,输出为低电平;锁存器输出端Q为1时,输出高电平。RL控制端为读取输出值。6并行输出接口某一位的简化接口电路如图:7并行输入/输出接口工作原理8并行输入/输出接口工作原理端口A端口B端口C端口D9端口A端口A特性端口作为通用数据I/O口端口的第二功

3、能10端口A特性 端口A是一个8位双向I/O口。端口A包含3个I/O地址,其中有两个寄存器和一个输入引脚:数据寄存器PORTA、数据方向寄存器DDRA、输入引脚PINA。数据寄存器PORTA和数据方向寄存器DDRA是可读可写的,而输入引脚PINA仅仅可读不可写。PINA不是一个寄存器,这个地址是用来访问端口A的物理值。当读取PINA时,读到的是施加于引脚上的逻辑值。端口A的所有引脚都可以单独选择上拉电阻,并且可吸收20mA的电流,所以可以直接驱动LED指示灯。上拉电阻被激活且引脚被拉低时,则该引脚会输出电流。11端口作为通用数据I/O口 当端口A作为通用输入输出口时,它的8个引脚具有完全相同的

4、功能。数据方向寄存器DDRA的各位用于引脚方向的选择。当DDRAn被置1时,则相应的端口A的引脚为输出引脚;反之,为输入引脚。12端口的第二功能端口A 的第二功能比较单一,可以作为ADC的模拟输入端。13端口B端口特性端口作为通用数据I/O口端口的第二功能14端口特性 端口B是一个8位双向I/O口。端口B包含3个I/O地址,其中有两个寄存器和一个输入引脚:数据寄存器PORTB、数据方向寄存器DDRB、输入引脚PINB。数据寄存器PORTB和数据方向寄存器DDRB是可读可写的,而输入引脚PINB仅仅可读不可写。PINB不是一个寄存器,这个地址是用来访问端口B的物理值。当读取PINB时,读到的是施

5、加于引脚上的逻辑值。端口B的所有引脚都可以单独选择上拉电阻,并且可吸收20mA的电流,所以可以直接驱动LED指示灯。上拉电阻被激活且引脚被拉低时,则该引脚会输出电流。15端口作为通用数据I/O口 当端口B作为通用输入输出口时,它的8个引脚具有完全相同的功能。数据方向寄存器DDRB的各位用于引脚方向的选择。当DDRBn被置1时,则相应的端口B的引脚为输出引脚;反之,为输入引脚。16端口的第二功能引脚第二功能说明如下: T0 :T/C0的外部引脚输入。 T1 :T/C1的外部引脚输入。 AIN0 :当该引脚无上拉电阻并且被配置为输入时,为模拟比较器的正输入端。 AIN1 :当该引脚无上拉电阻并且被

6、配置为输入时,为模拟比较器的负输入端。 MOSI :SPI的主机数据输出,从机数据输入。 MISO :SPI的主机数据输入,从机数据输出。 SCK :SPI的主机时钟输出,从机时钟输入。17端口C端口特性端口作为通用数据I/O口18端口特性 端口C是一个8位双向I/O口。端口C包含3个I/O地址,其中有两个寄存器和一个输入引脚:数据寄存器PORTC、数据方向寄存器DDRC、输入引脚PINC。数据寄存器PORTC和数据方向寄存器DDRC是可读可写的,而输入引脚PINC仅仅可读不可写。PINC不是一个寄存器,这个地址是用来访问端口A的物理值。当读取PINC时,读到的是施加于引脚上的逻辑值。端口C的

7、所有引脚都可以单独选择上拉电阻,并且可吸收20mA的电流,所以可以直接驱动LED指示灯。上拉电阻被激活且引脚被拉低时,则该引脚会输出电流。19端口作为通用数据I/O口 当端口C作为通用输入输出口时,它的8个引脚具有完全相同的功能。数据方向寄存器DDRC的各位用于引脚方向的选择。当DDRCn被置1时,则相应的端口C的引脚为输出引脚;反之,为输入引脚。20端口D端口特性端口作为通用数据I/O口端口的第二功能21端口特性 端口D是一个8位双向I/O口。端口D包含3个I/O地址,其中有两个寄存器和一个输入引脚:数据寄存器PORTD、数据方向寄存器DDRD、输入引脚PIND。数据寄存器PORTD和数据方

8、向寄存器DDRD是可读可写的,而输入引脚PIND仅仅可读不可写。PIND不是一个寄存器,这个地址是用来访问端口D的物理值。当读取PIND时,读到的是施加于引脚上的逻辑值。端口D的所有引脚都可以单独选择上拉电阻,并且可吸收20mA的电流,所以可以直接驱动LED指示灯。上拉电阻被激活且引脚被拉低时,则该引脚会输出电流。22端口作为通用数据I/O口 当端口D作为通用输入输出口时,它的8个引脚具有完全相同的功能。数据方向寄存器DDRD的各位用于引脚方向的选择。当DDRDn被置1时,则相应的端口D的引脚为输出引脚;反之,为输入引脚。23端口的第二功能 RXD :UART的数据接收引脚。 TXD :UAR

9、T的数据发送引脚。 INT0 :外部中断源0。 INT1 :外部中断源1。 OCIB :比较匹配B的外部输出。 OCIA :比较匹配A的外部输出。 ICP :输入捕获引脚。 OC2:比较匹配的外部输出。24并行接口应用举例例4.2.1彩灯控制例4.2.2二进制数输出控制25彩灯控制如图4-4所示的电路,有8只发光二极管接在PC口,每只发光管低电平点亮。如果按图4-5所示的方式点亮,每次点亮两只发光亮,间隔0.2s后,再换成点亮相邻的两只,依此类推,4次后,再回到第一次,周而复始,形成彩灯的移动。 图4-4 彩灯控制电路 图4-5 彩灯点亮示意图26彩灯控制程序#include #include

10、 void main( ) char i,j ; /* PORTC定义 */PORTC=0 x00 ;DDRC=0X11; while(1) j=0 x11 ; For (i=0; i4 ;i+) PORTC= j ; delay_ms(100) ; j =j 1 ; ;27例4.2.2二进制数输出控制如图4-6所示为二进制数输入、输出控制的电路原理图。 图4-6 并行输入/输出应用28PC口作为输入接口使用,每一位接有上拉电阻和开关。当开关断开时,输入为高电平,读取的结果为1;当开关闭合时,输入为低电平,读取的结果为0。这样8个开关s0s7的状态可以组成一个8位的二进制输入数。如图4-7所示

11、,s7、s5、s2、s0断开,s6、s4、s3、s1闭合。 开关: S7 S6 S5 S4 S3 S2 S1 S0 状态: 开 闭 开 闭 闭 开 闭 开 输入值:1 0 1 0 0 1 0 1 所以,输入的二进制数为0 xa5。29PD口作为输出口使用,每一位与VCC之间接有一个限流电阻和一个发光二级管。当PD口的某位输出1时,引脚为高电平,发光管不亮;当PD口的某位输出0时,引脚为低电平,发光管点亮。如果输出二进制数10100101,结果如下: 位数: 7 6 5 4 3 2 1 0 输出: 1 0 1 0 0 1 0 1 灯: 灭 亮 灭 亮 亮 灭 亮 灭 所以,可以用灯的亮和灭来表示

12、二进制数。30例如:8个灯从高位到低位的状态为灭灭亮亮亮灭灭灭,则二进制数为11000111。现要求输入变化时,输出显示输入的结果,则程序如下:#include void main( )DDRC= 0 x00 ;PORTC=0 x00 ;DDRD= 0 xff ;while(1) PORTD=PINC ; 31位检测与位控制位变量位检测位控制位运算位测试32位变量在CVAVR中可以直接定义位变量为全局变量,例如:bit on;也可以在定义时赋值:bit on=1, off=0;33位检测 位检测具有位读取的含义,根据C语言中赋值语句的含义,等号右边的为读取值。所以等号右边出现位变量,就是对位的

13、检测。如果要检测某个输入引脚的状态,可以在赋值语句的右边使用接口输入变量的位操作符。 例如读取C口的第0位到位变量weib1,可以编程如下: bit weib1; weib1=PINC.0;34位控制位控制具有把一个位变量输出到某个引脚的含义。所以位控制时,赋值语句的左边为接口输出变量的位操作符。例如把C口的第0位控制为高电平,可编写程序如下: DDRC=0 xff; PORTC.0=1;35位运算位运算一般有:置1、清0、取反、与、或、非、异或等运算。置1:位变量=1;清0:位变量=0;取反:位变量=!位变量与运算:位变量3=位变量1&位变量2或运算:位变量3=位变量1|位变量2异或运算:位

14、变量3=位变量1位变量2非运算:位变量2=!位变量136位测试在很多应用中需要知道一个变量的状态。例如某一运算为:如果字符变量AA的第二位为0时,变量BB清0;AA的第二位为1时,BB加10。这个运算要测试变量AA的第二位。“按位与”运算规则,某位与1“与”,本位不变,与0“与”,本位变0。所以使测试位不变,其它位变0。如果被测试位是0,则整个运算结果是0;如被测试位为1,则整个结果为非0。通过判断结果是否为非0,就能测试需要的位。对上例可以用下面的程序实现: if(AA&0b00000100) BB=BB+10;else BB=0;37位操作应用实例例43按键处理例44加减计数例45方波输出

15、38例43按键处理如图4-7所示的电路图,PC3口的按键每按一次,PD3口的发光管的状态改变一次。图4-7 键控指示灯电路39按键不按下时,PC3为高电平;按下时,为低电平。闭合与断开的瞬间伴有一连串的抖动,抖动时间一般为510ms。40按键抖动影响的消除:每隔20ms检测一次按键的状态。检查是否按了一次键,可以检查高电平到低电平的变化,或低电平到高电平的变化。41下列程序段实现例4-3的功能。bit j ;main()DDRD=0 xff;DDRC=0 x00;j=PINC.3;while(1)j=PINC.3;delay_ms(20);if(PINC.3=0) &(j=1) PORTD.3

16、=! PORTD.3;42例44加减计数如图4-9所示的电路图,PD口的8个发光管显示一个8位的二进制数,j04按键每按一次,PD口显示的二进制数加1,j05按键每按一次,PD口显示的二进制数减1。 图4-9 键控计数电路 43下列程序段实现例4-4的功能。#include #include bit p1,p2;void main( ) PORTC=0 xfe ;DDRC=0 x0f ;PORTD=0 xff ;DDRD=0 xff ;while(1) p1= PINC.4; p2= PINC.5; delay_ms(20); if( (PINC.4=0)&(p1=1) PORTD-; if( (PINC.5=0)&(p2=1) PORTD+;44例45方波输出 如图4-1

温馨提示

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

评论

0/150

提交评论