2022-12-11 00:58来源:m.sf1369.com作者:宇宇
有一年同学在51单片机上结合12864写出了一个贪吃蛇,这个应该蛮好玩的吧~你可以写个坦克大战,也可以写个超级玛丽
C语言和汇编都可以,但是C语言学起来比较容易,而且刚开始学C比较能看的懂,汇编就不行了
一、STC51单片机外部引脚介绍
1、电源和时钟引脚。如Vcc、GND、XTAL1、XTAL2
2、编程控制引脚。如RST(复位)。
3、I/O口引脚。
Vcc、GND——单片机电源引脚,不同的型号单片机接入对应电压电源,常压为+5V,低压为+3.3V
XTAL1、XTAL2——外接时钟引脚。XTAL1为片内震荡电路的输入端,XTAL2为片内震荡电路的输出端。8051的时钟有两种方式,一种是片内时钟震荡方式,需要在这两个脚外接石英晶体和震荡电容,震荡电容的值一般取10p~30p;另一种是外部时钟方式,将XTAL1接地,外部时钟信号从XTAL2脚输入。
P0口——双向8位I/O口,每个口可独立控制,没有上拉电阻,为高阻态,所以不能正常的输出高低电平,因此该组IO口在使用时务必要接上拉电阻,一般选10千欧。
P1口——准双向8位IO口,每个口可独立控制,内带上拉电阻,这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向IO口。之所以称它为准双向,是因为该口在作为输入使用前,要先向该口进行写1操作,然后单片机内部才可正确的读出外部信号,也就是要使其先有个“准”备的过程,所以说才是准双向接口。
P3口——与P1口类似,作为第二功能使用时,和引脚有着各种功能的定义,要查手册。
二、电平特性
单片机的输入输出电平为TTL电平,其中高电平为+5V,低电平为0V。计算机串口为RS-232电平,其中高电平为-12V,低电平为+12V。注意,RS-232为负逻辑电平。
三、单片机的几个周期介绍
1、时钟周期:也称为震荡周期,定义为时钟频率的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,如12Mhz的晶振,它的时钟周期就是1/12us),它是单片机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成这一个最基本的动作
2、状态周期:它是时钟周期的两倍
3、机器周期:单片机的基本操作周期,在一个操作周期内,单片机完成一项基本操作,如取指令、存储器读写等。它由12个时钟周期(6个状态周期)组成。
4、指令周期:他是指CPU执行一条指令所需要的时间。一般一个指令周期含有1~4个机器周期。
四、移位操作
1、左移。C51操作符为“<<”,最低位补零
2、右移。同上
3、循环左移,最高位移入最低位,其他依次向左移一位。
五、数码管显示原理
电路方面有共阴极和共阳极之分,让数码管显示不同的数字就是先定义一个保存16进制数的数组,然后在程序中把这个16进制数赋值给相应的引脚。
六、中断概念
1、51单片机一共有6个中断源
INT0——外部中断0
INT1——外部中断1
T0/1/2——计时器/定时器中断,由计数器满回零引起。
T1/R1——串行口中断,串行端完成一帧字符发送/接收后引起。
七、单片机的定时器中断
51单片机内部共有两个16位可编程的定时器/计数器,即定时器T0和定时器T1。它们既有定时功能又有计数功能。定时器/计数器的实质是加1计数器(16位),由高8位和底8位两个寄存器组成,TMOD寄存器是定时器/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0,T1的启动和停止以及设置溢出标志。
加一计数器的输入计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;另一个是T0或T1引脚输入的外部脉冲源。如果定时器/计数器工作在定时模式,则表示时间已到;如果工作在计数模式,则表示计数值已经满了。
定时器初始化过程如下:
①对TMOD赋值,以确定T0和T1的工作方式
②计算初值,并将初值写入TH0、TL0或TH1、TL1中。
③中断方式时,则对IE赋值,开放中断。
④使TR0或TR1置位,启动定时器/计数器定时或计数
八、并行与串行基本通信方式
1、并行通信方式:将数据字节的各位用多条数据线同时进行传输,每位数据都需要一条传输线。
2、串行通信方式:串行通信是将数据字节分成一位一位的形式在一条传输线上逐个的传输,此时只需要一条数据线
3、异步串行通信方式:指通信的接收与发送设备使用各自的时钟控制数据的发送和接收过程。其特点是:不要求发送双方时钟严格一致,容易实现,设备开销小,但每个字符要附加2~3位,用于起始位、校验位、停止位,各帧之间还有间隔,因此传输效率不高。在单片机与单片机之间,单片机与计算机之间通信时,通常采用异步串行通信方式。
4、同步串行通信方式:同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方完全达到同步。
九、RS-232电平与TTL电平的转换
一般使用MAX232实现电平转换
十、波特率与定时器初值的关系
1、波特率:单片机或计算机在串口通信时的速率用波特率表示,它定义为每秒传输二进制代码的位数,即1波特 = 1位/秒,单位是bps。
2、波特率的计算:在串行通信中,收、发双方对发送或接受数据的速率有约定。通过编程可对单片机串行口设定四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。
3、为什么51系列单片机常用11.0592MHz的晶振设计?常用波特率通常按规范取1200,2400,4800,9600···,若采用晶振12Mhz或6Mhz,计算得出的T1定时初值将不是一个整数,这样通信时便会产生积累误差。
十一、串行口结构描述
1、串行口结构:51单片机的串行口是一个可编程全双工的通信接口,具有UART(通用异步收发器)的全部功能,能同时进行数据的发送和接收。串行口主要由两个独立的串行数据缓冲寄存器SBUF(一个发送缓冲寄存器,一个接收缓冲寄存器)和发送控制器、接收控制器、输入移位寄存器以及若干控制门电路组成。执行写指令时,访问串行发送寄存器;执行读指令时,访问串行接收寄存器。与串口紧密相关的一个特殊功能寄存器是串行口控制寄存器SCON,它用来设定串行口的工作方式,接收/发送控制以及设置状态标志位等。
2、串口方式简介:重点介绍方式1:。方式1是十位数据的异步通信口,其中1为起始位,8为数据位,1位停止位。TXD为数据发送引脚,RXD为数据接收引脚。其传输的波特率是可变的,对于51单片机,波特率由定时器1的溢出率决定。通常在做单片机与单片机串口通信、单片机与计算机串口通信、计算机与计算机串口通信时,基本都选择方式1。
3、在具体操作串行口之前,需要对单片机的一些与串口有关的特殊功能寄存器进行初始化设置,主要是设置产生波特率的定时器1、串行口控制和中断控制。①确定T1工作方式(编程TMOD寄存器)②计算T1的初值,装载TH1,TL1③启动T1(编程TCON寄存器的TR1位)④确定串行口工作方式(编程SCON寄存器)⑤串行口工作在中断方式时,要进行中断设置(编程IE、IP寄存器)
十二、I2C总线概述
1、I2C具有接线口少,控制简单,器件封装形式小,通信速率高等优点。I2C总线由数据线SDA和时钟线SCL两条线构成通信线路,即可发送数据,也可接受数据。
2、单片机模拟I2C总线通信,因为有许多单片机没有I2C总线接口,如51单片机,不过我们可以在单片机应用系统中通过软件模拟I2C总线的工作时序,在使用时,只需要正确调用各个函数就能方便地扩展I2C总线接口器件。
3、单片机在模拟I2C通信时,需要写出如下几个关键部分的程序:总线的初始化、启动信号、应答信号、停止信号、写一个字节、读一个字节。
十三、单片机空闲与掉电模式
1、空闲模式:除CPU处于休眠状态之外,其余硬件全部处于活动状态。
2、掉电模式:也成为休眠模式,外部晶振停振,CPU,定时器、串行口全部停止工作,只有外部中断继续工作。
十四、看门狗概念
在由单片机构成的系统中,由于单片机的工作有可能受到外界电磁场的干扰,造成程序的跑飞,从而陷入死循环,程序的正常运行被打断,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称看门狗。
其工作过程如下:看门狗芯片和单片机的一个IO引脚相连,该IO引脚通过单片机程序控制,使他定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散的放在单片机其他控制语句中间的,一旦单片机由于干扰造成的程序跑飞而陷入某一程序段进入死循环状态时,给看门狗引脚送电平的程序便不能被执行到,这时看门狗电路会由于得不到单片机送来的信号,便对它与单片机复位引脚相连接的引脚送一个复位信号,使单片机复位。
十五、SPI接口
1. 概述
SPI = Serial Peripheral Interface,是串行外围设备接口,是一种高速,全双工,同步的通信总线。常规只占用四根线,节约了芯片管脚,PCB的布局省空间。现在越来越多的芯片集成了这种通信协议,常见的有EEPROM、FLASH、AD转换器等。
优点:
支持全双工,push-pull的驱动性能相比open-drain信号完整性更好;
支持高速(100MHz以上);
协议支持字长不限于8bits,可根据应用特点灵活选择消息字长;
硬件连接简单;
缺点:
相比IIC多两根线;
没有寻址机制,只能靠片选选择不同设备;
没有从设备接受ACK,主设备对于发送成功与否不得而知;
典型应用只支持单主控;
相比RS232 RS485和CAN总线,SPI传输距离短;
2. 硬件结构
SPI总线定义两个及以上设备间的数据通信,提供时钟的设备为主设备Master,接收时钟的设备为从设备Slave;
信号定义如下:
SCK : Serial Clock 串行时钟
MOSI : Master Output, Slave Input 主发从收信号
MISO : Master Input, Slave Output 主收从发信号
SS/CS : Slave Select 片选信号
1,首先单击打开keil uvision 4此款软件,会出现如下界面,会看到最左面上面有一个名为Project(项目),上面的是主菜单栏,上面有File、Edit、Project等菜单栏选项,选择点击第三项Project,一般都与项目创建、关闭等有关。
2,打开Project后,下拉菜单中会有多个子菜单选项,常用的是New uCVision Project(创建项目)、Open Project(打开项目),这里是创建项目所以选择第一个选项。
3,这时弹出一个Create New Peoject的窗口,默认的保存类型为Project Files(*.uvproj),只需要将工程项目名写上就行,点击保存。
4,然后会出现一个选择项目设备的窗口,里面会有各种生产厂家、公司及其它所生产的单片机,可以根据实际需要自由选择,注意选择和实际工程项目所对应的单片机厂家及型。
5,此时弹出一个窗口,询问是否要将STARTUP.A51(一个开始的汇编代码)加入到工程项目中去,这里可以直接选择否,也可自行选择是。
6,此时已经创建项目成功,可看到主界面左面的项目窗口有一个Target 1,还有一个Source Group 文件夹。
1. 时钟周期: 时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。 在一个时钟周期内,CPU仅完成一个最基本的动作。对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟 周期为250us。由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。显然,对同一种机型的计算 机,时钟频率越高,计算机的工作速度就越快。 8051单片机把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。 2. 机器周期: 在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由若干个S周期(状态周期)组成。 8051系列单片机的一个机器周期同6个 S周期(状态周期)组成。前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个 状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。 (例如外接24M晶振的单片机,他的一个机器周期=12/24M 秒) 3. 指令周期: 执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期也不同。对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。 4. 总线周期: 由于存贮器和I/O端口是挂接在总线上的,CPU对存贮器和I/O接口的访问,是通过总线实现的。通常把CPU通过总线对微处理器外部(存贮器或 I/O接口)进行一次访问所需时间称为一个总线周期。 总结: 1. 时钟周期是最小单位,机器周期需要1个或多个时钟周期,指令周期需要1个或多个机器周期; 2. 机器周期指的是完成一个基本操作的时间,这个基本操作有时可能包含总线读写,因而包含总线周期,但是有时可能与总线读写无关,所以,并无明确的相互包含的关系; 3. 指令周期:是CPU的关键指标,指取出并执行一条指令的时间。一般以机器周期为单位,分单指令执行周期、双指令执行周期等。现在的处理器的大部分指令(ARM、DSP)均采用单指令执行周期; 4. 机器周期:完成一个基本操作的时间单元,如取指周期、取数周期。时钟周期:CPU的晶振的工作频率的倒数。
51单片机感叹号是的意思是1单片机如果上不了网,连接图标将会出现显示感叹号,提醒
2.局域网有可能会无法连接,数据只能单方面接收甚至双方都不能接收,将会出现感叹号提示
3.用来设置路由器的网址无法登陆的时候,将会出现感叹号提示
目前进行STC89C51/52、AT89S51/52
1、双击启动keil软件
2、启动新建工程
3、给新建工程命名和保存
4、选择单片机型号,我们以STC89C52为例,依次选择“Atmel”-》“AT89C52”-》点击OK。后面会弹出询问是否添加启动代码的对话框,“
Copy Standard 8051 Startup code to Project Folder and Add File to Project”,一般选择“否”。
5、给新建工程添加C文件。可以新建C程序文件然后添加进工程或者直接添加已经编写好的C文件。
6、为最终生成HEX文件设置相关选项。
7、启动编译,生成所需的HEX文件。
51单片机最小系统和它的设计夜夜主要是能够满足最小硬件的情况下,五一单片机能够正常运行,它的设计意义是在最省成本的情况下实现一个最少的系统。
1、可以用定时器中断实现这样的处理,这种方法重点在于根据你的晶振频率计算出定时器中断的参数,然后就可以很好的控制定时器中断触发的时间了.只要在中断处理过程里不断的让I/O口取反,就可以实现这样的方波。
2、如果单片机有PWM的功能就可以用PWM产生方波,如果没有也可能用I/O口先输出高电平延时,再输出低电平,就可以得到所要的方波了,要改变幅度 频率 空占比可调,可以设置几个按键开关,按一次就可以改变延时时间,这样就可以改频率了。