void UART_init() { //初始化串行口和波特率发生器 SCON =0x58 //选择串口工作方式,打开接收允许 TMOD =0x21 //定时器1工作在方式2,定时器0工作在方式1 TH1 =0xfd //实现波特率9600(系统时钟11.0592MHZ) TR1 =1 //启动定时器T1 ET1 =0 ES=1 //允许串行口中断 PS=1 //设计串行口中断优先级 EA =1 //单片机中断允许 }
上传时间: 2014-08-30
上传用户:彭玖华
void display() //数码显示 { SCON=0; //初始化串行口方式 SBUF=dispcode[ge]; while(!TI); TI=0; led4=0; delay(2); led4=1; SBUF=dispcode[shi]; while(!TI); TI=0; led3=0; delay(2); led3=1;
上传时间: 2013-11-20
上传用户:wtrl
本书从应用的角度,详细地介绍了MCS-51单片机的硬件结构、指令系统、各种硬件接口设计、各种常用的数据运算和处理程序及接口驱动程序的设计以及MCS-51单片机应用系统的设计,并对MCS-51单片机应用系统设计中的抗干扰技术以及各种新器件也作了详细的介绍。本书突出了选取内容的实用性、典型性。书中的应用实例,大多来自科研工作及教学实践,且经过检验,内容丰富、翔实。 本书可作为工科院校的本科生、研究生、专科生学习MCS-51单片机课程的教材,也可供从事自动控制、智能仪器仪表、测试、机电一体化以及各类从事MCS-51单片机应用的工程技术人员参考。 第一章 单片微型计等机概述 1.1 单片机的历史及发展概况 1.2 单片机的发展趋势 1.3 单片机的应用 1.3.1 单片机的特点 1.3.2 单片机的应用范围 1.4 8位单片机的主要生产厂家和机型 1.5 MCS-51系列单片机 第二章 MCS-51单片机的硬件结构 2.1 MCS-51单片机的硬件结构 2.2 MCS-51的引脚 2.2.1 电源及时钟引脚 2.2.2 控制引脚 2.2.3 I/O口引脚 2.3 MCS-51单片机的中央处理器(CPU) 2.3.1 运算部件 2.3.2 控制部件 2.4 MCS-51存储器的结构 2.4.1 程序存储器 2.4.2 内部数据存储器 2.4.3 特殊功能寄存器(SFR) 2.4.4 位地址空间 2.4.5 外部数据存储器 2.5 I/O端口 2.5.1 I/O口的内部结构 2.5.2 I/O口的读操作 2.5.3 I/O口的写操作及负载能力 2.6 复位电路 2.6.1 复位时各寄存器的状态 2.6.2 复位电路 2.7 时钟电路 2.7.1 内部时钟方式 2.7.2 外部时钟方式 2.7.3 时钟信号的输出 第三章 MCS-51的指令系统 3.1 MCS-51指令系统的寻址方式 3.1.1 寄存器寻址 3.1.2 直接寻址 3.1.3 寄存器间接寻址 3.1.4 立即寻址 3.1.5 基址寄存器加变址寄存器间址寻址 3.2 MCS-51指令系统及一般说明 3.2.1 数据传送类指令 3.2.2 算术操作类指令 3.2.3 逻辑运算指令 3.2.4 控制转移类指令 3.2.5 位操作类指令 第四章 MCS-51的定时器/计数器 4.1 定时器/计数器的结构 4.1.1 工作方式控制寄存器TMOD 4.1.2 定时器/计数器控制寄存器TCON 4.2 定时器/计数器的四种工作方式 4.2.1 方式0 4.2.2 方式1 4.2.3 方式2 4.2.4 方式3 4.3 定时器/计数器对输入信号的要求 4.4 定时器/计数器编程和应用 4.4.1 方式o应用(1ms定时) 4.4.2 方式1应用 4.4.3 方式2计数方式 4.4.4 方式3的应用 4.4.5 定时器溢出同步问题 4.4.6 运行中读定时器/计数器 4.4.7 门控制位GATE的功能和使用方法(以T1为例) 第五章 MCS-51的串行口 5.1 串行口的结构 5.1.1 串行口控制寄存器SCON 5.1.2 特殊功能寄存器PCON 5.2 串行口的工作方式 5.2.1 方式0 5.2.2 方式1 5.2.3 方式2 5.2.4 方式3 5.3 多机通讯 5.4 波特率的制定方法 5.4.1 波特率的定义 5.4.2 定时器T1产生波特率的计算 5.5 串行口的编程和应用 5.5.1 串行口方式1应用编程(双机通讯) 5.5.2 串行口方式2应用编程 5.5.3 串行口方式3应用编程(双机通讯) 第六章 MCS-51的中断系统 6.1 中断请求源 6.2 中断控制 6.2.1 中断屏蔽 6.2.2 中断优先级优 6.3 中断的响应过程 6.4 外部中断的响应时间 6.5 外部中断的方式选择 6.5.1 电平触发方式 6.5.2 边沿触发方式 6.6 多外部中断源系统设计 6.6.1 定时器作为外部中断源的使用方法 6.6.2 中断和查询结合的方法 6.6.3 用优先权编码器扩展外部中断源 第七章 MCS-51单片机扩展存储器的设计 7.1 概述 7.1.1 只读存储器 7.1.2 可读写存储器 7.1.3 不挥发性读写存储器 7.1.4 特殊存储器 7.2 存储器扩展的基本方法 7.2.1 MCS-51单片机对存储器的控制 7.2.2 外扩存储器时应注意的问题 7.3 程序存储器EPROM的扩展 7.3.1 程序存储器的操作时序 7.3.2 常用的EPROM芯片 7.3.3 外部地址锁存器和地址译码器 7.3.4 典型EPROM扩展电路 7.4 静态数据存储的器扩展 7.4.1 外扩数据存储器的操作时序 7.4.2 常用的SRAM芯片 7.4.3 64K字节以内SRAM的扩展 7.4.4 超过64K字节SRAM扩展 7.5 不挥发性读写存储器扩展 7.5.1 EPROM扩展 7.5.2 SRAM掉电保护电路 7.6 特殊存储器扩展 7.6.1 双口RAMIDT7132的扩展 7.6.2 快擦写存储器的扩展 7.6.3 先进先出双端口RAM的扩展 第八章 MCS-51扩展I/O接口的设计 8.1 扩展概述 8.2 MCS-51单片机与可编程并行I/O芯片8255A的接口 8.2.1 8255A芯片介绍 8.2.2 8031单片机同8255A的接口 8.2.3 接口应用举例 8.3 MCS-51与可编程RAM/IO芯片8155H的接口 8.3.1 8155H芯片介绍 8.3.2 8031单片机与8155H的接口及应用 8.4 用MCS-51的串行口扩展并行口 8.4.1 扩展并行输入口 8.4.2 扩展并行输出口 8.5 用74LSTTL电路扩展并行I/O口 8.5.1 用74LS377扩展一个8位并行输出口 8.5.2 用74LS373扩展一个8位并行输入口 8.5.3 MCS-51单片机与总线驱动器的接口 8.6 MCS-51与8253的接口 8.6.1 逻辑结构与操作编址 8.6.2 8253工作方式和控制字定义 8.6.3 8253的工作方式与操作时序 8.6.4 8253的接口和编程实例 第九章 MCS-51与键盘、打印机的接口 9.1 LED显示器接口原理 9.1.1 LED显示器结构 9.1.2 显示器工作原理 9.2 键盘接口原理 9.2.1 键盘工作原理 9.2.2 单片机对非编码键盘的控制方式 9.3 键盘/显示器接口实例 9.3.1 利用8155H芯片实现键盘/显示器接口 9.3.2 利用8031的串行口实现键盘/显示器接口 9.3.3 利用专用键盘/显示器接口芯片8279实现键盘/显示器接口 9.4 MCS-51与液晶显示器(LCD)的接口 9.4.1 LCD的基本结构及工作原理 9.4.2 点阵式液晶显示控制器HD61830介绍 9.5 MCS-51与微型打印机的接口 9.5.1 MCS-51与TPμp-40A/16A微型打印机的接口 9.5.2 MCS-51与GP16微型打印机的接口 9.5.3 MCS-51与PP40绘图打印机的接口 9.6 MCS-51单片机与BCD码拨盘的接口设计 9.6.1 BCD码拨盘 9.6.2 BCD码拨盘与单片机的接口 9.6.3 拨盘输出程序 9.7 MCS-51单片机与CRT的接口 9.7.1 SCIBCRT接口板的主要特点及技术参数 9.7.2 SCIB接口板的工作原理 9.7.3 SCIB与MCS-51单片机的接口 9.7.4 SCIB的CRT显示软件设计方法 第十章 MCS-51与D/A、A/D的接口 10.1 有关DAC及ADC的性能指标和选择要点 10.1.1 性能指标 10.1.2 选择ABC和DAC的要点 10.2 MCS-51与DAC的接口 10.2.1 MCS-51与DAC0832的接口 10.2.2 MCS-51同DAC1020及DAC1220的接口 10.2.3 MCS-51同串行输入的DAC芯片AD7543的接口 10.3 MCS-51与ADC的接口 10.3.1 MCS-51与5G14433(双积分型)的接口 10.3.2 MCS-51与ICL7135(双积分型)的接口 10.3.3 MCS-51与ICL7109(双积分型)的接口 10.3.4 MCS-51与ADC0809(逐次逼近型)的接口 10.3.5 8031AD574(逐次逼近型)的接口 10.4 V/F转换器接口技术 10.4.1 V/F转换器实现A/D转换的方法 10.4.2 常用V/F转换器LMX31简介 10.4.3 V/F转换器与MCS-51单片机接口 10.4.4 LM331应用举例 第十一章 标准串行接口及应用 11.1 概述 11.2 串行通讯的接口标准 11.2.1 RS-232C接口 11.2.2 RS-422A接口 11.2.3 RS-485接口 11.2.4 各种串行接口性能比较 11.3 双机串行通讯技术 11.3.1 单片机双机通讯技术 11.3.2 PC机与8031单片机双机通讯技术 11.4 多机串行通讯技术 11.4.1 单片机多机通讯技术 11.4.2 IBM-PC机与单片机多机通讯技术 11.5 串行通讯中的波特率设置技术 11.5.1 IBM-PC/XT系统中波特率的产生 11.5.2 MCS-51单片机串行通讯波特率的确定 11.5.3 波特率相对误差范围的确定方法 11.5.4 SMOD位对波特率的影响 第十二章 MCS-51的功率接口 12.1 常用功率器件 12.1.1 晶闸管 12.1.2 固态继电器 12.1.3 功率晶体管 12.1.4 功率场效应晶体管 12.2 开关型功率接口 12.2.1 光电耦合器驱动接口 12.2.2 继电器型驱动接口 12.2.3 晶闸管及脉冲变压器驱动接口 第十三章 MCS-51单片机与日历的接口设计 13.1 概述 13.2 MCS-51单片机与实时日历时钟芯片MSM5832的接口设计 13.2.1 MSM5832性能及引脚说明 13.2.2 MSM5832时序分析 13.2.3 8031单片机与MSM5832的接口设计 13.3 MCS-51单片机与实时日历时钟芯片MC146818的接口设计 13.3.1 MC146818性能及引脚说明 13.3.2 MC146818芯片地址分配及各单元的编程 13.3.3 MC146818的中断 13.3.4 8031单片机与MC146818的接口电路设计 13.3.5 8031单片机与MC146818的接口软件设计 第十四章 MCS-51程序设计及实用子程序 14.1 查表程序设计 14.2 散转程序设计 14.2.1 使用转移指令表的散转程序 14.2.2 使用地地址偏移量表的散转程序 14.2.3 使用转向地址表的散转程序 14.2.4 利用RET指令实现的散转程序 14.3 循环程序设计 14.3.1 单循环 14.3.2 多重循环 14.4 定点数运算程序设计 14.4.1 定点数的表示方法 14.4.2 定点数加减运算 14.4.3 定点数乘法运算 14.4.4 定点数除法 14.5 浮点数运算程序设计 14.5.1 浮点数的表示 14.5.2 浮点数的加减法运算 14.5.3 浮点数乘除法运算 14.5.4 定点数与浮点数的转换 14.6 码制转换 ……
上传时间: 2013-11-06
上传用户:xuanjie
给初学单片机的经典必备实验单片机学习最重要是的是要搞清楚其内部的硬件结构。如:p0 p1 p2 p3 T1 T2 以及UART。 至于在编程方面,首先要理解单片机其编程语言和一般的汇编语言以及c语言的区别。 最大的不 同是在于单片机编程主要是围绕定时器和UART来编程的, 所以要你对那些特殊寄存器要特别的熟 悉,如TMOD PCON SCON PSW IP,一提起这些你应该马上知道这些寄存器里面所包含位及其中的意 义。如果你做到了这点,可以说单片机你算入门了。 刚开始不要学太多的单片机,单片机的种类很多,但你学精了一个,其他的很好学的,无非只是 在定时器和寄存器上有所不同罢了。 单片机学习是一个辛苦的过程,希望大家能吃苦耐劳,持之以恒。 鉴于本人学习的不足之处,少许错误,尽情谅解。 感谢您使用本教程。
上传时间: 2013-11-19
上传用户:xjy441694216
高速51内核芯片c8051的学习资料 位7 SMOD 串行口波特率加倍允许0 串行口波特率是SCON 中的串行口模式定义值1 串行口波特率是SCON 中给出的串行口模式定义值的双倍位6 GF4-GF0 通用标志4-0这些都是软件控制下的通用标志位1 停机停机模式选择设置这该将使CIP-51 进入停机模式该位读时总为01 进入停机模式关掉振荡器位0 空闲空闲模式选择设置该位将使CIP-51 进入空闲模式该位读时总为01 进入空闲模式关掉CPU 的时钟但定时器中断串行口和模拟外设的时钟仍在运行
上传时间: 2013-11-05
上传用户:woshinimiaoye
单片机基础知识单片机的外部结构: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
附件有51单片机加上sl811读写U盘的源程序和原理图 /*--------------------------------------------------------------------------AT89X52.H Header file for the low voltage Flash Atmel AT89C52 and AT89LV52.Copyright (c) 1995-1996 Keil Software, Inc. All rights reserved.--------------------------------------------------------------------------*/ #ifndef AT89X52_HEADER_FILE#define AT89X52_HEADER_FILE 1 /*------------------------------------------------Byte Registers------------------------------------------------*/sfr P0 = 0x80;sfr SP = 0x81;sfr DPL = 0x82;sfr DPH = 0x83;sfr PCON = 0x87;sfr TCON = 0x88;sfr TMOD = 0x89;sfr TL0 = 0x8A;sfr TL1 = 0x8B;sfr TH0 = 0x8C;sfr TH1 = 0x8D;sfr P1 = 0x90;sfr SCON = 0x98;sfr SBUF = 0x99;sfr P2 = 0xA0;sfr IE = 0xA8;sfr P3 = 0xB0;sfr IP = 0xB8;sfr T2CON = 0xC8;sfr T2MOD = 0xC9;sfr RCAP2L = 0xCA;sfr RCAP2H = 0xCB;sfr TL2 = 0xCC;sfr TH2 = 0xCD;sfr PSW = 0xD0;sfr ACC = 0xE0;sfr B = 0xF0;
上传时间: 2014-01-05
上传用户:lnnn30
PC与单片机双向通讯智能温控程序 #include <AT89X51.H> #include <intrins.h> #define Key_UP P1_0 #define Key_DOWN P1_1 #define Key_SET P1_2 #define RelayOutPort P2_0 #define LEDPort P0 #define DELPort P2_1 #define LEDTwoC P3_6 #define LEDThreeC P3_7 #define TMPort P2_7 #define INBUF_LEN 5 //数据长度 unsigned char inbuf1[INBUF_LEN]={ 0 , 0 , 0 , 0 , 0 } //发送缓冲区 unsigned char inbuf2[50] //接收缓冲区 unsigned char count3 void init_serialcomm( void ) { SCON = 0x50 //SCON: serail mode 1, 8-bit UART, enable ucvr TMOD |= 0x20 //TMOD: timer 1, mode 2, 8-bit reload PCON |= 0x80 //SMOD=1 TH1 = 0xFA //Baud:4800 fosc=11.0592MHz IE |= 0x90 //Enable Serial Interrupt TR1 = 1 // timer 1 run } //向串口发送一个字符 void send_char_com( unsigned char ch) { SBUF=ch while (TI== 0 ) TI= 0
标签: include intrins define Key_UP
上传时间: 2014-11-29
上传用户:风之骄子
VB遥控播放器红外遥控解码 #include <regX52.h> #define c(x) (x*110592/120000) sbit Ir_Pin=P3^2 sbit beep=P2^1 //sbit RELAY=P2^0 #define INBUF_LEN 4 //数据长度 unsigned char inbuf1[INBUF_LEN]={ 0 , 0 , 0 , 0 } //发送缓冲区 unsigned char inbuf2[50] //接收缓冲区 unsigned char count3 void init_serialcomm( void ) { SCON = 0x50 //SCON: serail mode 1, 8-bit UART, enable ucvr T2CON=0x30 TH2=0x00 TL2=0x00 RCAP2H=0xFF RCAP2L=0xDC TR2=1 } //向串口发送一个字符 void send_char_com( unsigned char ch) { SBUF=ch while (TI== 0 ) TI= 0
标签: include 110592 120000 define
上传时间: 2013-12-21
上传用户:yph853211
单片机开发汇编基础,学会使用SCON从这里开始
上传时间: 2013-11-30
上传用户:chens000