AVR学习笔记十五、数码管驱动和键盘控制芯片CH452实验

AVR学习笔记十五、数码管驱动和键盘控制芯片CH452实验
AVR学习笔记十五、数码管驱动和键盘控制芯片CH452实验

A VR学习笔记十五、数码管驱动和键盘控制芯片CH452A实验

-------基于LT_Mini_M16

15.1数码管驱动和键盘控制芯片CH452A实验

15.1.1 实例功能

前面我们已经学习了4位数码管显示的例子,但是仅仅4位数码管显示电路就占用了12个I/O口,如果数码管超过4位的话,占用的I/O口数目就会更多,我们知道单片机的I/O口资源是很有限的,那么能不能使用更少的I/O口来控制更多的数码管显示呢?

方法是有的,且有很多,比如我们可以使用串口转并口芯片74HC595,74HC164,74HC165等,关于这些芯片的使用,我们会在以后的学习中逐步学习的,今天我们来认识一种更加方便的数码管驱动芯片CH452,这个芯片能够在只占用4个甚至两个I/O口的情况下驱动8位数码管显示,同时这种芯片还能在驱动8位数码管现实的同时实现8X8共计64个按键的识别。

也就是说这个芯片只用单片机的最多4个I/O口就能够同时驱动8位数码管显示和识别64个按键。

本实例共有3个功能模块,分别描述如下:

●单片机系统:使用ATmega16单片机的4个I/O口控制CH452芯片,实现8位数码管的显示。

●外围电路:CH452驱动数码管显示电路。

●软件程序:熟悉掌握ATmega16单片机的I/O口输出应用。

通过本实例的学习,掌握相关电路设计,并掌握以下知识点:

●了解芯片CH452的功能

●掌握单片机I/O口实现时序转换的编程方法。

15.1.2、器件和原理

本实例介绍数码管驱动和键盘控制芯片CH452的简单应用。关于本芯片实现8X8=64个按键的原理和方法,我们在以后的学习中在进行讨论,本实例中只介绍该芯片驱动8位共阴极数码管的功能。

1、器件介绍

CH452是数码管驱动和键盘控制芯片,可以动态驱动8位数码管或者64个LED发光二极管,还可以驱动64级光柱。该芯片与单片机的接口有4线和2线两种接口方式,其中4线接口支持芯片的无限级联,而2线方式兼容I2C总线。

CH452同时还提供高电平复位和低电平复位两种信号,可以直接为单片机提供复位信号。

CH452A的封装图如下

2、管脚介绍

CH452A有28个引脚,其中管脚15-22是数码管的段控制引脚,分别对应a,b,c,d,e,f,g,dp8段,管脚1-8是位控制引脚,分别控制0-7的8位数码管。

与单片机的4线连接引脚分别是SCL、SDA、LOAD、DOUT,这四个脚的作用分别是:串行数据输入端口SDA,串行时钟输入端口SCL,数据加载端口LOAD,键值输出端口INT#。

RST、RST#、RSTI是三个复位信号引脚,其中RST输出高电平有效分、的复位信号,RST#输出低电平有效的复位信号,RSTI是手动复位引脚,高电平有效。

H3L2是数据通讯方式选择端,该端口接高电平(或者悬空),选择4线接口方式,连接低电平则选择2线接口方式。

3、4线接口方式驱动8位数码管工作原理

4线接口方式用到SCL、SDA、LOAD、INT#这四个引脚,其中DOUT用于输出按键键值,本实例中我们不分析按键的接法,所以这个引脚不予考虑。

SDA用于用于单片机向CH452A芯片提供串行数据,高电平表示数据1,低电平表示数据0,串行数据输入的顺序是先低位后高位;

SCL用于提供串行时钟,CH452在SCL的上升沿读入数据,在下降沿将数据从DOUT

引脚送出;

LOAD用于加载串行数据,CH452在其上升沿加载移位寄存器中的数据,并将移位寄存器中的数据作为操作命令分析并处理,也就是说,LOAD的上升沿是串行数据帧的完成标志,此时无论移位寄存器中的数据是否有效,CH452A都会将其当做操作命令进行处理。

Ch452a的内部移位寄存器是12位的,即单片机每次向CH452A发送的操作指令必须是12位的,数据的发送顺序是先发送低位,后发送高位。

单片机向DH452传输数据数据的过程是:

1)通过引脚SDA发送一位数据(最低位),然后在SCL引脚上产生一个上升沿,使数据写入移位寄存器;

2)以同样的方式,依次写入剩余的11位数据;

3)在LOAD引脚产生一个上升沿,使CH452A加载数据(处理并显示)。

4、操作命令

CH452的操作命令均为12位,具体的操作命令请参阅数据手册。

15.1.3、电路

本实例的电路与数据手册上的电路一致,只不过是将单片机从51单片机换成了A VR 单片机。数码管采用的是共阴极的数码管。

电路连接

电路中单片机的PB0、PB1、PB2端口分别连接CH452A的SDA、SCL、LOAD三个管脚。

5.1.4、程序设计

1、程序功能

程序的功能是通过单片机的PB0、PB1、PB2这三个端口控制CH452实现驱动8位数码管显示。

2、程序流程

在程序中使用宏定义实现了相关端口的高低电平变换;同时定义了ch452a芯片的操作命令,这样在程序中方便调用。

程序中首先对ch452进行了相应的设置,然后让8个数码管分别显示1-8这8个数字,同时实现了控制其中一位数码管闪烁的功能,最后分别使用了左移和循环左移这两条命令让8位数码管现实的数字“流动”起来.

3、熔丝设置

本实例使用内部1MHz的时钟频率,程序烧录时请正确设置相应熔丝位。

4、程序代码

/***********************************************

**** AVR使用范例数码管驱动及键盘控制芯片CH452A ***

**** MCU: ATmega16 ***

**** 作者: maweili ***

**** 编译器:usbisp ***

**** ***

**** 2009.7.29 ***

***********************************************/

//头文件包含

#include //io端口寄存器配置文件,必须包含

#include //GCC中的延时函数头文件

//端口连接

#define ch452_sda PB0 //数据端口

#define ch452_scl PB1 //时钟端口

#define ch452_load PB2 //数据加载端口

//位操作

#define ch452_sda_set (PORTB |= 1 << PB0) //数据端口输出高电平

#define ch452_sda_clr (PORTB &= ~(1 << PB0)) //数据端口输出低

#define ch452_scl_set (PORTB |= 1 << PB1) //时钟端口输出高

#define ch452_scl_clr (PORTB &= ~(1 << PB1)) //时钟端口输出低

#define ch452_load_set (PORTB |= 1 << PB2) //数据加载端口输出高

#define ch452_load_clr (PORTB &= ~(1 << PB2)) //数据加载端口输出低

//命令码

/* CH451和CH452的常用命令码 */

#define CH452_NOP 0x0000 // 空操作

#define CH452_RESET 0x0201 // 复位

#define CH452_LEVEL 0x0100 // 加载光柱值,需另加7位数据

#define CH452_CLR_BIT 0x0180 // 段位清0,需另加6位数据

#define CH452_SET_BIT 0x01C0 // 段位置1,需另加6位数据

#define CH452_SLEEP 0x0202 // 进入睡眠状态

#define CH452_LEFTMOV 0x0300 // 设置移动方式-左移

#define CH452_LEFTCYC 0x0301 // 设置移动方式-左循环

#define CH452_RIGHTMOV 0x0302 // 设置移动方式-右移

#define CH452_RIGHTCYC 0x0303 // 设置移动方式-右循环

#define CH452_SELF_BCD 0x0380 // 自定义BCD码,需另加7位数据

#define CH452_SYSOFF 0x0400 // 关闭显示、关闭键盘系统参数设定

#define CH452_SYSON1 0x0401 // 开启显示

#define CH452_SYSON2 0x0403 // 开启显示、键盘

#define CH452_SYSON2W 0x0423 // 开启显示、键盘, 真正2线接口

#define CH452_NO_BCD 0x0500 // 设置默认显示方式,可另加3位扫描极限

#define CH452_BCD 0x0580 // 设置BCD译码方式,可另加3位扫描极限

#define CH452_TWINKLE 0x0600 // 设置闪烁控制,需另加8位数据

#define CH452_GET_KEY 0x0700 // 获取按键,返回按键代码

#define CH452_DIG0 0x0800 // 数码管位0显示,需另加8位数据

#define CH452_DIG1 0x0900 // 数码管位1显示,需另加8位数据

#define CH452_DIG2 0x0a00 // 数码管位2显示,需另加8位数据

#define CH452_DIG3 0x0b00 // 数码管位3显示,需另加8位数据

#define CH452_DIG4 0x0c00 // 数码管位4显示,需另加8位数据#define CH452_DIG5 0x0d00 // 数码管位5显示,需另加8位数据#define CH452_DIG6 0x0e00 // 数码管位6显示,需另加8位数据#define CH452_DIG7 0x0f00 // 数码管位7显示,需另加8位数据

// BCD译码方式下的特殊字符

#define CH452_BCD_SPACE 0x10

#define CH452_BCD_PLUS 0x11

#define CH452_BCD_MINUS 0x12

#define CH452_BCD_EQU 0x13

#define CH452_BCD_LEFT 0x14

#define CH452_BCD_RIGHT 0x15

#define CH452_BCD_UNDER 0x16

#define CH452_BCD_CH_H 0x17

#define CH452_BCD_CH_L 0x18

#define CH452_BCD_CH_P 0x19

#define CH452_BCD_DOT 0x1A

#define CH452_BCD_SELF 0x1E

#define CH452_BCD_TEST 0x88

#define CH452_BCD_DOT_X 0x80

// 有效按键代码

#define CH452_KEY_MIN 0x40

#define CH452_KEY_MAX 0x7F

// 2线接口的CH452定义

#define CH452_I2C_ADDR0 0x40 // CH452的ADDR=0时的地址

#define CH452_I2C_ADDR1 0x60 // CH452的ADDR=1时的地址,默认值

#define CH452_I2C_MASK 0x3E // CH452的2线接口高字节命令掩码

// 对外子程序

extern unsigned char CH452_Read(void); // 从CH452读取按键代码extern void CH452_Write(unsigned short cmd); // 向CH452发出操作命令

int main(void) //GCC中main文件必须为返回整形值的函数,没有参数

{

unsigned char temp;

PORTB = 0x07; //PB0\PB1\PB2为输出高电平

DDRB = 0x07; //PB0\PB1\PB2为输出方向,分别是数据、时钟、数据加载线

CH452_Write(CH452_RESET); //复位

CH452_Write(CH452_NOP); // 空操作

CH452_Write(CH452_CLR_BIT); //段位地址清零

CH452_Write(CH452_SYSON1); //开显示

CH452_Write(CH452_BCD); //BCD译码方式送显示数据

CH452_Write(CH452_DIG7 | 1); //数码管0-7位分别显示数字1-8

CH452_Write(CH452_DIG6 | 2); //

CH452_Write(CH452_DIG5 | 3); //

CH452_Write(CH452_DIG4 | 4); //

CH452_Write(CH452_DIG3 | 5); //

CH452_Write(CH452_DIG2 | 6); //

CH452_Write(CH452_DIG1 | 7);

CH452_Write(CH452_DIG0 | 8); // 显示字符8

CH452_Write(CH452_TWINKLE | 0x01); //数码管0闪烁

for(temp =0;temp < 40;temp++)

{

_delay_ms(50);

}

CH452_Write(CH452_TWINKLE | 0x00); //停止闪烁

while(1)

{

CH452_Write(CH452_LEFTCYC); //循环左移

//CH452_Write(CH452_LEFTMOV); //不循环,左移

for(temp =0;temp < 20;temp++)

{

_delay_ms(50);

}

}

}

void CH452_Write(unsigned short cmd)

{

unsigned char temp;

for(temp = 0;temp < 12;temp++) //送12位命令字

{

if(cmd & 0x01)

{

ch452_sda_set; //低位先传送,如果低位为1,数据端口输出高电平}

else

{

ch452_sda_clr; //低位为0,数据端口输出高电平低电平

}

ch452_scl_clr; //时钟端口置低

cmd >>= 1; //数据右移一位

ch452_scl_set; //数据端口置高,产生一个上升沿,发送数据}

ch452_load_clr; //数据加载端口产生一个上升沿,加载数据

_delay_ms(10); //

ch452_load_set; //

}

实验三 数码管显示实验

实验十九数码管显示实验 一、实验目的 1、了解数码管的显示原理; 2、掌握数码管显示的编程方法。 二、实验内容 1、编写数码管显示程序,循环显示0-F字符 三、实验设备 1、硬件: JX44B0实验板; PC机; JTAG仿真器; 2、软件: PC机操作系统(WINDOWS 2000); ARM Developer Suite v1.2; Multi-ICE V2.2.5(Build1319); 四、基础知识 1、掌握在ADS集成开发环境中编写和调试程序的基本过程。 2、了解ARM 应用程序的框架结构; 3、了解数码管的显示原理; 五、实验说明 1、LED显示原理 发光二极管数码显示器简称LED显示器。LED显示器具有耗电低、成本低、配置简单灵活、安装方便、耐震动、寿命长等优点,目前广泛应用于各类电子设备之中。 7段LED由7个发光二极管按“日”字排列。所有发光二极管的阳极连接在一起称共阳极接法,阴极连接在一起称为共阴极接法。一般共阴极可以不需要外接电阻。 其中各二极管的排列如上图在共阳极接法中,如果显示数字“5”,需要在a、c、d、f、g端加上高电压,其它加低电压。这样如果按照dp、g、fe、d、c、b、a的顺序排列的话对应的码段是:6DH。其它的字符同理可以得到。

2、数码管显示驱动 数码管的显示一般有动态显示和静态显示两大类,另外按照驱动方式又分串行驱动和并行驱动两种方式。串行驱动主要是提供串-并转换,减少控制线数量;并行驱动对每一个段提供单独的驱动,电路相对简单。这方面参看数字电路相关内容。 下面主要介绍静态显示和动态显示: 1)静态显示: LED数码管采用静态接口时,共阴极或共阳极节点连接在一起地或者接高电平。每个显示位的段选线与一个8位并行口线相连,只要在显示位上的段选位保持段码电平不变,则该位就能保持相应的显示字符。这里的8位并行口可以直接采用并行I/O口,也可以采用串行驱动。相应的电路如下: 很明显采用静态显示方式要求有较多的控制端(并行)或较复杂的电路(串行)。但是在设计中对器件的要求低。

AVR学习笔记十九、4X4矩阵键盘实验

A VR学习笔记十九、4X4矩阵键盘实验 19.1 实例功能 在前面的实例中我们已经学习了在单片机系统中检测独立式按键的接口电路和程序设计,独立式按键的每个按键占用1位I/O口线,其状态是独立的,相互之间没有影响,只要单独测试链接案件的I/O口线电平的高低就能判断键的状态。独立式按键电路简单、配置灵活,软件结构也相对简单。此种接口方式适用于系统需要按键数目较少的场合。在按键数量较多的情况下,如系统需要8个以上按键的键盘时,采用独立式接口方式就会占用太多的I/O口,这对于I/O口资源不太丰富的单片机系统来说显得相当浪费,那么当按键数目相对较多的时候,为了减少I/O口资源的占用,应该采取什么样的方式才能够既满足多按键识别,又减少I/O口的占用呢? 当然我们可以采用端口扩展器件比如串并转换芯片实现单片机I/O口的扩展,但是这种方式既增加了电路的复杂性,又增加了系统的成本开销。有没有比较经济实惠的方法呢? 事实上,在实际引用中我们经常采用矩阵式键盘的方式来节约I/O口资源和系统成本。 在这个实验中,我们采用4X4矩阵键盘来实现使用8个I/O口识别16个按键的实验,本实例分为三个功能模块,分别描述如下: ●单片机系统:利用A Tmega16单片机与矩阵键盘电路实现多按键识别。 ●外围电路:4X4矩阵键盘电路、LED数码管显示电路。 ●软件程序:编写软件,实现4X4矩阵键盘识别16个按键的程序。 通过本实例的学习,掌握以下内容: ●4X4矩阵键盘的电路设计和程序实现。 19.2 器件和原理 19.2.1 矩阵键盘的工作原理和扫描确认方式 当键盘中按键数量较多时,为了减少对I/O口的占用,通常将按键排列成矩阵形式,也称为行列键盘,这是一种常见的连接方式。矩阵式键盘接口见图1所示,它由行线和列线组成,按键位于行、列的交叉点上。当键被按下时,其交点的行线和列线接通,相应的行线或列线上的电平发生变化,MCU通过检测行或列线上的电平变化可以确定哪个按键被按下。 图1为一个4 x 4的行列结构,可以构成16个键的键盘。很明显,在按键数量多的场合,矩阵键盘与独立式按键键盘相比可以节省很多的I/O口线。 图1 4X4键盘扫描电路

浙江大学本科课程简介和教学大纲

课程简介和教学大纲 课程代码:15120660 课程名称:嵌入式系统设计 学分: 5.0 周学时:4.0-2.0 面向对象:大学本科生 预修课程要求:微机原理、C程序设计 一、课程介绍(100-150字) (一)中文简介 《嵌入式系统设计》是工科学生学习掌握嵌入式系统的结构原理、ARM处理器核的设计原理和方法、理解操作系统的基本原理、学习掌握嵌入式应用软件开发的主要流程和相关技术的一门课程,重点在于理解ARM体系结构及其组成嵌入式系统的结构原理基础上,培养学生具备初步的嵌入式系统软硬件设计开发能力。课程内容主要包括ARM处理器核的设计原理,ARM体系结构,ARM编程模型及指令集,ARM调试结构与存储器层次,操作系统的I/O接口技术、操作系统进程与线程的概念和管理、并发、进程间通信,操作系统的内存管理策略,调度算法和实时调度算法等内容,并以树莓派实验板为基础进行相应的实验设计,掌握嵌入式系统设计开发能力。 (二)英文简介 《Embedded System Design》is one of the basic courses for engineering students to master the structural principle of embedded system, principle and method of ARM core design, basic principle of operating system, the main process of embedded application software development and related technologies. The priority of this course is making students have an initial capacity of embedded system hardware and software design and development based on understanding the ARM architecture and composition of the embedded system. Course content includes core design of ARM processor, ARM architecture, ARM programming model and instruction set, ARM debug architecture and memory hierarchy, IO technologies of operating system, concept and management of operating system processes and threads, concurrent, inter-process communication, memory management, scheduling algorithm and real-time scheduling algorithm etc. Experimental design on Raspberry Pi2 development board may also be made to know the embedded system design and development process well. 二、教学目标 (一)学习目标 本课程通过嵌入式系统的开发平台,使学生熟悉嵌入式应用开发流程,更方便地学习和理解嵌入式系统的基础知识,使学生具备基本的嵌入式系统的软硬件设计能力。以ARM

AVR单片机实验报告PCF8563

南京邮电大学 2011 /2012 学年第一学期 课程设计实验报告 模块名称A VR单片机课程设计 专业 学生班级 学生学号 学生姓名 指导教师李虹戴海鸿杨洁王明伟 日期: 2011年9月26日至 2011年10月20日

A VR单片机课程设计报告 一.课程设计目的 1.学习ATmega128单片机的仿真环境(A VR Studio)及C语言编程环境 (ICC A VR)。 2.学习ATmega128单片机的C语言编程,熟悉使用板载JTAG进行仿 真调试。 二.课程设计内容 1.基本要求: 1) 访问时钟芯片PCF8563,在LCD1602上显示年、月、日、时、分、秒,或通 过串口将时间传至PC。 2) 合理定义板上按键功能,随机设定、调整时间和日期。 2.扩展要求: 1) 闹钟功能,启动蜂鸣器鸣叫。 2)有闰年功能 三.课程设计过程 1. 设计原理: 利用A Tmega128内部的IIC,读写实时时钟芯片PCF8563内部的寄存器,通过PC显示出来,可通过按键,设置当前时间。 2. 实验原理图: 按键部分 4个独立按键,接在PD4~PD7,通过一个电阻到地,键盘按下时为低电平,释放为高电平。

实时时钟芯片PCF8563部分 实时时钟芯片PCF8563通过IIC总线连接到A Tmega128的SDA和SCL 总线上。 3.软件设计 1)思路如下:使用ATmega128内部TWI通过IIC总线读写实时时钟 芯片PCF8563内部的寄存器实现实时时钟功能,使用四个按键设置时 钟的年,月,日,时,分,秒,并把时钟显示到PC上。 2)程序流程图 3)关键代码: void PowerOnInitial(void) {

LED数码管显示实验

信息工程学院实验报告 课程名称:单片机原理及接口 实验项目名称:LED 数码管显示实验 实验时间:2016年3月11日 班级:通信141 姓名: 学号: 一、实 验 目 的: 熟悉keil 仿真软件、proteus 仿真软件、软件仿真板的使用。了解并熟悉一位数码管与 多位LED 数码管的电路结构、与单片机的连接方法及其应用原理。学习proteus 构建LED 数 码管显示电路的方法,掌握C51中单片机控制LED 数码管动态显示的原理与编程方法。 二、实 验 设 备 与 器 件 硬件:微机、单片机仿真器、单片机实验板、连线若干 软件:KEIL C51单片机仿真调试软件,proteus 系列仿真调试软件 三、实 验 原 理 LED 显示器是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是七 段LED ,这种显示器有共阴极与共阳极两种。 共阴极LED 显示器的发光二极管阴极共地,当某个发光二极管的阳极为高电平时,该发 光二极管则点亮;共阳极LED 显示器的发光二极管阳极并接。 七段LED 数码管与单片机连接时,只要将一个8位并行输出口与显示器的发光二极管引 脚相连即可。8位并行输出口输出不同的字节数据即可获得不同的数字或字符,通常将控制 成 绩: 指导老师(签名): a f b e g c d dp 1 2 3 4 5 10 9 8 7 6 g f a b e d c dp (a) 共阴极 (b) 共阳极 (c) 管脚配置

发光二极管的8位字节数据称为段选码。 多位七段LED数码管与单片机连接时将所有LED的段选线并联在一起,由一个八位I/O 口控制,而位选线分别由相应的I/O口线控制。如:8位LED动态显示电路只需要两个八位I/O口。其中一个控制段选码,另一个控制位选。 由于所有位的段选码皆由一个I/O控制,因此,在每个瞬间,多位LED只可能显示相同的字符。要想每位显示不同的字符,必须采用动态扫描显示方式。即在每一瞬间只使某一位显示相应字符。在此瞬间,位选控制I/O口在该显示位送入选通电平(共阴极送低电平、共阳极送高电平)以保证该位显示相应字符,段选控制I/O口输出相应字符段选码。如此轮流,使每位显示该位应显示字符,并保持延时一段时间,以造成视觉暂留效果。 不断循环送出相应的段选码、位选码,就可以获得视觉稳定的显示状态。由人眼的视觉特性,每一位LED在一秒钟内点亮不少于30次,其效果和一直点亮相差不多。 四、实验内容与步骤 1、电路图的设计。 (1)打开proteus软件,单击P,打开搜索元器件窗口,如图 1-1 所示: 图1-1 搜索元器件 (2)添加元器件AT89C51、CAP、BUTTON、LED-BLUE、RES、CRYSTAL、7SEG-MPXI1CC,修改元器件的参数,绘制电路图,如图1-2 所示:

AVR学习笔记

ATmega16

中断表

第一节课 Avr单片机的每个引脚有三个寄存器来控制: DDRnx(输入输出控制寄存器1输出,0输入) PORTnx(引脚输出电平控制) PINnx(输入寄存器) 第二节课 AVR单片机的AD转换 涉及寄存器:ADMUX sbit[7;6]参考电压选择,sbit[5] AD转换数据对齐方式选择,sbit[4:0]通道与增益选择; ADCSRA sbit[7]AD使能,sbit[6]AD开始转换,sbit[5]自动触发使能,sbit[4]AD 中断使能,sbit[3:0]分频设置; SFIOR(触发源的选择)sbit[7:5] (ADTS)选择触发源, ADCL,ADCH数据寄存器; 初始化步骤: 1:设置通道的IO口为输入(高阻); 2:设置与AD有关的寄存器; 3:开总中断,SREG=BIT(7); 4:写中断函数 (中断标号是15) 第三节课 AVR有三个定时计数器,T/C0,T/C1,T/C2; T/C0,T/C2是两个8BIT的计数器; T/C1定时计数器,普通模式 时机寄存器: TCCR1B:2:0时钟选择 TCNT1L,TCNTH:定时数据

TIMSK :TOIE 中断使能位 使用方法 1, 选择时钟源,TCCR1B ; 2, 设计初值,TCNT1L ,TCNT1H ; 3, 设置中断使能位;TIMSK{2},SREG{7} 4, 选中断号,写中断函数 5, (中断号9) CTC 模式 如果输出波形,则设IO 位输出 设置波形模式和时钟源TCCR1B 设置输出模式TCCR1A 根据需要设置上限OCR1ATCCR1A 设置输出口 频率计算:() A OCR N f f clk o 112+??= 控制寄存器A TCCR1A COM1A1:0: 通道A 的比较输出模式 COM1B1:0: 通道B 的比较输出模式 COM1A1:0与COM1B1:0分别控制OC1A 与OC1B 状态。如果COM1A1:0(COM1B1:0)的一位或两位 被写入"1”,OC1A(OC1B) 输出功能将取代I/O 端口功能。此时OC1A(OC1B)相应的输出引脚 数据方向控制必须置位以使能输出驱动器。

实验报告七-键盘扫描及显示实验

信息工程学院实验报告 课程名称:微机原理与接口技术 实验项目名称:键盘扫描及显示实验 实验时间: 班级: 姓名: 学号: 一、实 验 目 的 1. 掌握 8254 的工作方式及应用编程。 2. 掌握 8254 典型应用电路的接法。 二、实 验 设 备 了解键盘扫描及数码显示的基本原理,熟悉 8255 的编程。 三、实 验 原 理 将 8255 单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。键盘采用 4×4 键盘,每个数码管显示值可为 0~F 共 16 个数。实验具体内容如下:将键盘进行编号,记作 0~F ,当按下其中一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近 6 次按下的按键编号。 键盘及数码管显示单元电路图如图 7-1 和 7-2 所示。8255 键盘及显示实验参考接线图如图 7-3 所示。 图 7-1 键盘及数码管显示单元 4×4 键盘矩阵电路图 成 绩: 指导老师(签名):

图 7-2 键盘及数码管显示单元 6 组数码管电路图 图 7-3 8255 键盘扫描及数码管显示实验线路图 四、实验内容与步骤 1. 实验接线图如图 7-3 所示,按图连接实验线路图。

图 7-4 8255 键盘扫描及数码管显示实验实物连接图 2.运行 Tdpit 集成操作软件,根据实验内容,编写实验程序,编译、链接。 图 7-5 8255 键盘扫描及数码管显示实验程序编辑界面 3. 运行程序,按下按键,观察数码管的显示,验证程序功能。 五、实验结果及分析: 1. 运行程序,按下按键,观察数码管的显示。

树莓派的基本操作

课程实验报告 课程名称:计算机组成原理 实验名称:树莓派硬件检测及操作 院系:计算机科学与技术 专业班级: 学号: 姓名: 指导教师: 2015年12月30日

原创性声明 本人郑重声明:所呈交的实验报告,是本人独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 作者签名: 日期:年月日

目录 一、课题背景 (3) 1.平台背景 (3) 2.实验背景 (3) 二、课题目标 (3) 1.检测硬件信息 (3) 2.超频操作及效果检测 (3) 3.动态调整内存主频 (3) 三、实验过程记录 (4) 1.建立连接 (4) 2.硬件信息检测 (6) 1)CPU基本信息(静态信息) (6) 2)动态信息 (7) 3.超频操作 (9) 1)原主频 (9) 2)第一次超频 (10) 3)第二次超频 (10) 4.动态调整内存主频 (10) 四、实验结论 (10) 五、实验中的问题 (11) 六、实验总结 (11)

一、课题背景 1.平台背景 在本次计算机组成原理大作业中,我选择了树莓派(raspberry pi)作为开发试验的平台。树莓派只有信用卡大小的卡片式电脑,其系统基于Linux。自从其问世以来深受计算机爱好者的喜爱。其较小的外形使它拥有了便携,易于安装到其他设备上等特点。 在其较小的外表下隐藏着两大的功能: ●网卡:10/100自适应网卡 ●CPU:Broadcom BCM2836900MHz4核ARM Cortex-A7 ●GPU:支持Open GL ES2.0,OpenVG硬件加速,1080p30H.264高清解码, 带宽1Gpixel/s,1.5Gtexel/s or24GFLOPs DMA纹理解析 ●内存:1GB 正是这些性价比较高的硬件支持,使得树莓派在开发者手中有不俗的表现。作为计算机专业的学生,正好借此机会学习体验树莓派的强大功能,提升自己对计算机硬件方面的理解。 2.实验背景 本次实验主要是通过在树莓派官方的操作系统下实现对cpu频率,温度,内存及硬盘的使用情况的检测,以及对其进行超频并检测器性能上的变化。 二、课题目标 1.检测硬件信息 通过编写程序或使用系统调用来实现对树莓派硬件信息的实时监控,如cpu占用率,cpu 温度,内存使用情况,cpu的频率以及cpu各个核的信息等。 2.超频操作及效果检测 对树莓派进行两次不同频率的超频操作,并在每次超频后对系统的功能进行测试分析,总结得出结论。 3.动态调整内存主频 将内存主频在CPU和GPU之间动态调整分配可提高CPU与内存之间的交互效率,使超频后的树莓派能更好的适应高频的CPU工作状态。

avr实验报告

通达学院 2014 /2015 学年第一学期 课程设计实验报告 模块名称A VR单片机课程设计(proteus)专业通信工程 学生班级 学生学号 学生姓名 指导教师李虹戴海鸿杨洁王明伟

AVR单片机软件设计(proteus)报告 基本内容包括: 1)总体设计原理、思路; 根据题目的要求,我们需要事先得到3种波形的信号源,并将其在程序存储器中,然后取出程序存储器里的信号源存放在atmega128的外部RAM中,并通过DAC0832输出到示波器上显示图形。采用按键方式控制输出波形,并且通过DS18B20上的温度来控制信号的频率,温度在1~10时显示2Hz,温度为11~20时显示4Hz,温度为21~30时为8Hz,温度为31~40时为15Hz,温度大于40时为19Hz。最后在LM016L上显示出输出的波形名称和温度以及频率。 2)硬件方面原理图的设计:包括使用的元器件、典型芯片的介绍;原理图的说明等 1、ATmega128 ATmega128为基于AVR RISC结构的8位低功耗CMOS微处理器。由于其先进的指令集以及单周期指令执行时间,ATmega128 的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。 2、DS18B20 DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发

的温度报警触发器TH和TL、配置寄存器。光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的,也就是你要做的是配置寄存器。 根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。 3、DAC0832 DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。DAC0832是8分辨率的D/A 转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。DAC0832逻辑输入满足TTL电平,可直接与TTL电路或微机电路连接。 3)软件方面程序流程图的设计、关键代码的说明

单片机实验——数码管显示

单片机实验——数码管显示

数码管显示 一、数码管静态显示 1、电路图 图1 2、电路分析 该电路采用串行口工作方式进行串行显示实验,串行传输数据为8位,只能从RXD端输

入输出,TXD端用于输出同步移位脉冲。当CPU 执行一条写入发送缓冲器SBUF的指令时,产生一个正脉冲,串行口开始将发送缓冲器SBUF 中的8位数据按照从低位到高位依次发送出去,8位数据发送完毕,发送结束标志TI置1,必须由软件对它清0后才能启动发送下一帧数据。 因此,当输完8个脉冲后,再一次来8个脉冲时,第一帧的8位数据就移到了与之相连的第二个74LS164中,其他数据依此类推。 3、流程图

发送数据 二、数码管动态显示 1、电路图

图2 2、电路分析 R1-R7电阻值计算:一个7-seg 数码管内部由8段LED 组成,因此导通电压和电流与LED 灯相同,LED 导通压降大概在 1.5V-2.2V ,电流3mA-30mA ,单片机的工作电压是5V , 所以 一般取Rmin 和Rmax 中间值,330Ω、470Ω、510Ω。 由于P0口内部没有上拉电阻,所以在P0 口接1003025Im min 1325Im max =-===-==mA V V an U R K mA V V in U R

排阻,上拉电压。如果没有排阻的话,接上拉电阻时需要考虑数码管的电流,如果太小的话,是驱动不了数码管的。如图3: 发现电流大于5mA时,数码管才能亮,与前面电流最小3mA不符,因此计算数码管电流时使其在10mA-20mA之间,确保能驱动数码管亮。 两个74HC573实现对六位数码管的段选和位选,控制端为LE(第11脚)。 3、思路分析 先使第一个573输出同步,把数据送入573中,然后锁存,第二个573输出同步,打开第一个数

活性炭吸附实验报告

实验3 活性炭吸附实验报告 一、研究背景: 1.1、吸附法 吸附法处理废水是利用多孔性固体(吸附剂)的表面吸附废水中一种或多种溶质(吸附质)以去除或回收废水中的有害物质,同时净化了废水。 活性炭是由含碳物质(木炭、木屑、果核、硬果壳、煤等)作为原料,经高温脱水碳化和活化而制成的多孔性疏水性吸附剂。活性炭具有比表面积大、高度发达的孔隙结构、优良的机械物理性能和吸附能力,因此被应用于多种行业。在水处理领域,活性炭吸附通常作为饮用水深度净化和废水的三级处理,以除去水中的有机物。除此之外,活性炭还被用于制造活性炭口罩、家用除味活性炭包、净化汽车或者室内空气等,以上都是基于活性炭优良的吸附性能。将活性炭作为重要的净化剂,越来越受到人们的重视。 1.2、影响吸附效果的主要因素 在吸附过程中,活性炭比表面积起着主要作用。同时,被吸附物质在溶剂中的溶 解度也直接影响吸附的速度。此外,pH 的高低、温度的变化和被吸附物质的分散程度也对吸附速度有一定影响。 1.3、研究意义 在水处理领域,活性炭吸附通常作为饮用水深度净化和废水的三级处理,以除去水中的有机物。活性炭处理工艺是运用吸附的方法来去除异味、某些离子以及难以进行生物降解的有机污染物。 二、实验目的 本实验采用活性炭间歇的方法,确定活性炭对水中所含某些杂质的吸附能力。希望达到下述目的: (1)加深理解吸附的基本原理。 (2)掌握活性炭吸附公式中常数的确定方法。 (3)掌握用间歇式静态吸附法确定活性炭等温吸附式的方法。 (4)利用绘制的吸附等温曲线确定吸附系数:K、1/n。K为直线的截距,1/n为直线的斜率 三、主要仪器与试剂 本实验间歇性吸附采用三角烧瓶内装人活性炭和水样进行振荡方法。 3.1仪器与器皿: 恒温振荡器1台、分析天平1台、分光光度计1台、三角瓶5个、1000ml容量瓶1个、100ml容量瓶5个、移液管 3.2试剂:活性炭、亚甲基蓝 四、实验步骤 (1)、标准曲线的绘制 1、配制100mg/L的亚甲基蓝溶液:称取0.1g亚甲基蓝,用蒸馏水溶解后移入1000ml容量瓶中,并稀释至标线。 2、用移液管分别移取亚甲基蓝标准溶液5、10、20、30、40ml于100ml容量瓶中,用蒸馏水稀释至100ml刻度线处,摇匀,以水为参比,在波长470nm处,用1cm比色皿测定吸光度,绘出标准曲线。(2)、吸附等温线间歇式吸附实验步骤 1、用分光光度法测定原水中亚甲基蓝含量,同时测定水温和PH。

拨码开关输入数码管显示实验

综合课程设计实验报告 班级: 姓名: 学号:11 指导老师:

实验名称: 拨码开关输入数码管显示实验 实验要求: 1. 掌握数码管显示原理 2. 掌握拨码开关工作原理 3. 通过FPGA用拨码开关控制数码管显示 实验目标: 4位拨码开关分别对应4位数码管,拨动任意1位开关,对应的数码管将显示数字1,否则显示数字0。 实验设计软件 Quartus II 实验原理 1.数码管显示模块 电路原理图:

如图所示,数码管中a,b,c,d,e,f,g,dp分别由一个引脚引出,给对应的引脚高电平,则对应引脚的LED点亮,故我们在程序中可以设定一个8位的二进制数reg【7:0】h,每一位对应一个相应的引脚输出,那么我们就可以通过对x的赋值,控制对应的8个LED亮灭的状态进行数字显示。例如,如果我们显示数字2,则在数码管中,a、b、d、e、g亮,c、f、dp不亮,则显示的是数字2,即h=’b代表显示数字2。 2.拨码开关模块 电路原理图: 拨码开关有8个引脚,每个引脚对应于数码管的一个LED灯,当拨码开关的一个引脚是高电平时,则对应的数码管一个LED灯亮,其他7个LED等不亮。通过此原理来实现数码管的LED灯亮暗情况从而实现数码管的数字显示。例如当第一个拨码接通时,此时输入信号为8'b对应的数码管的输出信号为out=8'b,此时相当于数码管a,b,c,d,e,f,g亮,7段数码管全部显示,显示的数字为8。 程序代码 module bomakaiguan(out,key_in,clk); assign p='b1111; output[7:0] out=8'b; input[7:0] key_in; input clk; reg[7:0] out; always @(posedge clk) begin case(key_in) 8'b: out=8'b;

AVR学习笔记

A VR学习笔记(基于LT_Mini_M16) 一、点亮发光二极管 一、实验内容和目的 本实验通过硬件电路和软件程序,利用A TMega16单片机来控制发光二极管的点亮和熄灭。通过此实验初步掌握单片机的I/O口功能。 二、硬件电路 1、电路分析(对照LT_Mini_M16原理图) 1)电源电路:外接稳压直流电源(最好是DC9V)加到电路的U1处,经过电容C16稳压滤波后加到稳压模块AMS1117-5.0上,然后连接到电源开关按钮S1,从开关按钮出来后经过发光二极管D9和电阻R7,再经过电容C1、C2、C3、C4、C5、C7稳压滤波后加到单片机以及各个模块的电源端。 分析:a) 电容的作用是稳压滤波,其中C1、C2、C3、C4、C5这5电容为0.1PF (俗称104电容,一般为瓷片电容)。主要作用为滤出电源电路中的高频成分;而C16、C7是电解电容,主要作用是稳压,即把电源电路中的尖峰电压拉低到正常电压水平;C16是稳定外接直流电源的电压(9V),C7是稳定AMS1117-5.0输出的5V电压。 b)稳压芯片采用ASM1117-5.0,该稳压芯片输入电压范围为6.5V-15V,输出电压稳定在5.0+0.1V,最大输出电流可达1A,可以满足一般电路需要。 c) 电源开关按钮S1的作用当然是接通和断开电源了。在此电路中S1采用的是单刀双掷开关,一旦断开电源,则电源的正负极都断开了。 d)发光二极管D9的作用是指示电源是否连接成功,如果外部电源成功的连接上,则发光二极管发光指示电源连接成功;电阻R7的作用是对发光二极管进行限流,一般发光二极管只能通过10mA左右的电流,且发光二极管上面的压降只需要1.5V左右,加到发光二极管上面的电流如果超出额定值,则会烧毁。而系统工作的电压是5V,如果全部加在发光二极管上,则发光二极管很容易就会被烧毁。所以要在电源和发光二极管之间串接一个限流电阻。该限流电阻阻值的计算:(VCC-发光二极管上的电压)/流过发光二极管的电流。一般发光二极管的压降是1.5V左右,电流为10mA左右,则可计算如下:限流电阻的阻值=(5.0-1.5)/0.01=350欧姆,一般这个阻值可以取得稍微大一些。 2)复位电路:单片机的第9脚(RESET,复位管脚)经过按钮K5连接到地。 分析:a)A VR单片机是低电平复位(51单片机是高电平复位,刚好相反)。需要单片机复位时,最少要在复位管脚加上1.5微秒的低电平,才能确保单片机正确复位。 b)按下按钮K5,复位管脚被直接拉到电源地,这样复位管脚的电平就被拉低,从而使单片机复位;一般情况下按钮按下的时间超过毫秒级别,这样就能确保单片机正确复位。 3)ISP电路(程序下载电路):ISP下载接口不需要任何的外围零件。使用双排2*5排针。 分析:a)由于没有外围零件,故PB5(MOSI)、PB6(MISO)、PB7(SCK)、复位脚仍可以正常使用,不受ISP的干扰。 b)ISP下载接口的1、3、5、7、9脚分别接单片机的PB5(MOSI)、PB6(MISO)、PB7(SCK)、复位脚;2接VCC,4、6、8、10都接在GND上。 4)晶振电路:晶体的两脚分别接单片机的12、13脚(晶体的管脚没有正负和顺序,可以随意连接),电容C11、C12分别于晶体的两脚和地连接。

树莓派实验报告

实验名称:实验12-PIR传感器和语音识别实验 专业班级:姓名:学号:实验日期: 一、实验目的: (1)熟悉人体红外传感器、语音识别和文本转语音(TTS)。 (2)掌握在Windows 10 IoT Core中使用GPIO读取人体红外传感器输出的方法。 (3)掌握在Windows 10 IoT Core中使用SpeechRecognition和SpeechSynthesis进行语音识别和语音合成的方法。 二、实验内容: (1)将人体红外传感器PIR、LED灯分别连接到树莓派的GPIO5和GPIO6,运行程序12-1后,先点击初始化PIR按钮,若附近有人活动时,即程序检测到上升沿,指示的LED灯亮;没有人活 动时,即程序检测到下降沿,LED灯熄灭,与应用程序界面上的状态同步。如下图所示。

在实验12-1的基础上,使用树莓派、人体红外传感器PIR、LED灯、电阻、面包板和跳线,实现Security Camera。即检测到附近有人活动时,程序自动拍照,存储到本地。 (2)使用树莓派(IoT Core系统烧写版本为14986)、USB声卡、耳机、麦克风、LED灯、电阻、面包板和跳线,实现本地的语音合成和语音识别,从而达到控制LED灯的目的。程序12-2给出了语音控制一个LED的场景,即使用语音turn on bedroom led或者turn off bedroom led来控制GPIO5引脚连接的LED灯。同时,可以在Visual Studio的Output窗口看到语音识别的实时结果。如下图所示。

用户可以在应用程序界面输入文字,点击按钮,可以让系统读出该内容,如下图所示。 请在此基础上,添加LED灯,修改语音定义文件和程序,从而达到控制两个不同的LED的功能。 三、实验结果(注意:所有截图需要加注自己的姓名+学号水印): 1. 利用Fritzing软件画出硬件连接图,给出实验内容1对应的所有关键代码,给出测试结果和说 明,附调试截图。 硬件连接图: 硬件连接图如左图所示,将led连接在GPIO5上,将pri的 数据输出接口接在GPIO18上

八段数码管显示实验

八段数码管显示实验报告 一.设计目的 1.掌握数码管动态显示的原理; 2.学会用总线方式控制数码管显示; 3.熟悉利用单片机驱动数码管的电路及编程原理。 二.设计内容 利用实验箱提供的显示电路,设计一个能够动态显示一行数据的系统。实验箱一般提供了6位8段码LED显示电路,只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。能够正常显示数据之后,请改变一下数字的变化速度或者LED显示的方向。 三.实验原理 1.原理:当用总线方式驱动八段显示管时,请将八段的驱动方式选择开关拨到“内驱”位置;当用I/O方式驱动八段显示管时,请将开关拨到“外驱”位置。 本实验仪提供了6 位8段码LED显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。8位段码、6位位码是由两片74LS374输出。位码经MC1413或ULN2003倒相驱动后,选择相应显示位。 本实验仪中 8位段码输出地址为0X004H,位码输出地址为 0X002H。此处X 是由KEY/LED CS 决定,参见地址译码。做键盘和LED实验时,需将KEY/LED CS 接到相应的地址译码上。以便用相应的地址来访问。例如,将KEY/LED CS 接到CS0上,则段码地址为08004H,位码地址为08002H。 七段数码管的字型代码表如下表:

2. 3.程序 OUTBIT equ 08002h ; 位控制口

OUTSEG equ 08004h ; 段控制口 IN equ 08001h ; 键盘读入口 LEDBuf equ 60h ; 显示缓冲 Num equ 70h ; 显示的数据 DelayT equ 75h ; ljmp Start LEDMAP: ; 八段管显示码 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h Delay: ; 延时子程序 mov r7, #0 DelayLoop: djnz r7, DelayLoop djnz r6, DelayLoop ret DisplayLED: mov r0, #LEDBuf mov r1, #6 ; 共6个八段管 mov r2, #00100000b ; 从左边开始显示 Loop: mov dptr, #OUTBIT mov a, #0 movx @dptr, a ; 关所有八段管 mov a, @r0 mov dptr, #OUTSEG movx @dptr,a

AVR单片机嵌入式系统原理与应用实践——学习笔记

AVR单片机嵌入式系统原理与应用实践 学习笔记 1.AVR单片机的基本结构 1.1.单片机的基本组成 1.1.1.单片机的基本组成结构 单片机的基本组成单元 CPU 程序存储器数据存储器I/O接口 CPU与各基本单元通过芯片内的内部总线连接。 一般情况下,内部总线中的数据总线宽度(或指CPU字长)也是单片机等级的一个重要指标。 内部总线:数据总线、地址总线、控制总线。 1.1. 2.单片机的基本单元与作用 1)MCU单元 MCU单元部分包括CPU、时钟系统、复位、总线控制逻辑等电路。 CPU: 时钟和复位电路: 总线控制电路:

2)片内存储器 单片机的存储器一般分为程序存储器和数据存储器,它们往往构成互不相同的两个存储空间,分别寻址,互不干扰。 单片机的内部结构通常使用哈佛体系结构,在这种体系中采用分开的指令和数据总线以及分开的指令和数据空间,分别采用专用的总线与CPU交换,可以实现对程序和数据的同时访问,提高了CPU的执行速度和数据的吞吐量。 3)程序存储器 程序存储器用于存放嵌入式系统的应用程序。 4)数据存储器 单片机在片内集成的数据存储器一般有两类:随机存储器RAM、电可擦除存储器EEPROM。 随机存储器RAM: 电可擦除存储器EEPROM 5)输入输出端口 并行总线I/O端口: 通用数字I/O端口:

片内功能单元的I/O端口: 串行I/O 通信口: 其他专用接口: 6)操作管理寄存器 管理、协调、控制、操作单片机芯片中各功能单元的使用和运行。 1.2.ATmega16单片机的组成 1.2.1.AVR单片机的内核结构 “快速访问”意味着在一个周期内执行一个完整的ALU操作。 AVR的算术逻辑单元ALU支持寄存器之间、立即数与寄存器之间的算术与逻辑运算功能,以及单一寄存器操作。每一次运算操作的结果将影响和改变状态寄存器(SREG)的值。 ALU操作 从寄存器组中读取两个操作数 操作数被执行将执行结果写回目的寄存器 1.2.2.ATmega16的外部引脚与封装

树莓派实验教程

Raspberry Pi板实验教程 实验一、点亮LED 在Raspberry Pi板的边上有2列排针,1列13脚一共26脚。这2列排针叫GPIO口,在Raspberry Pi板搭载的系统下,用户可以使用C语言或Python语言对这2列GPIO口进行控制,以此来控制外接的外部设备。 在这里,我们选用C语言来进行编程控制。首先,在使用C语言编程之前,要先将Raspberry Pi板连接上网,下载一个GPIO的wirngpi函数库。wirngpi 函数库是由一个外国人编写的,在使用C语言的时候可以通过对这个函数库的函数调用来对操作GPIO口。 点击LXTerminal进入root用户权限的命令行模式,依次键入以下命令:sudo apt-get update(需要一定等待时间,与网速有关) sudo apt-get upgrade(需要一定等待时间,与网速有关) sudo apt-get install git-core git clone git://https://www.360docs.net/doc/e412681909.html,/wiringPi cd wiringPi git pull origin cd wiringPi ./build 下载并安装好wiringPi之后,再来看看GPIO口的排列。将Raspberry Pi 板放置为两列GPIO口在右上角的方式,这两列GPIO口的引脚位如下图所示。 图1

图1右边的这张图,就是GPIO的实际引脚位。而左边的图则是wirngpi 库定义的引脚位图。编程的时候,只需要以左图为标准就可以了,不需要理会右图。现在,我们要使用GPIO口来控制LED的亮灭。LED就是发光二极管,这里需要一块外接的电路板。如下图: 图2 这块板的电路图如下: 图3 这块板是用来驱动步进电机转动的,板子上有4个发光二极管分别接在

arduino学习笔记

arduino学习笔记 arduino学习笔记1 - 什么是arduino? 要了解arduino就先要了解什么是单片机,arduino平台的基础就是A VR指令集的单片机。 1、什么是单片机?它与个人计算机有什么不同? 一台能够工作的计算机要有这样几个部份构成:中央处理单元CPU(进行运算、控制)、随机存储器RAM(数据存储)、存储器ROM(程序存储)、输入/输出设备I/O(串行口、并行输出口等)。在个人计算机(PC)上这些部份被分成若干块芯片,安装在一个被称之为主板的印刷线路板上。而在单片机中,这些部份全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如模拟量/数字量转换(A/D)和数字量/模拟量转换(D/A)等。 2、单片机有什么用? 实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用酷睿处理器吗?应用的关键是看是否够用,是否有很好的性能价格比。如果一台冰箱都需要用酷睿处理起来进行温度控制,那价格就是天价了。 单片机通常用于工业生产的控制、生活中与程序和控制有关(如:电子琴、冰箱、智能空调等)的场合。 下图就是一个Atmega328P-PU单片机,基于A VR指令集的8位处理器,频率20MHz,存储器空间32KB。 什么是Arduino? Arduino是一个能够用来感应和控制现实物理世界的一套工具。它由一个基于单片机并且开放源码的硬件平台,和一套为Arduino板编写程序的开发环境组成。 Arduino可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制各式各样的电灯、电机和其他物理设备。Arduino项目可以是单独的,也可以在运行时和你电脑中运行的程序(例如:Flash,Processing,MaxMSP)进行通讯。Arduino板你可以选择自己去手动组装或是购买已经组装好的;Arduino开源的IDE可以免费下载得到。 Arduino的编程语言就像似在对一个类似于物理的计算平台进行相应的连线,它基于处理多媒体的编程环境。

相关文档
最新文档