单片机期末复习重点总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、单片机:就是在一片半导体硅片上集成了中央处理单元、存储器、并行接口I/O、串行I/O口、定时器/计数器、终端系统、系统时钟电路及系统总线的微型计算机。

二、单片机的硬件结构:8位微处理器、数据存储器(128B)、程序存储器、4个8位可编程并行I/O口、1个串行口、2个16位定时/计数器、1个看门狗、5个中断源和中断向量、特殊功能寄存器26个、低功耗节电模式、3个程序加密锁定位。

其图如下:
三、单片机引脚:单片机共有40个引脚;按其功能可分为3类:
●电源及时钟引脚
●控制引脚
●I/O口引脚
四、单片机存储器结构
●程序存储器16位
●数据存储器8位
●特殊功能寄存器
●位地址空间
五、四组并行I/O端口
1、P0口
1)P0口是一个双功能的8位并行口,字节地址在80H,位地址为80H—87H。

2)P0口特点:地址/数据复用口和通用I/O口
●当P0口用作地址/数据复用口时,是一个真正的双向口,用作与外部存储器的连
接,片外必须要接上拉电阻。

●当P0口作为通用I/O口时,由于有高阻抗,所以在端口外要接上上拉电阻,它
是一个准双向口。

2、P1口
1)P1口是单功能的I/O口,字节地址为90H,位地址为90H---97H.
2)P1口特点:
●由于P1口内部有上拉电阻,没有高阻抗输入状态,所以不需要在片外接上
拉电阻。

●P1口“读引脚”输入时,必须先向锁存器写入。

3、P2口
1)P2口是一个双功能口,字节地址为A0H,位地址为A0H---A7H.
2)P2口特点:与P1口的一样。

4、P3口略
六、时钟电路与时序
1、时钟电路设计图在书上35页图2-13.
2、时钟周期:若时钟晶体的振荡频率为f osc,则时钟周期T=1/f osc。

3、机器周期:一个机器周期包括12个时钟周期。

即:T cy=12/f osc。

4、指令周期:单字节和双字节指令周期一般为单机器周期和双机器周期。

三字节指令周期都是双机器周期;乘、除指令周期4个机器周期。

七、复位操作和复位电路
1、复位电路设计在书上37页图2-18或图2-19或图2-20.
八、单片机最小系统设计如图
九、keilC的使用方法:
步骤:1、点击桌面快捷键Uv4,打开软件
2、单击project出现下拉菜单,单击New uVison Project新建一个文件,
在弹出的窗口下方文件名随便写(自定义),并保存好。

3、在弹出来的窗口左边框里点atmel,在下拉菜单里选中at89s51,单击ok
按钮。

再点击yes。

4、按ctrl+N新建一个文本,保存。

在弹出来的窗口下方文件名写好文
件名(文件名可以随便写,但必须要以.c为后缀),保存类型不要动。

5、在左方框右击Source Group1 在出现的下拉菜单中选中Add File……
在出现的窗口中双击你刚才写好的文件名(这个文件名必须要以.C
为后缀),添加后,关闭窗口。

6、在左方框右击Tar get1 在出现的下拉菜单中选中Options for……,,
在出现的窗口中点击上方的out put,选中复选框create HEX File,单
击OK。

这样基可以编写程序了。

十、Proteus的使用方法:
步骤:1、点击桌面ISIS快捷方式,打开软件。

2、保存。

3、单击左窗口P,在弹出的窗口中输入元件名,查找所需要的元件。

4、查找好元件后,按要求连接电路图,并保存好。

十一、中断的概念:单片机能及时地响应中断源提出的服务请求,并作出快速响应和及时处
理。

十二、中断系统结构在书上88页图5-2.
十三、中断控制寄存器IE、IP
1、IE
●EA:中断允许总开关控制位
EA=0,所有中断请求被屏蔽
EA=1,所有中断请求被放开
●ES:串行口允许中断
ES=0,禁止串行口中断
ES=1,允许串行口中断
●ET1:定时器/计数器T1的中断允许位
ET1=0;禁止T1中断
ET1=1,允许T1中断
●EX1:外部中断1中断允许位
EX1=0,禁止外部中断1中断
EX1=1,允许外部中断1中断
●ET0:定时器/计数器T0中断允许位
ET0=0,禁止T0中断
ET0=1,允许T0中断
●EX0:外部中断0中断允许位
EX0=0,禁止外部中断0中断
EX0=1,允许外部中断0中断
2、IP
●PS:串行口中断优先级
PS=1,高优先级
PS=0,低优先级
●PT1:定时器T1中断优先级
PT1=1,高优先级
PT1=0,低优先级
●PX1:外部中断1中断优先级
PX1=1,高优先级
PX1=0,低优先级
●PT0:定时器T0中断优先级
PT0=1,高优先级
PT0=0,低优先级
●PX0:外部中断0中断优先级
PX0=1,高优先级
PX0=0,低优先级
十四、中断初始化设置
1、外部中断0 INT0设置:EA=1,IT0=1,EX0=1
2、外部中断1 INT1设置:EA=1,IT1=1,EX1=1
3、定时器T0:
●方式0:TMOD=0x00,ET0=1,TR0=1,EA=1,TH0=0Xxx,TL0=0Xxx。

●方式1:TMOD=0x01,ET0=1,TR0=1,EA=1, TH0=0Xxx,TL0=0Xxx。

4、定时器T1:
●方式0:TMOD=0X00,ET1=1,TR1=1,EA=1,TH1=0Xxx,TL1=0Xxx。

●方式1:TMOD=0X10,ET1=1,TR1=1,EA=1,TH1=0Xxx,TL1=0Xxx。

十五、中断及定时器服务程序设计如下:
1、定时器T0 方式1(方式0不要重新装载)
#include<reg52.h>
void main(void)
{
TMOD = 0x01;
TH0=0x83;
TL0=0x06;
ET0 = 1;
EA = 1;
TR0 = 1;
while(1);
}
void intsert0(void) interrupt 1
{
TH0=0x83;
TL0=0x06;
P0=0x00;
}
2、定时器T1 方式1
#include<reg52.h>
void main(void)
{
TMOD = 0x10;
TH0=0x83;
TL0=0x06;
ET1 = 1;
EA = 1;
TR1 = 1;
while(1);
}
void intsert0(void) interrupt 1
{
TH0=0x83;
TL0=0x06;
P0=0x00;
}
3.外部中断0
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
Void main()
{
EA=1;
IT0=1;
EX0=1;
While(1);
}
4、外部中断1
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
V oid main()
{
EA=1;
IT1=1;
EX1=1;
While(1);

十六、定时器/计数器的结构
1、结构框图
2、TMOD和TCON的结构
TMOD结构
GA TE C/!T M1 M0 GATE C/!T M1 M0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
十七、定时器初始值计算:如:定时1ms,
TH0=(65536-1000)/256
TL0= (65536-1000)%256
十八、单片机与数码管动态显示接口设计(硬件电路,程序设计)
1、硬件电路如图:
3、程序设计:
#include <REGX51.H>
#define uchar unsigned char
#define uint unsigned int
uchar displayram[6];
uchar code displaytab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delayms(uint n)
{ uchar i;
while(n--)
for(i=0;i<120;i++);
}
void clr_dis()
{
displayram[0] = 0x1b; //全灭
displayram[1] = 0x1b;
displayram[2] = 0x1b;
displayram[3] = 0x1b;
displayram[4] = 0x1b;
displayram[5] = 0x1b;
}
void display(uchar displayram[6])
{
unsigned char k,i,j=0x7f;
for(i=0;i<6;i++)
{
k=displayram[i];
P2=j;
P0=displaytab[k];
delayms(1);
P2=0xff;
j=(j>>1)|0x80;
}
}
void main()
{
uchar i;
clr_dis();
while(1)
{
for(i=0;i<8;i++)
{
displayram[i]=i;
display(displayram);
delayms(5);
}
}
}
十九、单片机独立键盘设计:
1、硬件设计
2、程序设计
#include <REGX51.H>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P3^0;
sbit key2=P3^1;
sbit key3=P3^2;
sbit key4=P3^3;
void delayms(uint ms) //延时1ms {
uchar i;
while(ms--)
for(i=0;i<120;i++);
}
void main()
{
while(1)
{
if(key1==0)
{
delayms(5);
if(key==0)
P0=0xff;
}
if(key2==0)
{
delayms(5)
if(key2==0)
P0=0x0f;
}
if(key3==0)
{
delayms(5)
if(key3==0)
P0=0xf0;
}
if(key4==0)
{
delayms(5)
if(key4==0)
P0=0xa5;
}
}
}。

相关文档
最新文档