当前位置:文档之家› 单片机应用技术C语言任务2 彩灯循环控制器设计1

单片机应用技术C语言任务2 彩灯循环控制器设计1

识链接
下午10时25分5秒
2.1 工作任务
表2-1 彩灯循环控制器设计1工作任务要点
任务名称 彩灯循环控制器设计1
任务目标
进一步熟悉MCS-51单片机I/O口操作与控制; ★了解C51单片机程序设计的特点; ★掌握C51运算与表达式; ★掌握C51数据类型与程序结构; ★掌握C51存储器类型与存储器模式; ★熟悉函数的操作
2.1.2 任务内容
#include“reg51.h” delay(unsigned int x); ∥声明函 按图2-1连接好硬 数 void main(void) 件或在仿真环境 {unsigned char i; ∥定义循环变 (Proteus)中搭 量 P1=0x01; 建仿真环境。 while(1) {for(i=0;i<8;i++) ∥移位 2. 彩灯循环 {P1=P1<<1; ∥P1口数据左 控制器控制 移 delay(1000); ∥延时 程序 } P1=0x01; } } void delay(unsigned int x) {while(x) 下午10时25分5秒 《单片机应用技术》课件制作组 x--;
下午10时25分5秒 《单片机应用技术》课件制作组
2.1.3 任务分析
2. C51程序设计规范
在.c源程序文件中,应先使用“include”处理指令将 REG51.H头文件包含进来,否则程序是无法访问已定义 的寄存器或位。对于REG51.H头文件中没有定义的位可 以参照图2-2使用“sbit”关键字定义之即可。 C51遵循标准C语言程序设计规范,所有语句必须置于函 数里面,变量、常量等符号大小写不等价。函数在使用前 应先定义、声明后方能使用。 main函数是C语言中的主函数,是程序执行的起始位置, 并且一个项目文件中只能有一个main函数存在,所有函数 都必须被main调用方能执行——嵌套函数、C51中断函数 等除外。每一条C51语句必须以“;”结束,若为程序的 注释内容,则应使用“//xx”或“/*xx*/”开头。
《单片机应用技术》课件制作组

任务描述
设计彩灯模拟控制器,P1口外接8只发光二极管模 拟彩灯,使用C51编写C51程序,控制8个彩灯亮灭 循环 计算机、单片机仿真器、实验箱、学习板 C51单片机程序设计基础
任务载体 相关知识
下午10时25分5秒
《单片机应用技术》课件制作组
2.1.1 硬件电路及工作原理
1.硬件电路
下午10时25分5秒
下午10时25分6秒
#include“reg51.h” delay(unsigned int x); void main(void) {unsigned char i; P1=0x01; while(1) {for(i=0;i<8;i++) {P1=P1<<1; delay(1000); } P1=0x01; } } void delay(unsigned int x) {while(x) x--; }
3. 广告流水灯效果 的实现
下午10时25分6秒
《单片机应用技术》课件制作组
2.1.3 任务分析
3. 广告流水灯效果 的实现
使用for循环语句循环8次 后,D1~D8八个发光二极 管逐一亮灭了一次。由于 C语言中的移位运算符是 非循环移位,左移出来的 数据被丢弃,因此移位8 次后P1口变为“0x00”, 下一周开始时应重新给P1 口赋值0x01。
《单片机应用技术》课件制作组
2.1.1 硬件电路及工作原理
2.工作原理
发光二极管是共阴极接法,当P1口某 位输出逻辑“1”时点亮该位发光二 极管,反之输出为“0”时发光二极 管熄灭。用程序控制P1口各位的电平 状态,可以控制8只LED的不同亮灭 效果。
下午10时25分5秒
《单片机应用技术》课件制作组
任务2 彩灯循环控制器设计1
2.1 工作任务
2.1.1 硬件电路及工作原理 2.1.2 控制内容 2.1.3 任务分析 2.1.4 任务结论
2.2.1 概述 2.2.2 C51的运算符与表达式 2.2.3 C51的数据类型 2.2.4 程序结构 2.2.5 C51的存储器类型与存储器模式 2.2.6 函数
下午10时25分5秒 《单片机应用技术》课件制作组
2.1.3 任务分析
13~18行使用“sfr”关键字定义 MCS-51单片机寄存器,如P0、 P1、ACC等。通过“sfr”关键 字的定义,在C51程序中即可 像在汇编语言中使用寄存器名 助记符一样使用这些符号,实 现单片机寄存器的读写操作。
21~23行使用“sbit”关键字定 义MCS-51单片机的位,这样 在C51程序设计中即可直接使 用这些符号来操作单片机的位。
1.硬件连接
2.1.3 任务分析
1. C51单片机编程语言
C51是基于标准C语言下的一种嵌入式MCS-51单片机编 程语言,其继承了标准C语言的所有特点,通过扩充, C51可以访问MCS-51单片机中的所有寄存器、I/O口引 脚及所有可位寻址的控制位,以实现位操作。
2. C51程序设计规范
使用C51进行程序设计时,通过访问单片机的寄存器 实现对其内部硬件的操作,因此应先定义寄存器的名 字。REG51.H头文件包含了8051单片机的所有寄存 器及其位的定义。打开该文件,其源文件内容如图22所示。
下午10时25分6秒 《单片机应用技术》课件制作组
2.1.3 任务分析
#include“reg51.h” delay(unsigned int x); void main(void) {unsigned char i; 给P1口的每个位逐一送 P1=0x01; “1”,并循环,先将 while(1) {for(i=0;i<8;i++) “0x01”送往P1口,使得 {P1=P1<<1; D1发光二极管点亮,延 delay(1000); 时; } P1=0x01; } 然后将送往P1口的“0x01” } 数字向左移动一位,变成 void delay(unsigned int x) {while(x) 0x02,这样D2发光二极 x--; 管亮,并延时 }
相关主题