前言:
✌ 作者简介:CC++Edge淇,大家可以叫我--斯淇。(CSDN优质博客的建议加这一条)
个人主页:CC++Edge淇主页
如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步
如果感觉博主的文章还不错的话,还请不吝关注、点赞、收藏三连支持一下博主哦
人生格言:琴键有限,人生无限--《海上钢琴师》
每日推荐歌曲:毛不易-《无名的人》
我一直很想写一篇初学者最快入门的文章,我原称为最简单的入门级STM51单片机的入门打法!!!!!(后续文章会更新)
最后祝贺一下自己访问量冲到了一万一!!!!!
————————————————
————————————————
目录
单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
直接上展示图!!!
(1)振荡周期:也称时钟周期,是指为单片机提供时钟脉冲信号的振荡源的周期,我们开发板上为12MHZ。
(2)状态周期:每个状态周期为时钟周期的2倍,是振荡周期经二分频后得到的
(3)机器周期:一个机器周期包含6个状态周期S1~S6,也就是12个时钟周期。在一个机器周期内,CPU可以完成一个独立的操作。
(4)指令周期:它是指CPU完成一条操作所需的全部时间。每条指令执行时间都是有一个或几个机器周期组成。
MCS-51系统中,有单周期指令、双周期指令和四周期指令。
2.接受外部的控制,通过I/O来感受外部的电压。
3.51单片机总共有P0、P1、P2、P3四个8位双向输入输出端口,每个端口都有锁存器、输出驱动器和输入缓冲器。4个I/O端口都能作输入输出口用。
二进制逻辑运算
“与”运算
有0得0
1&1=1 ; 1&0=0 ; 0&0=0 ;
“或”运算
有1得1
1|1=1 ; 1|0=1 ; 0|0=0;
“非”运算
1的非得0,0的非得1。
~1=0; ~0=1;
“异或”运算
必须不同,否则没有(0)
1^1=0;1^0=1;0^0=0;
来原理图!!!
LED的点亮方法
#include
#include
void Delay50ms() //@11.0592MHz
{
unsigned char i,j,k;
_nop_();
i=4;
j=205;
k=187;
do{
do{
while (--k);
}while (--j);
}while(--i);
}
void main(){
while(1){
P2=0xAA;
Delay50ms();
P2=0XFF;
Delay50ms();
}
}
#include
#include
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 4;
j = 129;
k = 119;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main(){
while (1){
P2=0xFE;
Delay500ms();
P2=0xFD;
Delay500ms();
P2=0xFB;
Delay500ms();
P2=0xF7;
Delay500ms();
P2=0xEF;
Delay500ms();
P2=0xDF;
Delay500ms();
P2=0xBF;
Delay500ms();
P2=0x7F;
Delay500ms();
}
#include
void main(){
while(1){
if(P3_1==0){
P2_0=0;
}
else{
P2_0=1;
}
}
}
#include
void Delay(unsigned int xms)
{
unsigned char i, j;
while (xms){
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
xms--;
}
}
void main(){
while(1){
if(P3_1==0){
Delay(20);
while(P3_1==0);
Delay(20);
P2_0=~P2_0;
}
}
}
工程代码:#include
void Delay(unsigned int xms)
{
unsigned char i, j;
while (xms--){
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
}
}
void main(){
while(1){
P2_0=0;
Delay(500);
P2_0=1;
Delay(500);
}
}
#include
#include
typedef unsigned int u16;
typedef unsigned char u8;
sbit BEEP=P1^5;
void delay(u16 xs){
while(xs--);
}
void main(){
u16 i=2000;
u16 j=0;
while(1){
P2=0x00;
delay(50000);
P2=0xFF;
delay(50000);
P2=0x00;
delay(50000);
P2=0xFF;
delay(50000);
P2=0x00;
delay(50000);
P2=0xFF;
delay(50000);
P2=0xfe;
for(j=0;j<7;j++){
P2=_crol_(P2,1);
delay(50000);
}
for(j=0;j<7;j++){
P2=_cror_(P2,1);
delay(50000);
}
while(i--){
BEEP=!BEEP;
delay(300);
}
i=0;
BEEP=0;
}
}
单片机