1、单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,第一讲,主要内容:,预备知识,了解TX-1B单片机学习板系统结构及如何用其学习单片机。,C-51基础知识。,从点亮实验板上的一个发光二极管开始学起,.,什么是单片机?单片机能做什么?,学单片机需要什么基础?,与以前所学的知识关联很少;,只需要掌握很基本的数电模电知识;,对各种器件的概念基本上是从,0,开始;,如果要用,C,语言编程,需具备简单的,C,语言基础;,所有人都站在了同一起跑线上,;,.,几点预备知识,电平特性,2进制与16进制的表示及转换,二进制数的逻辑运算,8051单片机介绍,C51基础知
2、识,.,单板机,将,CPU,芯片、,存储器,芯片、,I/O接口,芯片和简单的,I/O设备,(小键盘、LED显示器)等装配在一块印刷电路板上,再配上,监控程序,(固化在ROM中),就构成了一台单板微型计算机(简称单板机)。,单板机,.,单板机的I/O设备简单,软件资源少,使用不方便。早期主要用于微型计算机原理的,教学,及,简单的测控系统,,现在已很少使用。,.,单片机,在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了,单芯片微型计算机,即单片机,。,Intel公司推出了,MCS-51,系列单片机:,集成 8位CPU、4K字节ROM、128字节RAM、4个8位并口、1个全双工串
3、行口、2个16位定时/计数器。寻址范围64K,并有控制功能较强的布尔处理器。,单板机,单片机,.,80C51系列,Intel,的:80C31、80C51、87C51,80C32、80C52、87C52等;,ATMEL,的:89C51、89C52、89C2051等;,Philips、华邦、Dallas、STC,Siemens(Infineon),等公司的许多产品。,80C51是MCS-51系列中的一个典型品种;其它厂商,以8051为基核,开发出的CMOS工艺单片机产品,统称为80C51系列,。当前常用的80C51系列单片机主要产品有:,.,2.3.2 80C51的引脚封装,总线型,非总线型,.,
4、P3,第二功能各引脚功能定义:,P3.0:RXD串行口输入,P3.1:TXD串行口输出,P3.2:INT0外部中断0输入,P3.3:INT1外部中断1输入,P3.4:T0定时器0外部输入,P3.5:T1定时器1外部输入,P3.6:WR外部写控制,P3.7:RD外部读控制,.,.,总线(BUS)是计算机各部件之间传送信息的公共通道。微机中有内部总线和外部总线两类。内部总线是CPU内部之间的连线。外部总线是指CPU与其它部件之间的连线。外部总线有三种:数据总线DB(Data Bus),地址总线 AB(Address Bus)和控制总线 CBControl Bus)。,.,CPU:由运算和控制逻辑组
5、成,同时还包括中断系统和部分外部特殊功能寄存器;,RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;,ROM:用以存放程序、一些原始数据和表格;,I/O口:四个8位并行I/O口,既可用作输入,也可用作输出;,T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;,.,五个中断源的中断控制系统;,一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;,片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最高振荡频率取决于单片机型号及性能。,.,关于电平特性,数字电路中只有两种电平:高和低,(本课程中)定
6、义单片机为TTL电平:,高+5V 低 0V,RS232电平:计算机的串口,高-12V 低+12V,所以计算机与单片机之间通讯时需要加电平转换芯片max232。,.,二进制,数字电路中的两种电平特性决定了它,0 0 6 110,1 17111,2 1081000,3 1191001,4 100101010,5 10111 1011,.,十六进制,是二进制的简短表示形式。,十进制中的0-15分别表示为十六进制的0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,熟练掌握二进制与十六进制之间的转换。,规律:一般把四个二进制数放在一起转换成一个十六进制数,转换时先把二进制数转换成十进制数,
7、再把十进制数转换成十六进制数。,.,如:0001B-1-1H,B表示为二进制,H为十六进制,1001B-9-9H,1010B-10-AH,0010 1100-44-2CH,.,各种进位制的对应关系,十进制,二进制,十六进制,十进制,二进制,十六进制,0,0,0,9,1001,9,1,1,1,10,1010,A,2,10,2,11,1011,B,3,11,3,12,1100,C,4,100,4,13,1101,D,5,101,5,14,1110,E,6,110,6,15,1111,F,7,111,7,16,10000,10,8,1000,8,.,二进制数的逻辑运算,1.“与”运算,“与”运算是实
8、现“必须都有,否则就没有”这种逻辑关系的一种运算。运算符为“”,其运算规则如下:,00=0,01=10=0,11=1,.,2.“或”运算,“或”运算是实现“只要其中之一有,就有”这种逻辑关系的一种运算,其运算符为“+”。“或”运算规则如下:,0+0=0,0+1=1+0=1,1+1=1,.,3.“非”运算,“非”运算是实现“求反”这种逻辑的一种运算,如变量A的“非”运算记作 。其运算规则如下:,A,.,4.“异或”运算,“异或”运算是实现“必须不同,否则就没有”这种逻辑的一种运算,运算符为“”。其运算规则是:,.,单片机工作的基本时序,机器周期和指令周期,(1)振荡周期:也称时钟周期,是指为单片
9、机提供时钟脉冲信号的振荡源的周期,TX实验板上为11.0592MHZ。,(2)状态周期:每个状态周期为时钟周期的 2 倍,是振荡周期经二分频后得到的。,(3)机器周期:,一个机器周期,包含 6 个状态周期S1S6,也就是 12 个时钟周期,。在一个机器周期内,CPU可以完成一个独立的操作。,(4)指令周期:它是指CPU完成一条操作所需的全部时间。每条指令执行时间都是有一个或几个机器周期组成。MCS-51 系统中,有单周期指令、双周期指令和四周期指令。,.,KEIL C51的应用,C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。目前,使用C语言进行程序设计已经成
10、为软件开发的一个主流。用C语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改进和扩充。而针对8051的C语言日趋成熟,成为了专业化的实用高级语言。,.,C语言作为一种非常方便的语言而得到广泛的支持,国内最通用的是,Keil,C51.,C语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的单片机中移植过来。,C提供了很多数学函数并支持浮点运算,开发效率高,故可缩短开发时间,增加程序可读性和可维护性。,C-51的特点,.,C-51与ASM-51相比,有如下优点:,1.对单片机的指令系统不要求了解,仅要求对8051 的存贮器结构有初步了解;,2.寄存器分配、不同存贮器的寻址
11、及数据类型等细节可由编译器管理;,3.程序有规范的结构,可分成不同的函数,这种方式可使程序结构化;,4.提供的库包含许多标准子程序,具有较强的数据处理能力;,5.由于具有方便的模块化编程技术,使已编好程序可容易地移植;,.,C51的数据类型,基本数据类型,类型,符号,关键字,数的表示范围,所占位数,整型,字符型,实型,有,无,(signed)int,16,-3276832767,(signed)short,16,-3276832767,(signed)long,32,-21474836482147483647,16,unsigned int,065535,32,04294967295,unsi
12、gned long int,unsigned short int,16,065535,有,float,32,3.4e-383.4e38,有,double,64,1.7e-3081.7e308,有,char,8,-128127,无,unsigned char,8,0255,.,C语言中的基本数据类型,类型,符号,关键字,数的表示范围,所占位数,整型,字符型,实型,有,无,(signed)int,16,-3276832767,(signed)short,16,-3276832767,(signed)long,32,-21474836482147483647,16,unsigned int,0655
13、35,32,04294967295,unsigned long int,unsigned short int,16,065535,有,float,32,3.4e-383.4e38,有,double,64,1.7e-3081.7e308,有,char,8,-128127,无,unsigned char,8,0255,.,C51的数据类型扩充定义,sfr:特殊功能寄存器,声明,sfr16:sfr的16位数据声明,sbit:特殊功能位声明,bit:位变量声明,例:sfr SCON=0X98;,sfr16 T2=0 xCC;,sbit OV=PSW2;,.,例:,数据类型 存储类型 变量,char v
14、ar1;,bit flags;,unsigned char vextor10;,C-51数据的存储类型,.,C-51的包含的头文件,通常有:reg51.h reg52.h math.h ctype.h stdio.h stdlib.h absacc.h,常用有:reg51.h reg52.h(定义特殊功能寄存器和位寄存器);,math.h (定义常用数学运算);,.,C-51的运算符,与C语言基本相同:,+-*/,(加 减 乘 除),=,(位右移 位左移),&|,(按位与 按位或),(按位异或 按位取反),.,C-51的基本语句,与标准C语言基本相同:,if 选择语言,switch/case
15、多分支选择语言,while 循环语言,do-while 循环语言,for 循环语言,.,中断服务程序,函数名(),interrupt n,I/O口定义,#include,#define prot xbyte0 x1000,或,用指针定义,.,KEIL的使用,掌握KEIL工程的建立和软件的开发;,掌握KEIL中软件仿真的基本应用;,掌握用KEIL直接硬件仿真TX-1B单片机学习板的方法,.,Main 函数格式:void main()特点:无返回值,无参。任何一个C程序有且仅有一个main函数,它是整个程序开始执行的入口。例:void main()总程序从这里开始执行;其他语句;,.,.,.,.,.,.,.,课后练习,不参考任何程序独立完成以下题目,(可对照TX-1B单片机学习板原理图写程序),用位操作和总线操作两种方法完成以下题目,分别建立独立的KEIL工程,1.点亮第一个发光管.2.点亮最后一个发光管,3.点亮一、三、五、七4.点亮二、四、五、六,.,






