51单片机I2C总线驱动程序

51单片机I2C总线驱动程序

51单片机I2C总线驱动程序

SI2I2C 总线是PHLIPS 公司推出的一种串行总线,是具备多主机系统所需

的包括总线裁决和高低速器件同步功能的高性能串行总线。I2C 总线只有两根

双向信号线。一根是数据线SDA,另一根是时钟线SCL。

一.I2C 系统结构每个接到I2C 总线上的器件都有唯一的地址。主机与其它器

件间的数据传送可以是由主机发送数据到其它器件,这时主机即为发送器。由

总线上接收数据的器件则为接收器。

二.数据位的有效性规定I2C 总线进行数据传送时,时钟信号为高电平期间,

数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线

上的高电平或低电平状态才允许变化。

三.字节传送与应答每一个字节必须保证是8 位长度。数据传送时,先传送最

高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有

9 位)。

四.驱动程序#define uchar unsigned char#define uint unsigned int#define somenop() _nop_(),_nop_(),_nop_(),_nop_(),_nop_(),_nop_()sbit SCL=P2;sb it SDA=P2;123451.起始信号和终止信号

SCL 线为高电平期间,SDA 线由高电平向低电平的变化表示起始信号;SCL

线为高电平期间,SDA 线由低电平向高电平的变化表示终止信号。

起始和终止信号都是由主机发出的,在起始信号产生后,总线就处于被占用

的状态;在终止信号产生后,总线就处于空闲状态

void I2C_Start() //起始{SCL=1;somenop();SDA=1;somenop(); SDA=0;somenop();SCL=0;somenop();}void I2C_Stop() //终止{ SDA=0;somenop();SCL=1;somenop();SDA=1;somenop();}12345678910111213141

51单片机的模拟IIC总线程序

#include /*头文件的包含*/ #include #define uchar unsigned char /*宏定义*/ #define uint unsigned int #define _Nop() _nop_() /*定义空指令*/ /* 常,变量定义区 */ /*端口位定义*/ sbit SDA=P1^3; /*模拟I2C数据传送位*/ sbit SCL=P1^2; /*模拟I2C时钟控制位*/ /*状态标志*/ bit ack; /*应答标志位*/ void Start_I2c() { SDA=1; /*发送起始条件的数据信号*/ _Nop(); SCL=1; _Nop(); /*起始条件建立时间大于4.7us,延时*/ _Nop(); _Nop(); _Nop(); _Nop(); SDA=0; /*发送起始信号*/ _Nop(); /* 起始条件锁定时间大于4μs*/ _Nop(); _Nop(); _Nop(); _Nop(); SCL=0; /*钳住I2C总线,准备发送或接收数据 */ _Nop(); _Nop(); }

void Stop_I2c() { SDA=0; /*发送结束条件的数据信号*/ _Nop(); /*发送结束条件的时钟信号*/ SCL=1; /*结束条件建立时间大于4μs*/ _Nop(); _Nop(); _Nop(); _Nop(); _Nop(); SDA=1; /*发送I2C总线结束信号*/ _Nop(); _Nop(); _Nop(); _Nop(); } /******************************************************************* 字节数据传送函数 函数原型: void SendByte(uchar c); 功能: 将数据c发送出去,可以是地址,也可以是数据,发完后等待应答,并对此状态位进行操作.(不应答或非应答都使ack=0 假) 发送数据正常,ack=1; ack=0表示被控器无应答或损坏。 ********************************************************************/ void SendByte(uchar c) { uchar BitCnt; for(BitCnt=0;BitCnt<8;BitCnt++) /*要传送的数据长度为8位*/ { if((c<

利用51单片机实现SPI总线通信

利用51单片机实现SPI总线通信 一:题目及要求 1:基本内容 1.1:理解51单片机和SPI总线通信的特性和工作原理; 1.2:以51单片机为核心分别设计SPI总线通信发送及接收电路; 1.3:熟练应用C语言或汇编语言编写程序; 1.4:应用Protues软件完成仿真,仿真结果需包括示波器波形,通过一定的 方式(如LED灯、LED显示器等)显示发送和接受数据结果; 1.5:下载程序到开发板,实现串口通信功能(选做); 1.6:提交设计报告。 2:基本要求 本设计采用三线式SPI总线,一条时钟线SCK,一条数据输入线MOSI,一条数据输出线MISO。时钟极性CPOL=0,时钟相位CPHA=0。 二:设计思路 1:掌握51单片机和SPI总线通信的工作原理; 2:利用1中的原理设计SPI总线通信发送和接受电路; 3:编程模拟SPI时序,包括串行时钟、数据输入和输出; 4:利用Protues软件仿真,观察结果; 5:顺利仿真后,下载到开发板实现串行通信功能。 三:设计过程及内容 1:SPI总线简介 SPI ( Serial Peripheral Interface ——串行外设接口) 总线是Motorola公司推出的一种同步串行接口技术。SPI总线系统是一种同步串行外设接口,允许MCU(微控制器)与各种外围设备以串行方式进行通信、数据交换。外围设备包括FLASHRAM、A/ D 转换器、网络控制器、MCU 等。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现

基于51单片机的USB键盘设计与实现

三江学院 本科生毕业设计(论文)题目基于51单片机的USB键盘设计与实现高职院院(系)电气工程及其自动化专业 学生姓名梁邱一学号 G105071013 指导教师孙传峰职称讲师 指导教师工作单位三江学院 起讫日期 2013年12月10日至2014年4月12日

摘要 随着计算机技术的不断更新和多媒体技术的快速发展,传统的计算机外设接口因为存在许多缺点已经不能适应计算机的发展需要。比起传统的AT,PS/2,串口,通用串行总线USB,具有速度快,使用方便灵活,易于扩展,支持即插即用,成本低廉等一系列优点,得到了广泛的应用。 本论文阐述了51系列单片机和USB的相关内容,详细介绍了系统的一些功能设计,包括硬件设计和软件设计。在程序调试期间用简单的串口通信电路,通过串口调试助手掌握了USB指令的传输过程,这对整个方案的设计起到了很大的指导作用。论文以单片机最小系统配合模拟键盘组成的USB键盘硬件系统,通过对D12芯片的学习与探索,在其基本命令接口的支持下,结合硬件进行相应的固件程序设计,使其在USB协议下,实现USB模块与PC的数据通信,完成USB键盘的功能模拟。 总结论文研究工作有阐述USB总线的原理、对本设计的系统要求作出了分析、根据要求选定元件和具体编程方案、针对系统所要实现的功能对相关芯片作了详细介绍以及在硬件部分设计了原理图。 关键词:USB;D12;PC

Abstract With the rapid development of computer technology and multimedia technology constantly updated, traditional computer peripheral interface because there are many shortcomings have been unable to meet the development needs of the https://www.360docs.net/doc/3a8266959.html,pared to traditional AT, PS / 2, serial, Universal Serial Bus USB, with fast, flexible and easy to use, easy to expand, support Plug and Play, a series of advantages, such as low cost, has been widely used. This paper describes the 51 series and USB related content, detailing some of the features of the system design, including hardware and software design.During debugging a simple serial communication circuit, through the serial port debugging assistant master USB transfer instructions, which designed the entire program has played a significant role in guiding.Thesis smallest single-chip system consisting of analog keyboard with a USB keyboard hardware system, by learning and exploration D12 chips, with the support of its basic command interface, in conjunction with the corresponding hardware firmware design, making it in the USB protocol, USB module data communication with the PC, the USB keyboard to complete the functional simulation. This paper summarizes research work has elaborated the principle of the USB bus, the system is designed to require the analysis, components and solutions based on the specific requirements of the selected programming for the system to achieve the function of the relevant chips are described in detail in the hardware part of the design as well as the principle of Figure. Keywords:USB;D12;PC

基于51单片机的简易逻辑分析仪设计

本科生毕业设计报告学院物理与电子工程学院专业电子信息工程 设计题目:基于51单片机的 简易逻辑分析仪设计 学生姓名 指导教师 (姓名及职称) 班级 学号 完成日期:年月

基于51单片机的简易逻辑分析仪设计 物理与电子工程学院电子信息工程 [摘要]本设计完成了一种能进行数字电路中多路数据测试的简易逻辑分析仪。它以51单片机控制核心,数模转换器为逻辑信号门限电平控制电路,用按键和 12864LCD作为人机交互界面,采用C51进行模块化编程,实现了四路信号的测试,具有成本低,使用方便等特点。 [关键词]数字电路单片机数模转换器逻辑分析仪 1 设计任务与要求 本设计的主要任务及参数指标是:数据位数4位,存储深度80字;数据速率最高1kHz;输入阻抗大于50kΩ;逻辑信号门限电平在1.0V~4.0V 范围内按8级任意设定。 2 设计方案 本系统采用51单片机为控制核心,系统由单片机系统、逻辑电平控制、按键、LCD显示、系统电源等模块构成。被测数据输入到逻辑电平控制模块,然后进行单片机进行测试,按键用于控制逻辑信号门限电平的大小,系统电源为各模块供电,各模块的供电电压为5V。

图1 系统框图 3 设计原理分析 3.1 单片机系统电路设计 图2 单片机系统电路 单片机系统为逻辑分析仪的核心,负责控制逻辑分析仪的逻辑电平、检测按键并驱动LCD 进行显示。单片机系统电路如图2所示,由晶体振荡器Y1、电容C3和C4构成振荡器电路,为单片机提供时钟信号。电容C1、电阻R2和R1、按键KEY1构成单片机复位电路,高电平复位,当按键KEY1按下的时间超过2个机器周期以上时,单片机就执行复位操作。EA 接高电平,单片机首先访问内部程序存储器。J1为1KΩ的排阻,作为P0口的外部上拉电阻。在硬件制作时为了方便单片机的测试和功能的扩展,把所有的I/O 口均通过排针引出。 EA/VP 31X119X218RESET 9 RD 17WR 16 INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P27 28 PSEN 29 ALE/P 30TXD 11RXD 10U18051 P10 P11P12P13P14P15P16P17P00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P27 123456789J1 1K +5 Y112M +5 RXD TXD RD WR T0T1INT0INT1C3 22p F C4 22p F R28.2K C110u F +5 12J6CON2 KEY1SW2 R1100 . .

51单片机教程

原作:平凡的单片机

1、何谓单片机一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控制)、RAM(数据存储)、ROM(程序存储)、输入/输出设备(例如:串行口、并行输出口等)。在个人计算机上这些部份被分成若干块芯片,安装一个称之为主板的印刷线路板上。而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如A/D,D/A等。 天!PC中的CPU一块就要卖几千块钱,这么多东西做在一起,还不得买个天价!再说这块芯片也得非常大了。不,价格并不高,从几元人民币到几十元人民币,体积也不大,一般用40脚封装,当然功能多一些单片机也有引脚比较多的,如68引脚,功能少的只有10多个或20多个引脚,有的甚至只8只引脚。为什么会这样呢?功能有强弱,打个比方,市场上面有的组合音响一套才卖几百块钱,可是有的一台功放机就要卖好几千。另外这种芯片的生产量很大,技术也很成熟,51系列的单片机已经做了十几年,所以价格就低了。既然如此,单片机的功能肯定不强,干吗要学它呢?话不能这样说,实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用PIII?应用的关键是看是否够用,是否有很好的性能价格比。所以8051出来十多年,依然没有被淘汰,还在不断的发展中。 2、MCS51单片机和8051、8031、89C51等的关系我们平常老是讲8051,又有什么8031,现在又有89C51,它们之间究竟是什么关系? MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。INTEL 公司将MCS51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机,它是由美国ATMEL 公司开发生产的。以后我们将用89C51来完成一系列的实验。 一、单片机的外部结构 拿到一块芯片,想要使用它,首先必须要知道怎样连线,我们用的一块称之为89C51的芯片,下面我们就看一下如何给它连线。1、电源:这当然是必不可少的了。单片机使用的是5V电源,其中正极接40引脚,负极(地)接20引脚。2、振蒎电路:单片机是一种时序电路,必须提供脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚。只要买来晶振,电容,连上就可以了,按图1接上即可。3、复位引脚:按图1中画法连好,至于复位是何含义及为何需要复要复位,在单片机功能中介绍。4、EA引脚:EA引脚接到正电源端。至此,一个单片机就接好,通上电,单片机就开始工作了。 我们的第一个任务是要用单片机点亮一只发光二极管LED,显然,这个LED必须要和单片机的某个引脚相连,否则单片机就没法控制它了,那么和哪个引脚相连呢?单片机上除了刚才用掉的5个引脚,还有35个,我们将这个LED和1脚相连。(见图1,其中R1是限流电阻) 按照这个图的接法,当1脚是高电平时,LED不亮,只有1脚是低电平时,LED才发亮。因此要1脚我们要能够控制,也就是说,我们要能够让1引脚按要求变为高或低电平。即然我们要控制1脚,就得给它起个名字,总不能就叫它一脚吧?叫它什么名字呢?设计51芯片的INTEL公司已经起好了,就叫它P1.0,这是规定,不可以由我们来更改。

51单片机I2C接口实验报告

(预习报告) 一、实验目的 掌握基于MCS-51系统的总线扩展的方法 二、实验内容 1.利用MCS-51系统的P1口模拟总线接口,扩展串口存储器24C16,每次存入1个数据,并反复读回,用示波器测试读回的波形。(分别以数据AAH,55H测试) 2.将MCS-51系统片内存储器的10个数据存入串口存储器24C16并读回,分别设置存入的地址为页地址+00H和页地址+07H。读回为地址页地址+00H,将读回的数据存放在片内存储器,并与发送数据进行比较。 三、硬件原理图 只需将24C16的SCL与P1.1相连,SDA与P1.0相连即可。 24C16资料:

四、程序清单 8-4-1 ACK BIT 10H ;应答位判断标志 SDA BIT P1.0 ;数据线 SCL BIT P1.1 ;时钟线 ORG 0030H SEND: LCALL START ;启动 MOV A,#0A0H ;控制字节为#0A0H LCALL WRBYTE ;发送控制字节 LCALL CACK ;接收应答 JNB ACK,SEND ;收到无效应答,重新发送 MOV A,#30H ;写入的地址为#30H LCALL WRBYTE ;发送地址 LCALL CACK ;接收应答 JNB ACK,SEND ;收到无效应答,重新发送 MOV A,#0AAH ;写入的数据位#0AAH LCALL WRBYTE ;发送数据 LCALL CACK ;接收应答 JNB ACK,SEND ;收到无效应答,重新发送 LCALL STOP ;停止 LCALL DELAY ;发送与接收之间加入一段延时 READ: LCALL START ;启动 MOV A,#0A0H ;控制字节为#0A0H LCALL WRBYTE ;发送控制字节 LCALL CACK ;接收应答 JNB ACK,READ ;收到无效应答,重新启动

单片机常用总线讲解

第8章单片机常用总线讲解 8.1 C总线接口 80C51单片机本身不具有总线接口,但是通过软件进行模拟,可以挂接具有C接口的芯片。 8.1.1 C总线的介绍 串行扩展总线在单片机系统中的应用是目前单片机技术发展的一种趋势。在目前比较流行的几种串行扩展总线中,总线以其严格的规范和众多带接口的外围器件而获得广泛应用。总线是PHILIPS公司推出的芯片间串行传输总线,它由两根线组成,一根是串行时钟线(SCL),一根是串行数据线(SDA)。主控器利用串行时钟线发出时钟信号,利用串行数据线发送或接收数据。总线由主控器电路引出,凡具有接口的电路(受控器)都可以挂接在总线上,主控器通过总线对受控器进行控制。 随着总线研究的深入,总线已经广泛应用于视/音频领域、IC卡行业和一些家电产品中,在智能仪器、仪表和工业测控领域也越来越多地得到应用。 8.1.2 总线的特点 总线的广泛应用是同它卓越的性能和简便的操作方法分不开的。总线的特点主要表现在以下几个方面: 硬件结构上具有相同的硬件接口界面。总线系统中,任何一个总线接口的外围器件,不论其功能差别有多大,都是通过串行数据线(SDA)和串行时钟线(SCL)连接到总线上。这一特点给用户在设计用用系统中带来了极大的便利性。用户不必理解每个总线接口器件的功能如何,只需将器件的SDA和SCL引脚连到总线上,然后对该器件模块进行独立的电路设计,从而简化了系统设计的复杂性,提高了系统抗干扰的能力。 线接口器件地址具有根大的独立性。每个接口芯片具有唯一的器件地址,由于不能发出串行时钟信号而只能作为从器件使用。各器件之间互不干扰,相互之间不能进行通信,各个器件可以单独供电。单片机与器件之间的通信是通过独一无二的器件地址来实现的。 软件操作的一致性。由于任何器件通过总线与单片机进行数据传送的方式是基本一样的, .v .. ..

51单片机I2C总线驱动程序

51单片机I2C总线驱动程序 SI2I2C 总线是PHLIPS 公司推出的一种串行总线,是具备多主机系统所需 的包括总线裁决和高低速器件同步功能的高性能串行总线。I2C 总线只有两根 双向信号线。一根是数据线SDA,另一根是时钟线SCL。 一.I2C 系统结构每个接到I2C 总线上的器件都有唯一的地址。主机与其它器 件间的数据传送可以是由主机发送数据到其它器件,这时主机即为发送器。由 总线上接收数据的器件则为接收器。 二.数据位的有效性规定I2C 总线进行数据传送时,时钟信号为高电平期间, 数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线 上的高电平或低电平状态才允许变化。 三.字节传送与应答每一个字节必须保证是8 位长度。数据传送时,先传送最 高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有 9 位)。 四.驱动程序#define uchar unsigned char#define uint unsigned int#define somenop() _nop_(),_nop_(),_nop_(),_nop_(),_nop_(),_nop_()sbit SCL=P2;sb it SDA=P2;123451.起始信号和终止信号 SCL 线为高电平期间,SDA 线由高电平向低电平的变化表示起始信号;SCL 线为高电平期间,SDA 线由低电平向高电平的变化表示终止信号。 起始和终止信号都是由主机发出的,在起始信号产生后,总线就处于被占用 的状态;在终止信号产生后,总线就处于空闲状态 void I2C_Start() //起始{SCL=1;somenop();SDA=1;somenop(); SDA=0;somenop();SCL=0;somenop();}void I2C_Stop() //终止{ SDA=0;somenop();SCL=1;somenop();SDA=1;somenop();}12345678910111213141

I2C总线的单片机C语言实现及其应用

I2C总线的单片机C语言实现及其应用 本文介绍了I2C总线的概念、接口特性和传输时序,提出了一种用51系列单片机的C语言(C51)模拟I 2C总线数据传输的软件方法,并给出了在数字高清晰度电视地面接收机中的应用。 关键词:I2C总线;单片机;C语言;高清晰度电视 1I2C总线概述 I2C(Intel-Integrated Circuit)总线是荷兰的Philips公司于八十年代初推出的一种芯片间串行总线扩展技术。它用两根线(数据线SDA、时钟线SCL)可完成总线上主机与器件的全双工同步数据传送,可极方便地构成多主机系统和外围器件扩展系统。I2C总线支持所有NMOS、CMOS、TTL等工艺制造的器件,其上所有的节点都连到同名的SDA、SCL上。I2C总方法,数据传送都有相同的操作模式,接口电器特性相同且独立,可在系统供电情况下从系统中移去或增加IC芯片,有I2C接口的外围器件都有应答能力,读写片内单元时有地址自动加1功能,易实现多个字节的自动操作。近年来,国际上有关公司制造了多达几百种的I2C总线器件,如8051系列单片机8XC752、LCD驱动器、RAM、I/O接口等芯片都使用了I2C 总线接口。随着数字技术的发展,I2C总线控制系统已经应用于越来越多的电子产品。 2I2C总线的数据传输 2.1接口特性 I2C总线接口的数据线SDA和时钟线SCL必须经过上拉电阻接到正电源VDD上,各个I2C接口电路输出端必须是漏极开路或集电极开路,以便完成“线与”的功能。I2C的SDA和SCL都是双向传输线,当总线空闲时,此两线都是“1”(高电平)。由于不同的器件都会接到I2C总线,逻辑的“0”(低)及“1”(高)的信号电平取决于VDD的电压。总线上能连接的最大器件数取决于其电容容限400PF。 2.2I2C总线上的传输时序 I2C总线上每传输一位数据都有一个时钟脉冲相对应,在标准模式下可达100kbit/s,高速模式下可达400kbit/s,总线上依据器件功能不同可建立简单的主/从关系(master/slave),只有带CPU的器件才可成主控器。图1为I2C总线一次完整的数据传输。SCL为高期间,SDA状态必须稳定,SCL为低时才允许SDA状态变化。SCL保持高电平期间,SDA出现由高至低的转换将启动I2C总线,出现由低至高的转换将停止数据传输。起始和终止信号通常由主控器产生。I2C总线的信号时序有严格规定,本应用采用标准模式,SCL低电平周期≥4.7μs,SCL高电平周期≥4.0μs,START和STOP之间的总线空闲时间≥4.7 μs。 I2C总线上传送的每个字节必须为8位,启动和停止之间可传输的数据字节数不受限制。采用串行传送,首先传送最高位,每传送一个字节后必须跟一个应答位。主控器产生应答所需的时钟脉冲期间,发送器必须释放数据线(SDA为高),以便接收器输出应答位。低电平为应答信号,高电平为非应答信号。非应答信号是当主控器作为接收器时,收到最后一个字节数据后,必须发送一个非应答信号给被控发送器,使被控发送器释放数据线,以便主控器发停止信号,终止数据传送。当从器件不能再接收字节时也会出现 非应答 信号这种情况。 I2C总线上的器件一般有两个地址:受控地址和通用广播访问地址,每个器件有唯一的受控地址用于定点通信,而相同的通用广播访问地址则用于主控方同时对所有器件进行访问。如图1所示,起始信号后主控器发送的第一个字节就是被读器件的受控地址,称作寻址字节。寻址字节由高7位地址和最低1位方向位组成,方向位为“0”表明主控器对被控器的写操作(W),方向位为“1”表明对被控器的读操作(R)。总线上每个器件在起始信号后都把自己的地址与寻址字节的前7位相比较,如相同则器件被选中,产生应

新型人机交互接口电路的设计

摘要主要介绍了TI公司的新型的16位超低功耗Flash型h6N30F44X系列单片机的结构、特性和功能及液晶显示器LCD的发光原理和类型,讨论了该系列单片机与ILD及键盘的人机接口电路的设计方案和相应的软件的实现方法,最后给出它在体内电刺激器的应用实例。 关键词单片机;MSP430;LCD;人机交互接口 1引言 在当今的各种实时自动控制和智能化仪器仪表中,人机交互是不可缺少的一部分。一般而言,人机交互是由系统配置的外部设备来完成,但其实现方式有两种:一种是由MCU力口驱动芯片实现,如键盘显示控制芯片SK5279A,串行数据传输数码显示驱动芯片MAX7219等等,这时显然MCU没有LCD的驱动功能。另一种就是MCU本身具有驱动功能,它通过数据总线与控制信号直接采用存储器访问形式或I/O设备访问形式控制键盘和LCD实现人机对话。这里的MCU主要有世界各大单片机生产厂商开发的各种单片机,其中TI公司的MSP430系列因其许多独特的特性引起许多研究人员的特别关注,在国内外的发展应用正逐步走向成熟。 2LCD简介 LCD(Liquid Crystal Display),即液晶显示器。液晶显示是通过环境光来显示信息的,它本身并不发光,因而功耗很低,只要求液晶周围有足够的光强。LCD是人与机器沟通的重要界面,早期以显像管(CRT/C athode Ray Tube)显示器为主,但随着科技不断进步,各种显示技术如雨后春笋般诞生。LCD由于具有轻薄短小、低耗电量、无辐射危险、平面直角显示以 及影像稳定不闪烁等优势,逐渐占据显示的主流地位。 LCD的类型,根据其分类方式的不同而不同。如根据LCD显示内容的不同可以分为段式LCD和点阵L CD。根据LCD驱动方式的不同可以分为静态驱动和多路驱动。 3MSP430F44X简介 MSP430F44X系列是TI公司最新推出的具有超低功耗特性的Flash型16位RISC指令集单片机[2]。该系列单片机性价比相当高,在系统设计、开发调试及实际应用上都表现出较明显的优势。它主要应用在各种要求极低功率消耗的场合,特别适合用于智能测量仪器、各种医疗器械、智能化家用电器和电池供电便携设备产品之中。 3.1系统结构 MSP430F44X的系统结构,主要包括:CPU、程序存储器(ROM)、数据存储器(RAM)、FLL+时钟系统(片内DCO+晶体振荡器)、看门狗定时器/通用目的定时器(WatchDog)、ADCl2(12位A/D)、比较器A(精确的模拟比较器,常用于斜边(Slope)A/D转换)、复位电压控制/电源电压管理、基本定时器(Basic Timerl)、定时器(Timer-a和Timer-B)、LCD控制器/比较器(多达160段)、硬件乘法器、I/O口和串行口[4]。系列中各种具体的型号稍有差别。在本次设计中,具体选择MSP430F449作为人机接口电路的设计具有许多独到的优势。这一点,读者可以根据TI公司相关的数据手册进行比较。 3.2片内外模块特性 MSP430F44X具有丰富的片内外围模块,其明显的特点是:具有48条I/0口线的6个并行口P1-P6,其中P1、p2具有中断能力,同时具有2个可用于UART/SPI模式选择的串行口(USART0和USARTl);内含12位的A/D转换器ADCl2,快速执行8×8、8×16、16×16乘法操作并立即得到结果的硬件乘法器;多达160段的LCD控制器/比较器,可以实现多种方式的驱动显示;可以实现UART、PWM、斜坡ADC 的16位Timer-A和16位Timer-B;非常灵活的时钟系统,既可用32768Hz的钟表晶振产生低频时钟,也可以用450kHz-8MHz的晶体产生高频时钟,同时还可以使用外部时钟源或者用不同控制频率的DCO;多达几十kB的Flash空间,这样数据既可以保存在片内的Flash信息存储器,也可保存在程序的Hash中的剩余空间。 4接口电路设计 4.1接口电路简图及说明 典型应用电路示意图。在该图中,LCD类型和键盘种类及数目的选择、下拉电阻的数值大小都必须认真

基于51单片机实现的电梯模型设计

电梯模型设计报告 学院:自动化学院 队名:xxx 队员:xxx 日期:2009.11.20

一、概述 电梯模型以51为核心处理器,步进电机为控制电机,用L298N 搭建驱动电机模块,结合光电传感器实现对电梯的上升,下降,准确平层各种运行方式的控制。利用矩阵键盘、ISD1760语音芯片,数码管等各种功能模块实现电梯的扩展功能及人机交互功能。 二、方案论证 方案一:直流伺服电机+光电传感控制方式。 优点:直流电机速度可以平滑调节,自带编码盘可以记录电梯运行位移,速度调节范围大。 缺点:用编码盘测量位移误差较大,对CPU运算处理要求较高而且直流电机运行时带有一定惯性,对平层带来较大难度。 方案二:步进电机+光电传感控制。 优点:步进电机可以用脉冲方式控制轿厢位移,配合光电传感模块可以准确实现轿厢平层;步进电机为输入脉冲时,电机可以卡死不发生转动,使得电梯在楼层处安全停止,等待相应操作。 缺点:步进电机转速较慢,速度控制要通过该变脉冲频率来调节,控制电路要求较高。 由于本作品为电梯模型,速度要求不高,通过单片机可以方便输出电机所需脉冲,配合L298芯片可以实现对步进电机的完美控制,

所以我们选择方案二。 三、详细设计方案 1.楼层模型设计 电梯模型采用易于加工的木材,选用1.2米长的木板作为模拟楼层,底座用三角架固定,确保电梯运行过程不会出现模型摇动现象。电梯轨道处拉两根铁丝作为电梯导轨,保障电梯的运动轨迹。 轿厢用纸盒模拟代替,盒子敞开一面,可以放入物品,模拟乘客进出电梯。 2.驱动电路模块 控制电机选用四相步进电机,步进角为1.8度。步进电机可以通过直流斩波改变顺序控制电机正反传,51单片机的定时/计数器可以模拟输出4路直流斩波,通过步进电机驱动电路控制步进电机。 驱动电路以L298N驱动芯片为核心部件,L298N芯片的电平电压与51单片机兼容,驱动电压可达50V完全可以驱动电梯模型所用控制电机。驱动电路如下图:

51单片机的学习经验(附学习总结)

51单片机的学习经验(附学习总结) OFweek工控网讯:作为一名电子技术从业人员,你学过单片机吗?你会运用单片机吗?我想你一定学过,但不一定会运用。因为学习单片机比学习其他学科需要付出更多的努力和代价,不仅要学习理论知识还要练习实际操作,而且主要是在实际操作中才能真正学到单片机技术。此外,学习单片机还需要投入一定的学习成本,随着你学习知识的扩展成本还会增加。 单片机作为一种简单的控制器在生活中有这广泛的应用,当然在工业型单片机在生产中也扮演着很重要的角色,所以对于一个学习自动化的工控人来说,学习单片机是非常有必要的。 单片机的学习经验 1、学习电子技术基础知识,如电路、模拟电路和数字电路。这是学习电类相关专业的基础。 2、学习计算机硬件知识,如计算机的简单组成原理(只需要了解),当然要知道CPU是什么?总线是什么?一些相关概念。 3、程序编写的相关知识,主要是汇编语言和C语言。了解结构化语言的程序设计方法,也就是三种结构(顺序结构、分支结构(或称选择结构)、循环结构),会一些常用的算法。 4、以上是基础,有了这些基础,学习51单片机就只要花几周的时间就能上手。但学习单片机时,主要从单片机的存储器开始,其中特殊功能寄存器是重点,学会之后,就可以学习单片机的基础部分了,主要是四个部分:51单片机I/O口的使用、中断的使用、定时器的使用、外部器件的扩展。这些部分都可以用软件仿真(可以用proteus软件)。 5、可以买一两块廉价的单片机开发板,用廉价的方法(可以用热转印法做PCB板)仿制一些更简单的实验功能板,开始做板时千万不做得太复杂,我带过的很多学生中,有少部分人总是觉得太简单了,做个复杂的,结果做了个把星期,没有成功,最后只有放弃。还有一点很重要,就是用PROTEUS仿真时,最好只做单一功能的仿真,否则可能与实际在硬件上做的结果不一样。 6、从网上下载一些实例进行研究学习,不断提高。 学习单片机的步骤

6264与51单片机扩展

Intel6264芯片 单片机内存扩展6264芯片 2012-5-2 1.Intel6264芯片 Intel 6264的特性及引脚信号Intel 6264的容量为8KB,是28引脚双列直插式芯片,采用CMOS工艺制造 A12~A0(address inputs):地址线,可寻址8KB的存储空间。 D7~D0(data bus):数据线,双向,三态。 OE(output enable):读出允许信号,输入,低电平有效。 WE(write enable):写允许信号,输入,低电平有效。 CE1(chip enable):片选信号1,输入,在读/写方式时为低电平。 CE2(chip enable):片选信号2,输入,在读/写方式时为高电平。 VCC:+5V工作电压。 GND:信号地。 Intel 6264的操作方式Intel 6264的操作方式由, CE1 , CE2的共同作用决定 ②读出:当和CE1为低电平,且和CE2为高电平时,数据输出缓冲器选通,被选中单元的数据送到数据线D7~D0上。 2. 74LS373 有54S373 和74LS373 两种线路结构型式,其主要电器特性的典型值如下(不同厂家具体值有差别):型号TPD PD 54S373/74S373 7ns 525mW 54LS373/74LS373 17ns 120mW 373 的输出端O0~O7 可直接与总线相连。当三态允许控制端OE 为低电平时,Q0~Q7为正常逻辑状态,可用来驱动负载或总线。当OE 为高电平时,Q0~Q7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端LE 为高电平时,Q 随数据D 而变。当LE 为低电平时,D 被锁存在已建立

51单片机I2C标准函数程序

51单片机I2C标准函数程序 #include #include #include typedef unsigned char uchar; typedef unsigned int uint; sbit SDA=P1^1; sbit SCL=P1^0; //===================================================== ========================= void Start()//开始信号 { SDA=1; SCL=1; _nop_(); _nop_(); SDA=0; _nop_(); _nop_(); SCL=0; } /************************************************************ ******************/ void Stop() //停止信号 { SDA=0; SCL=1; _nop_(); _nop_(); SDA=1; _nop_(); _nop_(); SDA=0; SCL=0; } /************************************************************ ******************/ void Ack()//应答信号

{ SDA=0; SCL=1; _nop_(); _nop_(); SCL=0; SDA=1; } /************************************************************ ******************/ void NoAck() //非应答信号 { SDA=1; SCL=1; _nop_(); _nop_(); SCL=0; SDA=0; } /************************************************************ ******************/ bit TestACk()//检查应答信号 { bit Cack=0; SDA=1; SCL=1; Cack=SDA; SCL=0; return(Cack); } /************************************************************ ******************/ void WriteByte(uchar input)//向I2C从设备中写入1字节 { uchar i; for(i=8;i!=0;i--) { SDA=(bit)(inupt&0x80); SCL=1; _nop_(); _nop_();

基于单片机开发的可定制人机交互界面

随着社会需要和科学技术的发展,产品的竞争愈来愈激烈,更新的周期愈来愈短,因而要求设计者能很快地设计出新产品;而在产品的整体设计中,人机交互界面的设计往往占据着很大一部分工作,这样,不但极大地增加了产品的开发成本而且延长了产品的上市周期。本文论述的基于P89C51RD2的人机交互界面是一种界面可定制、结构紧凑、价格低廉、简单易用、性能优良的通用型人机交互界面,能很好地解决上述问题。 1 系统工作原理 1.1 工作原理 按照实际应用中控制系统的需要及控制系统与人机交互界面的约定,通过PC机上的可视化人机界面定制软件,定制好整个界面信息,再把定制好的界面信息下载到人机交互界面系统中,就可以轻松地实现人机界面的定制。在应用中,人机交互界面通过串行接口与控制系统进行交互,发送按键等信息给控制系统,并接收所需的可变信息,以完成人机交互。 现以空压机控制器的部分人机界面为例来说明相关概念,界面系统示意图如图1所示。相关概念说明如下: ①屏幕,即LCD显示区,由一个或多个屏幕项组成; ②屏幕项,即屏幕里面的按其显示内容的性质差异来划分的一个个整体单元,如文本屏幕项等; ③屏幕项的分类,按其显示内容的性质差异分为文本、整型、浮点型、枚举型、图形等。 整个人机界面系统由一个个存在链接关系的屏幕构成,而每个屏幕又由一个或多个屏幕项组成。各屏幕项有其自身的属性,也存在着某些相互的链接关系(例如,由某个屏幕项链接到另外一个屏)。这样,通过对各屏幕项的合理组织而构成一个链表网络,再通过对此链表网络的操作来实现人机界面的操作,即屏幕的显示操作。

1.2 系统的工作过程 系统的软件部分由用户引导程序和应用程序组成。系统运行后,由用户引导程序决定是执行界面信息的更新还是正常运行。若执行界面信息的更新,则系统通过串行接口从上位机接收界面定制信息,并通过在应用编程(IAP)功能保存所接收的信息,然后通过本地读取新的界面定制信息建立链表网络;若正常运行,则直接从本地读取旧的界面定制信息建立链表网络。应用程序实现的功能包括按键的输入、界面的显示及与控制系统的通信。 2 系统硬件设计及电路原理图 本系统采用Philips公司功能强大、资源丰富的P89C51RD2单片机作为微控制器,通过扩展液晶模块及按键模块来构成人机交互界面。系统的硬件电路原理如图2所示。 2.1 P89C51RD2单片机简介 P89C51RD2是Philips公司内核基于8位80C51单片机的派生产品,在完全保留80C51指令系统和硬件结构的大框架下,进行了多方面的加强、扩展和创新。 P89C51RD2具有64 KB并行可编程的非易失性Flash程序存储器,并可实现对器件串行在系统编程和在应用中编程。 2.2 液晶显示模块 本系统采用的是OCM12864图形点阵液晶显示模块。OCM12864液晶显示模块是128×64点阵型液晶显示模块,可显示各种字符及图形,可与CPU直接相连;具有8位标准数据总线、6条控制线及电源线。 2.3 按键输入模块 根据系统的需要,系统至少需要设定如下6个屏幕操作按键:左、右、上、下、换屏、确定按键。其中,左、右键用于切换屏幕项;上、下键用于修改可变屏幕项;确定键用于产生所选屏幕项对应的功能动作;换屏键用于进入所选中项的链

单片机模拟I2C总线及AT24C01应用实例(格式整理版)

单片机模拟I2C总线及AT24C01应用实例(格式整理版) I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。 1.I2C总线特点 I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。I2C总线的另一个优点是,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。 2.I2C总线工作原理 2.1总线的构成及信号类型 I2C总线是一种串行数据总线,只有二根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。 2.2位的传输 SDA线上的数据必须在时钟的高电平周期保持稳定数据线的高或低电平状态只有在SCL 线的时钟信号是低电平时才能改变,见图1:

相关文档
最新文档