内容提示:
编写自定义函数
变量的作用域
节省“主存储器”空间的变量设置方式
双重循环
建立自定义函数
函数:一组具有特定功能,并能被重复使用的代码
函数的调用:函数的名称,后面的小括号及括号内的参数。
函数通常放在调用语句之前,
示例:

示例改进:设置函数的参数与返回值

说明:void 表示函数没有返回值,若函数有返回值,必须把void改成返回值类型。
return 有终结程序执行的含义,凡卸载return后的语句将不会被执行。
return就是返回或传回的意思,
自定义函数的语法格式:

动手做8-1:建立自定义函数
实验说明:编写一个接受半径值的圆面积计算函数,并在“串口监视器”显示不同半径圆的面积
实验程序:

有些C语言规定,自定义函数一定要放在前面,假如要放在调用语句之后,程序的开头要加上函数原型(function prototype)声明

认识变量的作用域
局部变量:在函数内部声明的变量,作用域仅限于函数内部,而且只有在函数执行期间才存在;函数一旦执行完毕,局部变量将被删除。
全局变量:在函数外面定义的变量,能被所有的代码获得。
示例:

LED点阵屏简介
LED点阵屏(LED Matrix)是一种把数十个LED排列封装在一个方形模块的显示单元。
MAX7219的特点包含:
可同时驱动8个共阴极数码管(含小数点),或者一个共阴极8×8矩阵LED。
多个MAX7219可串联在一起,构成大型LED显示屏。
使用三条线串接Arduino(不用“输出”线,因为它不需要输出数据给微处理器),可驱动多组数码管或LED点阵。
只需外接一个电阻,即可限制每个LED的电流
MAX7219采用一种称为SPI的串行接口。
SPI(serial Peripheral Interface,串行外设接口),应用:SD内存卡、数字/模拟转换IC、LED控制芯片、佳能相机的EF接环镜头等
SPI 采用四条线连接主机和外设
SS:外设选择线(Slave Select),也称为CS(Chip Select,芯片选择线)。
输入0: 选取
输入1:未选
MOSI: 从主机向外设发送的数据线(Master OUTPUT, Slave Input)。
MISO: 从外设向主机发送的数据线(Master Input, Slave Output)
SCK: 串行时钟线(Serial Clock)。
Arduino的ATmega系列处理器内建SPI接口,位于数字10~13脚。
每个SPI外设都要单独连接一条【外设选择】线
全部SPI外设共用数据和时钟线。
主机要传送或接收数据之前,必须先将指定设备的SS脚设置为0,然后随着时钟信号将数据依序从MOSI传出,或从MISO传入,结束发送后,再将SS脚设置为1.
在采用ATmega328微控制器的Arduino板子上,SPI接口位于数字10~13脚,同时也和控制板右侧的ICSP(In-Circuit Serial Programming)端子相连。
在采用ATmega32U4微控制器的Arduino Leonardo控制器上,SPI接口只位于ICSP端子,而且其中的3个引脚相当于数字14-16脚。微控制器预设的外设选择线(SS)也是数字17脚,位于板子左侧,RX(串行接收)灯的左上角的一个焊接点。
时钟(clock)信号的用途,SPI装置的数据将跟着时钟的步调发送或接收。
MAX7219的主要脚位说明:
DIG0~DIG7:8条数据线,连接阴极(-),典型输入电流值330mA,极限值500mA
SEG A~G 和DP:数码管和小数点的连接线(阳极),也用于连接LED点阵屏的阳极。典型输出电流37mA,极限100mA。
ISET:连接LED限流电阻。电阻值的大小取决于LED的消耗电流和电压值
MAX7219的寄存器与数据传输格式
它的内保包含用于设置芯片状态,以及LED显示数据的寄存器
数据(digit)寄存器,8个,Digital0(简称D0)~ Digital7,分别存放LED点阵屏每一行的显示内容
显示强度(Intensity)寄存器:显示器的亮度除了通过VCC和ISET引脚之间的电阻来调整,也能通过此寄存器来设置,亮度范围0~15
显示检测(display test)寄存器:此寄存器设置为1,MAX7219将进入“测试”模式,所有的LED都会被点亮。
译码模式(decode mode)寄存器:设置是否用BCD译码功能,设置成0,代表不译码,用于驱动LED点阵屏。
停机(shutdown)寄存器:
扫描限制(scan limit)寄存器:设置扫描显示器的个数,可能值07,代表显示18个LED数码管,或者LED点阵屏中的1~8行
不运行(N0-Op)寄存器:用于串联多个MAX7219时,指定不运行的IC。
每个寄存器都有一个识别地址。

发数据给MAX7219的四个步骤

动手做8-3 在矩阵LED上显示音符图像
实验说明:
本实验借助“动手8-1”的成果,通过程序在LED点阵屏上显示音符图样。
实验程序:

内容提示:
编写自定义函数
变量的作用域
节省“主存储器”空间的变量设置方式
双重循环
建立自定义函数
函数:一组具有特定功能,并能被重复使用的代码
函数的调用:函数的名称,后面的小括号及括号内的参数。
函数通常放在调用语句之前,
示例:

示例改进:设置函数的参数与返回值

说明:void 表示函数没有返回值,若函数有返回值,必须把void改成返回值类型。
return 有终结程序执行的含义,凡卸载return后的语句将不会被执行。
return就是返回或传回的意思,
自定义函数的语法格式:

动手做8-1:建立自定义函数
实验说明:编写一个接受半径值的圆面积计算函数,并在“串口监视器”显示不同半径圆的面积
实验程序:

有些C语言规定,自定义函数一定要放在前面,假如要放在调用语句之后,程序的开头要加上函数原型(function prototype)声明

认识变量的作用域
局部变量:在函数内部声明的变量,作用域仅限于函数内部,而且只有在函数执行期间才存在;函数一旦执行完毕,局部变量将被删除。
全局变量:在函数外面定义的变量,能被所有的代码获得。
示例:

LED点阵屏简介
LED点阵屏(LED Matrix)是一种把数十个LED排列封装在一个方形模块的显示单元。
MAX7219的特点包含:
可同时驱动8个共阴极数码管(含小数点),或者一个共阴极8×8矩阵LED。
多个MAX7219可串联在一起,构成大型LED显示屏。
使用三条线串接Arduino(不用“输出”线,因为它不需要输出数据给微处理器),可驱动多组数码管或LED点阵。
只需外接一个电阻,即可限制每个LED的电流
MAX7219采用一种称为SPI的串行接口。
SPI(serial Peripheral Interface,串行外设接口),应用:SD内存卡、数字/模拟转换IC、LED控制芯片、佳能相机的EF接环镜头等
SPI 采用四条线连接主机和外设
SS:外设选择线(Slave Select),也称为CS(Chip Select,芯片选择线)。
输入0: 选取
输入1:未选
MOSI: 从主机向外设发送的数据线(Master OUTPUT, Slave Input)。
MISO: 从外设向主机发送的数据线(Master Input, Slave Output)
SCK: 串行时钟线(Serial Clock)。
Arduino的ATmega系列处理器内建SPI接口,位于数字10~13脚。
每个SPI外设都要单独连接一条【外设选择】线
全部SPI外设共用数据和时钟线。
主机要传送或接收数据之前,必须先将指定设备的SS脚设置为0,然后随着时钟信号将数据依序从MOSI传出,或从MISO传入,结束发送后,再将SS脚设置为1.
在采用ATmega328微控制器的Arduino板子上,SPI接口位于数字10~13脚,同时也和控制板右侧的ICSP(In-Circuit Serial Programming)端子相连。
在采用ATmega32U4微控制器的Arduino Leonardo控制器上,SPI接口只位于ICSP端子,而且其中的3个引脚相当于数字14-16脚。微控制器预设的外设选择线(SS)也是数字17脚,位于板子左侧,RX(串行接收)灯的左上角的一个焊接点。
时钟(clock)信号的用途,SPI装置的数据将跟着时钟的步调发送或接收。
MAX7219的主要脚位说明:
DIG0~DIG7:8条数据线,连接阴极(-),典型输入电流值330mA,极限值500mA
SEG A~G 和DP:数码管和小数点的连接线(阳极),也用于连接LED点阵屏的阳极。典型输出电流37mA,极限100mA。
ISET:连接LED限流电阻。电阻值的大小取决于LED的消耗电流和电压值
MAX7219的寄存器与数据传输格式
它的内保包含用于设置芯片状态,以及LED显示数据的寄存器
数据(digit)寄存器,8个,Digital0(简称D0)~ Digital7,分别存放LED点阵屏每一行的显示内容
显示强度(Intensity)寄存器:显示器的亮度除了通过VCC和ISET引脚之间的电阻来调整,也能通过此寄存器来设置,亮度范围0~15
显示检测(display test)寄存器:此寄存器设置为1,MAX7219将进入“测试”模式,所有的LED都会被点亮。
译码模式(decode mode)寄存器:设置是否用BCD译码功能,设置成0,代表不译码,用于驱动LED点阵屏。
停机(shutdown)寄存器:
扫描限制(scan limit)寄存器:设置扫描显示器的个数,可能值07,代表显示18个LED数码管,或者LED点阵屏中的1~8行
不运行(N0-Op)寄存器:用于串联多个MAX7219时,指定不运行的IC。
每个寄存器都有一个识别地址。

发数据给MAX7219的四个步骤

动手做8-3 在矩阵LED上显示音符图像
实验说明:
本实验借助“动手8-1”的成果,通过程序在LED点阵屏上显示音符图样。
实验程序:

举报