欢迎来到天天文库
浏览记录
ID:58192609
大小:185.00 KB
页数:29页
时间:2020-09-05
《AVR单片机位操作课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三讲AVR单片机位操作黄文恺一、位操作基础知识1、位的概念2、位逻辑运算符3、位移运算符1、位的概念我们知道,在单片机或计算机系统中,一字节占8位,这样表示的数的范围为0-255,也即00000000-11111111。位就是里面的0和1。 charc=100; 实际上c应该是01100100,正好是64H。其中高位在前,低位在后。
2、
3、 第7位 第0位以我们的MEGA8为例子,PC端口有6个,从PC0到PC5,我们直接赋值过去
4、,PORTC=0XF0;则实际上是设置了11110000,PC0~PC3为低电平,PC4~PC5为高电平,而PC6和PC7引脚在MEGA8中不存在。2、位逻辑运算符符号 描述& 位逻辑与
5、 位逻辑或^ 位逻辑异或~ 取补(取反),该符号是波浪号,不要写成负号。&位逻辑与运算&运算的规则是当两个位都为1时,结果为1,否则为0;(小提示:你可以在心中默念乘法来代替它,真与真,就是1乘以1,真与假,就是1乘以0,假与假,就是0乘以0)在单片机
6、中,常用于某一位清0,其他位不变例:将PC4口清零,我们写出二进制数111011110XEFPC4PORTC&=0xEF(等价于PORTC=PORTC&0xEF)或PORTC&=0b11101111
7、 位逻辑或
8、运算的规则是当两个位都为0时,结果为0,否则为1;(小提示,你可以理解为加号,只有假的加假的等于假,即0加0等于0,其余情况,只要有1个是真的,结果都为真)在单片机中,常用于某一位的置位。例:我们将PB3和PB0口置为高电平。000010010X09PB3PB0PORTB
9、=0X09(等价于PORB=PORTB
10、
11、0X09)^ 位逻辑异或^运算的规则是当两个位相同时,结果为0,否则为1;此逻辑符常用于比较是否相同。~ 取补(取反)~运算的规则是当为1时结果为0,当为0时,结果为1。例如,将PA口全部取反。则PA^=PA;3、位移运算符符号 描述 << 左移 >> 右移 位移运算符作用于其左侧的变量,其右侧的表达式的值就是移动的位数,运算结果就是移动后的变量结果。 b=a<<2;
12、就是a的值左移两位并赋值为b。a本身的值并没有改变。 向左移位就是在低位上补0,向右移位就是在高位上补0。右移时可以保持结果的符号位,也就是右移时。如果最高位为1,是符号位,则补1而不是补0。例如:当a=01110010时若b=a<<2;结果为b=11001000若b=a>>2;结果为b=00011100当a=11110010时若b=a<<2;结果为b=11001011若b=a>>2;结果为b=11011100程序员常常对右移运算符来实现整数除法运算,对左移运算符来实现整数乘法运算。其中用
13、来实现乘法和除法的因子必须是2的幂次。二、AVR端口的控制1、AVR端口介绍2、AVR端口状态的定义3、端口操作4、按位进行操作1、AVR端口介绍AVR单片机拥有多个I/O口(input/output),其作用是读取数据,或者输出数据。不同型号的单片机的I/O口数量是不一样。如下图所示,MEGA8和MEGA128的引脚图。ATMega128ATMega82、AVR端口状态的定义I/O作为输入(读取)还是输出,都必须事先定义。以MEGA128为例,定义其PD端口(从PD0~PD7)为读取,则:DDRD=0x00;此时定义为读取状态。
14、可以读取按键信号,或者脉冲信号,或者用于计数器数脉冲等用途。如果是A/D功能引脚,还可以把模拟信号读取成数字信号(后续章节再提及模数转换)若换成PC端口,则将D改为C,PB,PA口依此类推若定义为输出,以MEGA128为例,定义其PC端口(从PC0~PC7)为输出,则:DDRC=0XFF;作为输出的时候,能够控制如LED,继电器的开启,电机的启动,或者输出方波等各种信号。3、端口操作当定义好I/O口的工作模式后,我们就可以控制端口了。例如:我们要读取PA的所有引脚的数据,则unsignedchara;//定义一个无符号的字符变量a
15、=PINA;//将PA口的值赋值给变量a;假如此时,PA的状态是01001000,则a获得该值。3、端口操作当我们需要对PORTC端口进行输出(例如控制LED灯),分别是PC0~PC3低电平,PC4~PC7高电平,则:PORTC=0XF0;(等效于
此文档下载收益归作者所有