c51单片机第二课笔记
时间:11-24
来源:互联网
点击:
1震荡周期:就是晶振震荡一次所用的时间。也叫做时钟周期
机器周期:单片机完成一次独立的操作需要的时间。是震荡周期的12倍。
指令周期:cpu完成一次完整的操作需要的所有时间,有单周期指令,双周期指令等。
2 用循环左移,循环右移指令 实现流水灯。
int temp;
temp=0xfe;
P1=temp;
temp=_crol_(temp,1);
有关循环指令包含在intrins.h头文件中。
3 对蜂鸣器的操作,类似与对led的操作,对相应端口输出第电平。关于蜂鸣器的数据有待补充。
4 共阴极led显示器16进制编码表
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71
从左到有,分别为 0到f的编码。
5led数码管的位选,段选。用2个锁存器配合,实现6个led数码管。先锁存位选信号再锁存段选信号。
具体操作。 打开锁存器1
输出位选信号。
关闭锁存器1
打开锁存器2
输出段选信号。
关闭锁存器。
具体例程。
#include
sbit dula=P2^6;
sbit wela=P2^7;
void main()
{
wela=1;
P0=0xc0;
wela=0;
dula=1;
P0=0x06;
dula=0;
while(1);
}
6锁存器的真值表。
7中断
与中断有关的几个寄存器。
A IE中断允许控制寄存器。其中包括EA EX0 EX1 ET0 ET1 ES
EA(IE.7)CPU中断运行总控制位。
ES(IE.5)串行口中断允许控制位。
ET1和ET0(IE.3,IE.1)定时器1和定时器0中断允许控制位。
EX1和EX0(IE.2,IE.0)外部中断1和外部中断0允许控制位。
8051采用两级中断控制方法。比如要开启定时器0的中断 要分别 在EA 和 ET0 两位置1.
B TCON 外部中断0,1 定时器0,1终端控制寄存器。
TCON包括 TF1, TR1, TF0, TR0, IE1, IT1, IE0, IT0
TF1,TF0(TCON7,TCON5)定时器T1,T0的计数溢出标志。
IE1,IE0(TCON,3,TCON.1)外部中断1,0的中断请求标志位
以上4位 由硬件检测到中断信号后自动置1.
IT1,IT0(TCON,2,TCON.0)外部中断信号的触发方式选择位
为0时,是低电平触发 为1时,是下降沿脉冲触发方式。
C IP中断优先级控制寄存器。
8c语言中中断程序的编写
格式 void 函数名() interrupt 中断编码{函数体}
其中 中断编码分别为
外部中断0 0
定时器0 1
外部中断1 2
定时器1 3
串口发送接收 4
中断函数不用事先声明。编写中断函数要注意开中断。
9 定时器及相关寄存器
定时器的工作原理 16位的加一计数器。
相关寄存器
T0,T1的控制寄存器TCON
TF1,TF0 (TCON7,TCON5)定时器T1,T0的计数溢出标志。
TR1,TR0(CON6,TCON4)定时器运行控制器
0时停止工作,1时启动。
T0,T1的方式控制寄存器TMOD
TMOD高4位控制T1 低4位控制T0
其中 GATE 门控位 等于0时
等于1时
C/T 定时或计数功能选择位 等于0时 定时功能,计数脉冲由内部提供
等于1时 计数功能,对外部事件(脉冲)进行计数
M1和M0:T1和T0操作方式选择位
计数初值与计数个数的关系 计数个数=2的16次方-计数初值.
10定时器的应用.
初始化程序应完成如下工作:
§对TMOD赋值,以确定T0和T1的工作方式。
§计算初值,并将其写入TH0、TL0或TH1、TL1。
§中断方式时,则对IE赋值,开放中断。
启动定时器
TMOD=0x01;//设置定时器0的工作方式1
TH0=(65536-50000)/256;
TL0=(65536-50000)%6;
EA=1; //开总中断
ET0=1;//开定时器0中断
TR0=1;//启动定时器0
机器周期:单片机完成一次独立的操作需要的时间。是震荡周期的12倍。
指令周期:cpu完成一次完整的操作需要的所有时间,有单周期指令,双周期指令等。
2 用循环左移,循环右移指令 实现流水灯。
int temp;
temp=0xfe;
P1=temp;
temp=_crol_(temp,1);
有关循环指令包含在intrins.h头文件中。
3 对蜂鸣器的操作,类似与对led的操作,对相应端口输出第电平。关于蜂鸣器的数据有待补充。
4 共阴极led显示器16进制编码表
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71
从左到有,分别为 0到f的编码。
5led数码管的位选,段选。用2个锁存器配合,实现6个led数码管。先锁存位选信号再锁存段选信号。
具体操作。 打开锁存器1
输出位选信号。
关闭锁存器1
打开锁存器2
输出段选信号。
关闭锁存器。
具体例程。
#include
sbit dula=P2^6;
sbit wela=P2^7;
void main()
{
wela=1;
P0=0xc0;
wela=0;
dula=1;
P0=0x06;
dula=0;
while(1);
}
6锁存器的真值表。
7中断
与中断有关的几个寄存器。
A IE中断允许控制寄存器。其中包括EA EX0 EX1 ET0 ET1 ES
EA(IE.7)CPU中断运行总控制位。
ES(IE.5)串行口中断允许控制位。
ET1和ET0(IE.3,IE.1)定时器1和定时器0中断允许控制位。
EX1和EX0(IE.2,IE.0)外部中断1和外部中断0允许控制位。
8051采用两级中断控制方法。比如要开启定时器0的中断 要分别 在EA 和 ET0 两位置1.
B TCON 外部中断0,1 定时器0,1终端控制寄存器。
TCON包括 TF1, TR1, TF0, TR0, IE1, IT1, IE0, IT0
TF1,TF0(TCON7,TCON5)定时器T1,T0的计数溢出标志。
IE1,IE0(TCON,3,TCON.1)外部中断1,0的中断请求标志位
以上4位 由硬件检测到中断信号后自动置1.
IT1,IT0(TCON,2,TCON.0)外部中断信号的触发方式选择位
为0时,是低电平触发 为1时,是下降沿脉冲触发方式。
C IP中断优先级控制寄存器。
8c语言中中断程序的编写
格式 void 函数名() interrupt 中断编码{函数体}
其中 中断编码分别为
外部中断0 0
定时器0 1
外部中断1 2
定时器1 3
串口发送接收 4
中断函数不用事先声明。编写中断函数要注意开中断。
9 定时器及相关寄存器
定时器的工作原理 16位的加一计数器。
相关寄存器
T0,T1的控制寄存器TCON
TF1,TF0 (TCON7,TCON5)定时器T1,T0的计数溢出标志。
TR1,TR0(CON6,TCON4)定时器运行控制器
0时停止工作,1时启动。
T0,T1的方式控制寄存器TMOD
TMOD高4位控制T1 低4位控制T0
其中 GATE 门控位 等于0时
等于1时
C/T 定时或计数功能选择位 等于0时 定时功能,计数脉冲由内部提供
等于1时 计数功能,对外部事件(脉冲)进行计数
M1和M0:T1和T0操作方式选择位
计数初值与计数个数的关系 计数个数=2的16次方-计数初值.
10定时器的应用.
初始化程序应完成如下工作:
§对TMOD赋值,以确定T0和T1的工作方式。
§计算初值,并将其写入TH0、TL0或TH1、TL1。
§中断方式时,则对IE赋值,开放中断。
启动定时器
TMOD=0x01;//设置定时器0的工作方式1
TH0=(65536-50000)/256;
TL0=(65536-50000)%6;
EA=1; //开总中断
ET0=1;//开定时器0中断
TR0=1;//启动定时器0
c51单片 相关文章:
- 基于单片机的智能计步器设计(09-20)
- C51单片机微调SH-20504程序(12-02)
- C51单片机运用定时器T0中断实现电子时钟(12-02)
- T6963C的51单片机驱动程序(12-02)
- 谈谈自学C51单片机的一些见解仅作参考(11-30)
- 89C51单片机I/O口模拟串行通信的实现方法(11-30)