RB-101机器人主板四小灯控制
这是从MCS51转到AVR后的第一个单片机程序,该程序是控制RB-101 机器人主板上的四个LED循环的闪烁。
其实用C语言编写单片机的好处就在于此,更换硬件本身并不需要花太多的时间去了解其中汇编命令的改变,只需要了解其中一些特殊保留字的改变。
注:AVR单片机是Reduced Instruction Set Computer(RISC)精简指令集计算机(类似AMD的CPU结构)
MCS51是Complex Instruction Set Computer(CISC)复杂指令集计算机(类似Intel的CPU结构)
1 //RB-101 机器人4小灯测试程序
2 //2005年6月25日 彭斌
3
4 #include <mega8515.h> //头文件
5 #include <delay.h> //延时头程序调用,该文件已经存在于CodeVisionAVR里 ,安装后就有。
6 #include <stdio.h> //一些常用函数的头文件调用
7
8 //主函数入口
9 void main(void)
10 {
11 //DDRxn 定义引脚方向,“1” 为输出,“0”为输入。
12
13 //由于RB-101主电路板上四小灯所接引脚为PORTB.6 PORTB.7 PORTC.6 PORTC.7
14 //因此,需要给PB、PC口的6、7位即DDRB.6、DDRB.7、DDRC.6、DDRC.7定义为电平输出
15
16 DDRB=0B11000000; //这里使用二进制赋值,同时DDRxn也支持位赋值,例:DDRB.6=1
17 DDRC=0B11000000;
18
19 //执行一个死循环,连续使小灯闪动.
20 while(1)
21 {
22 PORTB=0B11000000; //PB6、PB7输出高电平。这里使用二进制赋值,同时DDRxn也支持位赋值,例:PORTB.6=1
23 PORTC=0B11000000; //PC6、PC7输出高电平
24
25 //调用延时程序
26 delay_ms(1000); //延时1000毫秒,也就是1S
27
28 PORTB=0B00000000; //PB6、PB7输出低电平
29 PORTC=0B00000000; //PC6、PC7输出低电平
30
31 //再次调用延时程序
32 delay_ms(1000); //延时1000毫秒,也就是1S
33
34 }
35
36 }
2 //2005年6月25日 彭斌
3
4 #include <mega8515.h> //头文件
5 #include <delay.h> //延时头程序调用,该文件已经存在于CodeVisionAVR里 ,安装后就有。
6 #include <stdio.h> //一些常用函数的头文件调用
7
8 //主函数入口
9 void main(void)
10 {
11 //DDRxn 定义引脚方向,“1” 为输出,“0”为输入。
12
13 //由于RB-101主电路板上四小灯所接引脚为PORTB.6 PORTB.7 PORTC.6 PORTC.7
14 //因此,需要给PB、PC口的6、7位即DDRB.6、DDRB.7、DDRC.6、DDRC.7定义为电平输出
15
16 DDRB=0B11000000; //这里使用二进制赋值,同时DDRxn也支持位赋值,例:DDRB.6=1
17 DDRC=0B11000000;
18
19 //执行一个死循环,连续使小灯闪动.
20 while(1)
21 {
22 PORTB=0B11000000; //PB6、PB7输出高电平。这里使用二进制赋值,同时DDRxn也支持位赋值,例:PORTB.6=1
23 PORTC=0B11000000; //PC6、PC7输出高电平
24
25 //调用延时程序
26 delay_ms(1000); //延时1000毫秒,也就是1S
27
28 PORTB=0B00000000; //PB6、PB7输出低电平
29 PORTC=0B00000000; //PC6、PC7输出低电平
30
31 //再次调用延时程序
32 delay_ms(1000); //延时1000毫秒,也就是1S
33
34 }
35
36 }
由于是给我弟弟入门用的,所以添加了很多注释
相关操作的屏幕录像请在这里下载: RB-101-4LED