#include<reg51.h>/*************************ds1302与at89s52引脚连接********************/sbit T_RST=P3^5; sbit T_CLK=P3^6; sbit T_IO=P3^7; sbit ACC0=ACC^0;sbit ACC7=ACC^7;unsigned char seg[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09}; //0~~9段码 /******************DS1302:写入操作(上升沿)*********************/ void write_byte(unsigned char da){ unsigned char i; ACC=da; for(i=8;i>0;i--) { T_IO=ACC0; T_CLK=0; T_CLK=1; ACC=ACC>>1; }} /******************DS1302:读取操作(下降沿)*****************/unsigned char read_byte(void){ unsigned char i; for(i=0;i<8;i++) { ACC=ACC>>1; T_CLK = 1; T_CLK = 0; ACC7 = T_IO; } return(ACC); } /******************DS1302:写入数据(先送地址,再写数据)***************************/ void write_1302(unsigned char addr,unsigned char da){ T_RST=0; //停止工作 T_CLK=0; T_RST=1; //重新工作 write_byte(addr); //写入地址 write_byte(da); T_RST=0; T_CLK=1;}
上传时间: 2014-01-17
上传用户:sglccwk
8051单片机教程:一台能够工作的计算机要有这样几个部份构成: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来完成一系列的实验。
上传时间: 2013-11-17
上传用户:crazyer
8086总线操作:8086微处理器与片外存储器或I/O接口进行数据传输时,经BIU执行8086规定的总线操作。总线周期的组成:8086的基本总线周期为4个时钟周期,每个时钟周期间隔称为一个T状态。8086的中断系统:8086微处理器可处理256种中断。8086对外部硬件中断请求INTR的响应: 当INTR有一高电平,即有可屏蔽中断请求。若此时IF=1且当前指令执行完,进入中断响应周期,处理过程如下:INTA#在两个总线周期中分别发出有效信号,第二周期中8086读到中断类型码保护现场:标志寄存器入栈,清除IF和TF标志位,保护断点(下一条指令地址入栈)。8086总线请求:在一个系统中,若存在多个可控制总线的主模块时,总线使用权的转移存在着一个请求与响应的过程。
上传时间: 2013-10-21
上传用户:皇族传媒
单片机基础知识单片机的外部结构:1、 DIP40双列直插;2、 P0,P1,P2,P3四个8位准双向I/O引脚;(作为I/O输入时,要先输出高电平)3、 电源VCC(PIN40)和地线GND(PIN20);4、 高电平复位RESET(PIN9);(10uF电容接VCC与RESET,即可实现上电复位)5、 内置振荡电路,外部只要接晶体至X1(PIN18)和X0(PIN19);(频率为主频的12倍)6、 程序配置EA(PIN31)接高电平VCC;(运行单片机内部ROM中的程序)7、 P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1 单片机内部I/O部件:(所为学习单片机,实际上就是编程控制以下I/O部件,完成指定任务)1、 四个8位通用I/O端口,对应引脚P0、P1、P2和P3;2、 两个16位定时计数器;(TMOD,TCON,TL0,TH0,TL1,TH1)3、 一个串行通信接口;(SCON,SBUF)4、 一个中断控制器;(IE,IP)针对AT89C52单片机,头文件AT89x52.h给出了SFR特殊功能寄存器所有端口的定义。教科书的160页给出了针对MCS51系列单片机的C语言扩展变量类型。 C语言编程基础:1、 十六进制表示字节0x5a:二进制为01011010B;0x6E为01101110。2、 如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8位。3、 ++var表示对变量var先增一;var—表示对变量后减一。4、 x |= 0x0f;表示为 x = x | 0x0f;5、 TMOD = ( TMOD & 0xf0 ) | 0x05;表示给变量TMOD的低四位赋值0x5,而不改变TMOD的高四位。6、 While( 1 ); 表示无限执行该语句,即死循环。语句后的分号表示空循环体,也就是{;}第一章 单片机最小应用系统:单片机最小系统的硬件原理接线图:1、 接电源:VCC(PIN40)、GND(PIN20)。加接退耦电容0.1uF2、 接晶体:X1(PIN18)、X2(PIN19)。注意标出晶体频率(选用12MHz),还有辅助电容30pF3、 接复位:RES(PIN9)。接上电复位电路,以及手动复位电路,分析复位工作原理4、 接配置:EA(PIN31)。说明原因。第二章 基本I/O口的应用第三章 显示驱动第七章 串行接口应用
标签: 单片机
上传时间: 2013-10-30
上传用户:athjac
具有梯形反电动势的永磁同步电动机通常被称为无刷直流电动机,它具有结构简单、体积小、重量轻、效率高、高功率密度、启动扭矩大、惯量小和响应快等其它种类直流电机无法比拟的特性。采用电子换向器替代了传统直流电动机的机械换向装置,从而克服了电刷和换向器所引起的噪声、火花、电磁干扰、寿命短等一系列弊病。由于无刷直流电动机既具备交流电动机的结构简单、运行可靠、维护方便等一系列优点,又具 有直流电动机的运行效率高、无励磁损耗以及调速性能好等诸多优点,故其在在家用消费类产品(空调、冰箱、洗衣机)和IT周边产品(打印机、软驱、硬驱)中得到广泛的应用。 C8051F单片机是美国Silabs公司推出的一种与51系列单片机内核兼容的单片机,具有高速、高性能、高集成度。以C8051F020为例,具有如下特点: C8051F020片上系统单片机片内资源: 一、模块外设 (1)逐次逼近型8路12位ADC0 转换速率最大100ksps 可编程增益放大器PGA 温度传感器 (2)8路8位ADC1输入与P1口复用 转换速率500ksps 可编程增益放大器PGA (3)两个12 位DAC (4)两个模拟电压比较器 (5)电压基准内部提供2.43V 外部基准可输入 (6)精确的VDD监视器 二、高速8051微控制器内核 流水线式指令结构速度可达25MIPS 22个矢量中断源 三、存储器 片内4352字节数据RAM 64KBFlash程序存储器可作非易失性存储
上传时间: 2013-12-21
上传用户:bnfm
C8051Fxxx 系列单片机是完全集成的混合信号系统级芯片,具有与8051 兼容的微控制器内核,与MCS-51 指令集完全兼容。除了具有标准8052 的数字外设部件之外,片内还集成了数据采集和控制系统中常用的模拟部件和其它数字外设及功能部件。参见表1.1 的产品选择指南可快速查看每个MCU 的特性。 MCU 中的外设或功能部件包括模拟多路选择器、可编程增益放大器、ADC、DAC、电压比较器、电压基准、温度传感器、SMBus/ I2C、UART、SPI、可编程计数器/定时器阵列(PCA)、定时器、数字I/O 端口、电源监视器、看门狗定时器(WDT)和时钟振荡器等。所有器件都有内置的FLASH 程序存储器和256 字节的内部RAM,有些器件内部还有位于外部数据存储器空间的RAM,即XRAM。C8051Fxxx 单片机采用流水线结构,机器周期由标准的12 个系统时钟周期降为1 个系统时钟周期,处理能力大大提高,峰值性能可达25MIPS。C8051Fxxx 单片机是真正能独立工作的片上系统(SOC)。每个MCU 都能有效地管理模拟和数字外设,可以关闭单个或全部外设以节省功耗。FLASH 存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现场更新8051 固件。应用程序可以使用MOVC 和MOVX 指令对FLASH 进行读或改写,每次读或写一个字节。这一特性允许将程序存储器用于非易失性数据存储以及在软件控制下更新程序代码。片内JTAG 调试支持功能允许使用安装在最终应用系统上的产品MCU 进行非侵入式(不占用片内资源)、全速、在系统调试。该调试系统支持观察和修改存储器和寄存器,支持断点、单步、运行和停机命令。在使用JTAG 调试时,所有的模拟和数字外设都可全功能运行。每个MCU 都可在工业温度范围(-45℃到+85℃)内用2.7V-3.6V(F018/019 为2.8V-3.6V)的电压工作。端口I/O、/RST 和JTAG 引脚都容许5V 的输入信号电压。
上传时间: 2013-11-14
上传用户:jiangshandz
本章主要介绍51系列单片机系统扩展问题,在本章中要研究较多的硬件方面及硬软结合方面的问题,本章与第一章关系密切,在学习本章内容之前,要先明确51系列单片机本身的系统资源,可先复习一下前面几章的有关单片机硬件组成方面的内容。 本章将介绍以下具体内容: 系统扩展的含义、单片机的地址总线和数据总线、常见系统扩展电路举例。§7.0 前言 1.系统扩展的含义 单片机中虽然已经集成了CPU、I/O口、定时器、中断系统、存储器等计算机的基本部件(即系统资源),但是对一些较复杂应用系统来说有时感到以上资源中的一种或几种不够用,这就需要在单片机芯片外加相应的芯片、电路,使得有关功能得以扩充,我们称为系统扩展(即系统资源的扩充)。 2.系统扩展分类----单一功能的扩展 综合功能的扩展3.系统扩展需要解决的问题---- 单片机与相应芯片的接口电路连接(即地址总线、数据总线、控制总线的连接)与编程。4.单片机的地址总线和数据总线 51系列单片机没有专用的对外地址总线和数据总线,其P0口和P2口既是通用I/O口,同时P0口还是分时复用的双向数据总线和低8位地址总线(一般需要加一级锁存器),而P2口则是高8位地址总线5.常见系统扩展电路(1)单一功能的系统扩展 存储器的扩展(程序存储器、数据存储器、E2PROM ) 外部中断源的扩展(简单门电路) 并行口的扩展(8155)(2)综合功能的扩展 外部RAM、定时器、并行口扩展(8155) 存储器、并行口、定时器扩展(多芯片)7.1.1 程序存储器的扩展.程序存储器的作用----存放程序代码或常数表格 .扩展时所用芯片----一般用只读型存储器芯片(可以是EPROM、E2PROM、 FLASH芯片等)。 .扩展电路连接 ---- 用EPROM 2764扩展程序存储器。 .存储器地址分析----究竟单片机输出什么地址值时,可以指向存储器中的某一单元。
上传时间: 2013-10-19
上传用户:zhaoq123
什么是JTAG 到底什么是JTAG呢? JTAG(Joint Test Action Group)联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如DSP、FPGA器件等。标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 JTAG最初是用来对芯片进行测试的,基本原理是在器件内部定义一个TAP(Test Access Port�测试访问口)通过专用的JTAG测试工具对进行内部节点进行测试。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。现在,JTAG接口还常用于实现ISP(In-System rogrammable�在线编程),对FLASH等器件进行编程。 JTAG编程方式是在线编程,传统生产流程中先对芯片进行预编程现再装到板上因此而改变,简化的流程为先固定器件到电路板上,再用JTAG编程,从而大大加快工程进度。JTAG接口可对PSD芯片内部的所有部件进行编程 JTAG的一些说明 通常所说的JTAG大致分两类,一类用于测试芯片的电气特性,检测芯片是否有问题;一类用于Debug;一般支持JTAG的CPU内都包含了这两个模块。 一个含有JTAG Debug接口模块的CPU,只要时钟正常,就可以通过JTAG接口访问CPU的内部寄存器和挂在CPU总线上的设备,如FLASH,RAM,SOC(比如4510B,44Box,AT91M系列)内置模块的寄存器,象UART,Timers,GPIO等等的寄存器。 上面说的只是JTAG接口所具备的能力,要使用这些功能,还需要软件的配合,具体实现的功能则由具体的软件决定。 例如下载程序到RAM功能。了解SOC的都知道,要使用外接的RAM,需要参照SOC DataSheet的寄存器说明,设置RAM的基地址,总线宽度,访问速度等等。有的SOC则还需要Remap,才能正常工作。运行Firmware时,这些设置由Firmware的初始化程序完成。但如果使用JTAG接口,相关的寄存器可能还处在上电值,甚至时错误值,RAM不能正常工作,所以下载必然要失败。要正常使用,先要想办法设置RAM。在ADW中,可以在Console窗口通过Let 命令设置,在AXD中可以在Console窗口通过Set命令设置。
上传时间: 2013-10-23
上传用户:aeiouetla
自动检测80C51 串行通讯中的波特率本文介绍一种在80C51 串行通讯应用中自动检测波特率的方法。按照经验,程序起动后所接收到的第1 个字符用于测量波特率。这种方法可以不用设定难于记忆的开关,还可以免去在有关应用中使用多种不同波特率的烦恼。人们可以设想:一种可靠地实现自动波特检测的方法是可能的,它无须严格限制可被确认的字符。问题是:在各种的条件下,如何可以在大量允许出现的字符中找出波特率的定时间隔。显然,最快捷的方法是检测一个单独位时间(single bit time),以确定接收波特率应该是多少。可是,在RS-232 模式下,许多ASCII 字符并不能测量出一个单独位时间。对于大多数字符来说,只要波特率存在合理波动(这里的波特率是指标准波特率),从起始位到最后一位“可见”位的数据传输周期就会在一定范围内发生变化。此外,许多系统采用8 位数据、无奇偶校验的格式传输ASCII 字符。在这种格式里,普通ASCII 字节不会有MSB 设定
上传时间: 2013-10-15
上传用户:shirleyYim
摘要: 串行传输技术具有更高的传输速率和更低的设计成本, 已成为业界首选, 被广泛应用于高速通信领域。提出了一种新的高速串行传输接口的设计方案, 改进了Aurora 协议数据帧格式定义的弊端, 并采用高速串行收发器Rocket I/O, 实现数据率为2.5 Gbps的高速串行传输。关键词: 高速串行传输; Rocket I/O; Aurora 协议 为促使FPGA 芯片与串行传输技术更好地结合以满足市场需求, Xilinx 公司适时推出了内嵌高速串行收发器RocketI/O 的Virtex II Pro 系列FPGA 和可升级的小型链路层协议———Aurora 协议。Rocket I/O支持从622 Mbps 至3.125 Gbps的全双工传输速率, 还具有8 B/10 B 编解码、时钟生成及恢复等功能, 可以理想地适用于芯片之间或背板的高速串行数据传输。Aurora 协议是为专有上层协议或行业标准的上层协议提供透明接口的第一款串行互连协议, 可用于高速线性通路之间的点到点串行数据传输, 同时其可扩展的带宽, 为系统设计人员提供了所需要的灵活性[4]。但该协议帧格式的定义存在弊端,会导致系统资源的浪费。本文提出的设计方案可以改进Aurora 协议的固有缺陷,提高系统性能, 实现数据率为2.5 Gbps 的高速串行传输, 具有良好的可行性和广阔的应用前景。
上传时间: 2013-11-06
上传用户:smallfish