初级组培训-51通讲2015-06-08_第1页
初级组培训-51通讲2015-06-08_第2页
初级组培训-51通讲2015-06-08_第3页
初级组培训-51通讲2015-06-08_第4页
初级组培训-51通讲2015-06-08_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电协初级组培训

—51单片机通讲

主讲人:柏明明时间:2015年5月29日预备知识认识51

应用51题目讲解预备知识电平特性进制逻辑运算C—51电平特性数字电路中电平只有两种状态:高电平和低电平电平分很多类:TTL、CMOS、EIA等。51单片机为TTL电平:高+5V低0V

(L<0.8VH>2.4V)TTL特点:速度快但是功耗高计算机RS232电平(EIA电平):高-12V低+12V所以计算机与单片机之间通讯时需要加电平转换芯片max232二进制十进制二进制十进制二进制0081000101910012101010103111110114100121100510113110161101411107111151111十六进制是二进制的简短表示形式。十进制中的0-15分别表示为十六进制的0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F熟练掌握二进制与十六进制之间的转换。规律:一般把四个二进制数放在一起转换成一个十六进制数,转换时先把二进制数转换成十进制数,再把十进制数转换成十六进制数。如:0001B->1->1HB表示为二进制,H为十六进制

1001B->9->9H1010B->10->AH00101100->44->2CH

各种进位制的对应关系十进制二进制十六进制十进制二进制十六进制000910019111101010A2102111011B3113121100C41004131101D51015141110E61106151111F71117161000010810008

逻辑运算1.“与”运算“与”是实现“必须都有,否则就没有”逻辑关系的运算。运算符为“&”,其运算规则如下:0&0=0,0&1=1&0=0,1&1=1

2.“或”运算“或”是实现“只要其中之一有,就有”逻辑关系的运算,其运算符为“|”。其运算规则如下:0|0=0,0|1=1|0=1,1|1=13.“非”运算“非”是实现“求反”这种逻辑的一种运算,“非”运算记作!其运算规则如下:

!1=0,!0=14.“异或”运算“异或”是实现“必须不同,否则就没有”逻辑的运算,运算符为^。其运算规则如下:0^0=0,1^1=0,1^0=0^1=1C—51类型符号关键字数的表示范围所占位数整型字符型实型有无(signed)int16-32768~32767(signed)short16-32768~32767(signed)long32-2147483648~214748364716unsignedint0~65535320~4294967295unsignedlongintunsignedshortint160~65535有float323.4e-38~3.4e38有double321.7e-308~1.7e308有char8-128~127无unsignedchar80~255C-51的数据类型扩充定义sfr:特殊功能寄存器声明(reg52.h)sfr16:sfr的16位数据声明(TL0、TH0)sbit:特殊功能位声明例:sfrSCON=0X98;sfr16T2=0xCC;sbitOV=PSW^2;C-51的包含的头文件通常有:reg51.h

reg52.hmath.hstdio.hreg51.h/reg52.h:定义特殊功能寄存器和位寄存器的物理地址math.h:定义常用数学运算:sin()cos()tan()abs()fabs()等Stdio.h:putchar()getchar()puts()printf()等与C语言基本相同:+-*/(加减乘除)>>=<<=(大于大于等于小于小于等于)==!=(测试等于测试不等于)&&||!(逻辑与逻辑或逻辑非)&|(按位与按位或)>><<(位右移位左移)^~(按位异或按位取反)C-51的运算符

C-51的基本语句与标准C语言基本相同:

if选择语言

while循环语言

for循环语言

switch/case多分支选择语言

do-while循环语言

格式:voidmain(void)

特点:无返回值,无参。

任何一个C程序有且仅有一个main函数,它是整个程序开始执行的入口。

例:voidmain()

{

总程序从这里开始执行;

其他语句;

}主函数中断服务程序void函数名()interruptn{

函数内部实现….}预备知识认识51

应用51题目讲解什么是单片机将CPU、随机存储器RAM、只读存储器ROM、中断系统、定时器/计数器以及I/O接口电路等微型计算机的主要部件集成在一块芯片上(单片化),使其具有计算机的基本功能的芯片。

主要型号:Atmel公司AT89C51、AT89C52台湾STC(宏晶)公司STC89C51、STC89C5251单片机的内部结构时钟信号源外部事件信号BUS时钟电路8KBFlashROM256BRAM128BSFR16位×3个定时/计数器64KB总线扩展控制器可编程并行口可编程全双工串行口CPU中断控制器外中断8位×4个并行口串行通信总线控制BUS52单片机内部主要包括9个部分:一个8位的微处理器CPU8KB的片内程序存储器FlashROM256B的片内数据存储器RAM、128B特殊功能寄存器(SFR)3个16位的定时器/计数器有一个管理6个中断源的中断控制器4个8位并行I/O端一个全双工的串行接口(UART)片内振荡电路和时钟发生器

可扩展64KB程序、64KB数据存储器的三总线控制电路单片机的引脚封装: 常用40DIP40个引脚分为4类:电源引脚晶振引脚控制信号输入/输出引脚T2/P1.0T2EX/P1.1P1.2P1.3P1.4P1.5P1.6P1.7RSTRXD/P3.0TXD/P3.1GATE0/INT0/P3.2GATE1/INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1Vss89C5289C5140393837363534333231302928272625242322211234567891011121314151617181920VccP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7EA/VPPALE/PROGPSENP2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9P2.0/A8一、电源引脚 Vcc(40脚):接5V电源正端 Vss(20脚):接5V电源地端二、晶振引脚XTAL1(19脚)XTAL2(18脚)晶振XTAL2XTAL1单片机C1C21819三、控制信号引脚:1、RST(9脚)

RST:复位信号输入端,高电平有效。

单片机正常工作时:RST保持两个机器周期的高电平就会使单片机复位;

上电时:RST上的高电平必须保持10ms以上才能保证有效复位,由于振荡器需要一定的起振时间。

P3口控制引脚引脚第二、第三功能P3.0RXD:串行口输入P3.1TXD:串行口输出P3.2INT0/GATE0

:外部中断0请求输入/定时器/计数器0运行外部控制输入P3.3INT1/GATE1

:外部中断1请求输入/定时器/计数器1运行外部控制输入P3.4T0:定时器/计数器0外部计数脉冲输入P3.5T1:定时器/计数器1外部计数脉冲输入P3.6WR:外部数据存储器写控制信号输出P3.7RD:外部数据存储器读控制信号输出

时钟与周期

状态周期、机器周期、指令周期

机器周期:指CPU访问一次存储器所需要的时间。机器周期是量度时间的基本单位。机器周期与振荡周期的关系:1个机器周期包含12个振荡周期,即 机器周期=12/fosc 例如,单片机的振荡频率fosc为12MHz,则 机器周期=12/fosc=10-6s=1us

CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;ROM:用以存放程序、一些原始数据和表格;I/O口:四个8位并行I/O口,既可用作输入,也可用作输出;T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;内部资源六个中断源的中断控制系统;一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最高振荡频率取决于单片机型号及性能。总线(BUS)是计算机各部件之间传送信息的公共通道。微机中有内部总线和外部总线两类。内部总线是CPU内部之间的连线。外部总线是指CPU与其它部件之间的连线。外部总线有三种:数据总线DB(DataBus),地址总线AB(AddressBus)和控制总线CBControlBus)。预备知识认识51

应用51题目讲解I/O口流水灯数码管按键中断定时器中断串口中断外部中断LED电路加上拉电阻,低电平点亮sbitLED0=P1^0;voidmain(void){ LED0=1; while(1) { LED0=!LED0; DelayMs(200); } }闪烁LED数码管

数码管其实就是几个连在一起LED灯,操作方法与LED灯一样使用数码管时要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。共计8段,编码是一个字节,dp、g在高位端。共阴极共阳极共阴数码管码表

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0 1 2 3

450x7d,0x07,0x7f,0x6f,0x77,0x7c,6 7 8 9

AB0x39,0x5e,0x79,0x71,0x00C

D

EF

无显示数码管电路静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。字形码即是段选信号。静态显示动态扫描

动态显示的特点是将所有数码管段选并联在一起,由位选控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描即轮流向各位数码管送出段选和位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉数码管同时都在显示。动态显示的亮度比静态显示要差一些,选择限流电阻时应略小于静态显示电路中的。sbitdula=P2^6;sbitwela=P2^7;unsignedcharcodetable[]=0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voidmain(void){ dula=1;//先送段选 P0=table[0]; dula=0; wela=1; P0=0XFE; wela=0; while(1);}静态显示

dula=1; P0=table[0]; dula=0; P0=0XFF;//ÏûÓ° wela=1; P0=0XFE; wela=0; DelayMs(50);//体现器实现过程 dula=1; P0=table[1]; dula=0; P0=0XFF;//ÏûÓ° wela=1; P0=0XFD; wela=0; DelayMs(50);动态扫描按键:分为按键和矩阵键盘抖动问题if(KEY1==0) { DelayMs(10); if(KEY1==0) {

操作语句;……… while(!KEY1); } }独立按键核心代码:P3=0XFE; temp=P3; temp&=0XF0; if(temp!=0XF0) { DelayMs(10); temp=P3; temp&=0XF0; if(temp!=0XF0) { temp=P3; switch(temp) { case0XEE:Key=0;break; case0XDE:Key=1;break; case0XBE:Key=2;break; case0X7E:Key=3;break; }

矩阵键盘核心代码:while(temp!=0XF0){temp=P3; temp&=0XF0;}

} }

P3=0XFD;………执行主程序主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回中断关键寄存器:IE、IP

可以通过IP设置为高低两个优先级,默认为低优先级。作用:当两个中断源同时发生时,执行的顺序。高的先执行。同一优先级中断源按以下顺序处理。中断响应条件中断源有中断请求;此中断源的中断允许位为1;

CPU开中断(即EA=1)。以上三条同时满足时,CPU才有可能响应中断。模式1voidTimer_Init(void)

{

TMOD=0X01; //IETMODTCON

TH0=(65535-50000)/256;

TL0=(65535-50000)%256;

EA=1;

ET0=1;

TR0=1;

}模式2:初值自动重装voidTimer_Init(void)

{

TMOD=0X02; //IETMODTCON

TH0=0x06;

TL0=0x06;

EA=1;

ET0=1;

TR0=1;

}//任务:LED=~LED;SCON是一个特殊功能寄存器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志:

关键寄存器:SCON、PCON

串口SCON中关键位:SM0、SM1、REN、TI、RI其余位:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论