电平特性
数字电路中只有两种电平:高和低
单片机为TTL电平:高+5V 低0V
RS232电平:计算机的串口,高-12V 低+12V
所以计算机与单片机之间通讯时需要加电平转换芯片max232(实验板上左下角)。
异或运算是实现“必须不同,否则就没有”
80C51是MCS-51系列中的一个典型品种;其它厂商以8051为基核开发出的CMOS工艺单片机产品统称为80c51系列。
C-51包含的头文件
通常有:reg51.h reg52.h math.h ctype.h stdio.h stdlib.h absacc.h
常用有:reg51.h reg52.h 定义特殊功能寄存器和位寄存器
Math.h 定义常用数学运算
数据类型的扩充定义
Sfr:特殊功能寄存器声明
Sfr16:sfr的16位数据声明
Sbit:特殊功能位声明
Bit:位变量声明
C-51运算符
1 + - * / 加减乘除
2 > >= < <= 大于 大于等于 小于 小于等于
3 == != 测试等于 测试不等于
3 && || ! 逻辑与 逻辑或 逻辑非
4 >> << 位右移 位左移
5 & | 按位与 按位或
6 ^ ~ 按位异或 按位取反
中断服务程序
函数名()interrupti n using m
{
函数内部实现……
}
I/O口定义
Sbit beep=P2^3;
单片机主要掌握以下几点
最小系统能够运行起来的必要条件:1电源2晶振3复位电路
对单片机任意IO口的随意操作:1输出控制电平高低2输出检测电平高低
定时器:重点掌握最常用的方式2
中断:外部中断、定时器中断、串口中断
串口通信:单片机之间、单片机与计算机间
KEIL的使用
Main函数
格式:void main()
特点:无返回值,无参。
任何一个C程序有且仅有一个main函数,它是整个程序开始执行的入口。
例如:void main()
{
总程序从这里开始执行;
其他语句;
}
单片机I/O口的使用
对单片机的控制,其实就是对I/O口的控制,无论单片机对外界进行何种控制,或接受外部的何种控制,都是通过I/O口进行的。51单片机总共有P0、P1、P2、P3四个8位双向输入输出端口,每个端口都有锁存器、输出驱动器和输入缓冲器。4个I/O端口都能作输入输出口用,其中P0和P2通常用于对外部存储器的访问。
在无片外扩展存储器的系统中,这4个端口的每一位都可以作为准双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。
当P0作为I/O口使用时,特别是作为输出时,输出级属于开漏电路,必须外接上拉电阻才会有高电平输出;如果作为输入,必须先向相应的锁存器写“1”,才不会影响输入电平。
当CPU内部控制信号为“1”时,P0口作为地址/数据总线使用,这时,P0口就无法再作为I/O口使用了。
P1、P2和P3口为准双向口,在内部差别不大,但使用功能有所不同。
P1口是用户专用8位准双向I/O口,具有通用输入/输出功能,每一位都能独立地设定为输入或输出。当有输出方式变为输入方式时,该位的锁存器必须写入“1”,然后才能进入输入操作。
P2口是8位准双向I/O口。外接I/O设备时,可作为扩展系统的地址总线,输出高8位地址,与P0口一起组成16位地址总线。
过P做BM的垂线,垂足为T,过Q做MC的垂线,垂足为S。
PM*PM=PB*PB-BT*BT+MT*MT
MQ*MQ=QC*QC-CS*CS+MS*MS
PQ*PQ=PM*PM+MQ*MQ= PB*PB-BT*BT+MT*MT+ QC*QC-CS*CS+MS*MS
三角形BPT与QSC相似,PT/SC=BT/QS,即PT*QS=BT*SC
三角形PMT与QSM相似,PT/MS=MT/QS,即PT*QS=MS*MT
即BT*SC=MS*MT,BT/MT=MS/SC.
由于M为BC中点,所以BM=MC。
所以BT=MS,MT=CS
所以PQ*PQ= PB*PB-BT*BT+MT*MT+ QC*QC-CS*CS+MS*MS
= PB*PB + QC*QC-CS*CS+MS*MS-BT*BT+MT*MT
= PB*PB + QC*QC
展开阅读全文