总数:112 | 当前第7/12 首页 上一页 3 4 5 6 7 8 9 10 11 12 下一页 尾页
第04讲C语言的流水灯验证(上)_手把手教你学单片机之AVR入门篇
C语言的流水灯验证,手把手教你学单片机之AVR入门篇!本讲内容: AVR的IO口简介与寄存器的概念 IO口设置为输出状态 循环语句、C语言的流水灯验证 蜂鸣器 何谓“寄存器寄存器就是RAM中的一些特殊单元,映射片上外设的特殊功能 何谓“IO口” 可以将“0”与“1”转换为电压信号的端口 单片机中最常用的TTL电平:0V代表“0”,+5V代表“1” Mega16有4个IO口:PA,PB,PC,PD IO口的性能指标 灌电流能力:能够流入IO口的最大电流 拉电流能力:能够从IO口流出的最大电流 上拉电阻与下拉电阻 最大输入电压 IO口与IO寄存器的映射(x代表A~D) 方向寄存器:DDRx 数据寄存器:PORTx 输入寄存器:PINx C语言变量与寄存器的映射 io.h这个文件中将所有寄存器映射为同名的变量,对这些变量的读写相当于对寄存器的读写 输出状态IO寄存器设置 DDRx某一位置1,相应位的IO口被设置为输出 PORTx某一位置1或0,对应IO口相应位的电平高低
  1. 2010/5/17
  2. 人气(5262)
  3. 星级(10)
  4. 评论(0)
第04讲C语言的流水灯验证(下)_手把手教你学单片机之AVR入门篇
C语言的流水灯验证,手把手教你学单片机之AVR入门篇!8位流水灯可用于指示8位二进制数 对IO寄存器进行移位运算,即可实现流水灯效果 循环语句 while语句 for语句 各种运算符的流水灯验证 赋值= 加+ 减– 乘* 除/ 括号() 求余% 与& 或| 取反~ 异或^ 左移<< 右移>> 逻辑与&& 逻辑或||逻辑非!
  1. 2010/5/17
  2. 人气(5969)
  3. 星级(10)
  4. 评论(0)
第3章(11):单片机硬件系统MCS51指令系统
寻址方式 寻找操作数存放单元的地址的方式,共6种方式。 1、立即数寻址 所要找的操作数是一二进制数或十进制数,出现在指令中,用“#”作前缀 MOV A,#20H 2、寄存器寻址 操作数存放在工作寄存器R0 ~ R7中,或寄存器B中。 MOV A,R2 3、直接寻址 指令中直接给出操作数的地址。 MOV A,30H MOV 30H,DPH 4、寄存器间接寻址 指令中寄存器的内容作为操作数存放的地址,指令中间接寻址寄存器前用 “@”表示前缀。 举“两个抽屉,两把钥匙”的例子。 MOV R0,#30H MOV A,@R0 MOV A,#20H MOV R1,#40H MOV @R1,A 5、变址寻址 操作数地址 = 变地址 + 基地址 基地址寄存器 DPTR 或 PC 变址寄存器 @A 该寻址方式常用于访问程序存储器,查表。 MOV A,@A + DPTR 6、相对寻址 把指令中给定的地址偏移量与本指令所在单元地址(PC内容)相加得到真正有效的操作数所存放的地址。 举“李同学20岁,张同学比李同学大3岁”的例子。 JC 60H ;设(PC) = 2000H, 则当C = 1时, 转移的目的地址 = (PC)+ 2 + 60H
  1. 2010/4/26
  2. 人气(7330)
  3. 星级(10)
  4. 评论(2)
第3章(12):单片机硬件系统MCS51指令系统
寻址方式 寻找操作数存放单元的地址的方式,共6种方式。 1、立即数寻址 所要找的操作数是一二进制数或十进制数,出现在指令中,用“#”作前缀 MOV A,#20H 2、寄存器寻址 操作数存放在工作寄存器R0 ~ R7中,或寄存器B中。 MOV A,R2 3、直接寻址 指令中直接给出操作数的地址。 MOV A,30H MOV 30H,DPH 4、寄存器间接寻址 指令中寄存器的内容作为操作数存放的地址,指令中间接寻址寄存器前用 “@”表示前缀。 举“两个抽屉,两把钥匙”的例子。 MOV R0,#30H MOV A,@R0 MOV A,#20H MOV R1,#40H MOV @R1,A 5、变址寻址 操作数地址 = 变地址 + 基地址 基地址寄存器 DPTR 或 PC 变址寄存器 @A 该寻址方式常用于访问程序存储器,查表。 MOV A,@A + DPTR 6、相对寻址 把指令中给定的地址偏移量与本指令所在单元地址(PC内容)相加得到真正有效的操作数所存放的地址。 举“李同学20岁,张同学比李同学大3岁”的例子。 JC 60H ;设(PC) = 2000H, 则当C = 1时, 转移的目的地址 = (PC)+ 2 + 60H
  1. 2010/4/26
  2. 人气(6907)
  3. 星级(10)
  4. 评论(1)
第3章(9):单片机硬件系统MCS51指令系统
MCS-51系列单片机的指令系统 111条指令,共分五大类: 数据传送类;(29条) 算术运算类;(24条) 逻辑运算类;(24条) 控制转移类;(17条) 位操作类。(17条) 指令中操作数的描述符号: Rn —— 工作寄存器R0 ~ R7 Ri —— 间接寻址寄存器R0、R1 Direct —— 直接地址,包括内部128B RAM单元地址、26个SFR地址。 #data —— 8位常数 #data 16 —— 16位常数 addr 16 —— 16位目的地址 addr 11 —— 11位目的地址 rel —— 8位带符号的偏移地址 DPTR —— 16位外部数据指针寄存器 bit —— 可直接位寻址的位 A —— 累加器 B —— 寄存器B C —— 进、借位标志位,或位累加器 @ —— 间接寄存器或基址寄存器的前缀 / —— 指定位求反 (x)—— x中的内容 ((x))—— x中的地址中的内容 $ —— 当前指令存放的地址
  1. 2010/4/23
  2. 人气(8341)
  3. 星级(10)
  4. 评论(3)
第3章(10):单片机硬件系统MCS51指令系统
MCS-51系列单片机的指令系统 111条指令,共分五大类: 数据传送类;(29条) 算术运算类;(24条) 逻辑运算类;(24条) 控制转移类;(17条) 位操作类。(17条) 指令中操作数的描述符号: Rn —— 工作寄存器R0 ~ R7 Ri —— 间接寻址寄存器R0、R1 Direct —— 直接地址,包括内部128B RAM单元地址、26个SFR地址。 #data —— 8位常数 #data 16 —— 16位常数 addr 16 —— 16位目的地址 addr 11 —— 11位目的地址 rel —— 8位带符号的偏移地址 DPTR —— 16位外部数据指针寄存器 bit —— 可直接位寻址的位 A —— 累加器 B —— 寄存器B C —— 进、借位标志位,或位累加器 @ —— 间接寄存器或基址寄存器的前缀 / —— 指定位求反 (x)—— x中的内容 ((x))—— x中的地址中的内容 $ —— 当前指令存放的地址
  1. 2010/4/23
  2. 人气(7217)
  3. 星级(10)
  4. 评论(3)
第3章(7):单片机硬件系统MCS51指令系统
以直接地址为目的操作数的指令(5条) 这组指令的功能是把源操作数指定的内容送到由直接地址data所选定的片内RAM中。有直接。立即。寄存器寄存器间接4种寻址方式: MOV data,data ;(data)→(data)直接地址单元中的内容送到直接地址单元 MOV data,#data ;#data→(data)立即数送到直接地址单元 MOV data,A ;(A)→(data)累加器A中的内容送到直接地址单元 MOV data,Rn ;(Rn)→(data)寄存器Rn中的内容送到直接地址单元 MOV data,@Ri ;((Ri))→(data)寄存器Ri中的内容指定的地址单元中数据送到直接地址单元
  1. 2010/4/21
  2. 人气(7066)
  3. 星级(10)
  4. 评论(2)
第3章(8):单片机硬件系统MCS51指令系统
7].堆栈操作类指令(2条) 这4类指令的作用是把直接寻址单元的内容传送到堆栈指针SP所指的单元中,以及把SP所指单元的内容送到直接寻址单元中。这类指令只有两条,下述的第一条常称为入栈操作指令,第二条称为出栈操作指令。需要指出的是,单片机开机复位后,(SP)默认为07H,但一般都需要重新赋值,设置新的SP首址。入栈的第一个数据必须存放于SP+1所指存储单元,故实际的堆栈底为SP+1所指的存储单元。 PUSH data ;(SP)+1→(SP),(data)→(SP)堆栈指针首先加1,直接寻址单元中的数据送到堆栈指针SP所指的单元中 POP data ;(SP)→(data)(SP)-1→(SP),堆栈指针SP所指的单元数据送到直接寻址单元中,堆栈指针SP再进行减1操作 [8].交换指令(5条) 这5条指令的功能是把累加器A中的内容与源操作数所指的数据相互交换。 XCH A,Rn ;(A)←→(Rn)累加器与工作寄存器Rn中的内容互换 XCH A,@Ri ;(A)←→((Ri))累加器与工作寄存器Ri所指的存储单元中的内容互换 XCH A,data ;(A)←→(data)累加器与直接地址单元中的内容互换 XCHD A,@Ri ;(A3-0)←→((Ri)3-0)累加器与工作寄存器Ri所指的存储单元中的内容低半字节互换 SWAP A ;(A3-0)←→(A7-4)累加器中的内容高低半字节互换 [9]. 16位数据传送指令(1条) 这条指令的功能是把16位常数送入数据指针寄存器。 MOV DPTR,#data16 ;#dataH→(DPH),#dataL→(DPL)16位常数的高8位送到DPH,低8位送到DPL算术运算指令共有24条,算术运算主要是执行加。减。乘。除法四则运算。另外MCS-51指令系统中有相当一部分是进行加。减1操作,BCD码的运算和调整,我们都归类为运算指令。虽然MCS-51单片机的算术逻辑单元ALU仅能对8位无符号整数进行运算,但利用进位标志C,则可进行多字节无符号整数的运算。同时利用溢出标志,还可以对带符号数进行补码运算。需要指出的是,除加。减1指令外,这类指令大多数都会对PSW(程序状态字)有影响。这在使用中应特别注意。
  1. 2010/4/21
  2. 人气(7426)
  3. 星级(10)
  4. 评论(1)
第3章(5):单片机硬件系统MCS51指令系统
[4].立即寻址 立即寻址就是把操作数直接在指令中给出,即操作数包含在指令中,指令操作码的后面紧跟着操作数,一般把指令中的操作数称为立即数,因此而得名。为了与直接寻址方式相区别,在立即数前加上“#”符号,例如: MOVX A,#0EH 这条指令的意义是将0EH这个操作数送到累加器A中。 [5].变址寻址 变址寻址是以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,将两寄存器的内容相加形成16位地址形成操作数的实际地址。例如: MOV A,@A+DPTR MOVX A,@A+PC JMP @A+DPTR 在这三条指令中,A作为偏移量寄存器,DPTR或PC作为变址寄存器,A作为无符号数与DPTR或PC的内容相加,得到访问的实际地址。其中前两条是程序存储器读指令,后一条是无条件转移指令。 [6].位寻址 在MCS-51单片机中,RAM中的20H—2FH字节单元对应的位地址为00H—7FH,特殊功能寄存器中的某些位也可进行为寻址,这些单元既可以采用字节方式访问它们,也可采用位寻址的方式访问它们。 [7].相对寻址 相对寻址方式是为了程序的相对转移而设计的,其夜里是以PC的内容为基址,加上给出的偏移量作为转移地址,从而实现程序的转移。转移的目的地址可参见如下表达式: 目的地址=转移指令地址+转移指令字接数+偏移量 值得注意的是,偏移量是有正负号之分的,偏移量的取值范围是当前PC值的-128—+127之间。 数据传送指令共有29条,数据传送指令一般的操作是把源操作数传送到目的操作数,指令执行完成后,源操作数不变,目的操作数等于源操作数。如果要求在进行数据传送时,目的操作数不丢失,则不能用直接传送指令,而采用交换型的数据传送指令,数据传送指令不影响标志C,AC和OV,但可能会对奇偶标志P有影响。
  1. 2010/4/15
  2. 人气(7152)
  3. 星级(10)
  4. 评论(2)
第3章(6):单片机硬件系统MCS51指令系统
[1].以累加器A为目的操作数类指令(4条) 这4条指令的作用是把源操作数指向的内容送到累加器A。有直接。立即数。寄存器寄存器间接寻址方式: MOV A,data ;(data)→(A)直接单元地址中的内容送到累加器A MOV A,#data ;#data→(A)立即数送到累加器A中 MOV A,Rn ;(Rn)→(A) Rn中的内容送到累加器A中 MOV A,@Ri ;((Ri))→(A) Ri内容指向的地址单元中的内容送到累加器A [2].以寄存器Rn为目的操作数的指令(3条) 这3条指令的功能是把源操作数指定的内容送到所选定的工作寄存器Rn中。有直接。立即和寄存器寻址方式: MOV Rn,data ;(data)→(Rn)直接寻址单元中的内容送到寄存器Rn中 MOV Rn,#data ;#data→(Rn)立即数直接送到寄存器Rn中 MOV Rn,A ;(A)→(Rn)累加器A中的内容送到寄存器Rn中 [3].以直接地址为目的操作数的指令(5条) 这组指令的功能是把源操作数指定的内容送到由直接地址data所选定的片内RAM中。有直接。立即。寄存器寄存器间接4种寻址方式: MOV data,data ;(data)→(data)直接地址单元中的内容送到直接地址单元 MOV data,#data ;#data→(data)立即数送到直接地址单元 MOV data,A ;(A)→(data)累加器A中的内容送到直接地址单元 MOV data,Rn ;(Rn)→(data)寄存器Rn中的内容送到直接地址单元 MOV data,@Ri ;((Ri))→(data)寄存器Ri中的内容指定的地址单元中数据送到直接地址单元
  1. 2010/4/15
  2. 人气(6781)
  3. 星级(10)
  4. 评论(1)
总数:112 | 当前第7/12 首页 上一页 3 4 5 6 7 8 9 10 11 12 下一页 尾页