普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 16643|回复: 16

51学习记录

 关闭 [复制链接]

2

主题

18

帖子

57

积分

注册会员

Rank: 2

积分
57
发表于 2018-4-15 22:02:50 | 显示全部楼层 |阅读模式
第一课:

ROM:只读存储器  掉电不丢失  存程序
RAm:随机存储器  掉电丢失数据 存程序变量,或者表格

电平特性:

高电平 5v或者3.3v
低电平 0v
RS232串口
高电平 -12v
低电平 +12v
max232芯片实现串口电平与TTL的电平转换

二进制的逻辑运算

& 有0得0   清零
| 有1得1   置1
~ 取反
^必须相同 否则没有(0)

以8051为基核
p3.0 RXD串行接口输入
p3.1 TXD串行    输出
p3.2 外部中断0
p3.3 外部中断1
p3.4 定时器0
p3.5 定时器1
p3.6 WR 外部写
P3.7 RD 外部读

基本时序
机器周期和指令周期
(1)振荡周期 12MHZ晶振
(2)状态周期 为振荡周期的2倍 振荡周期经2分频
(三)机器周期 =12个振荡周期
(④)指令周期



回复

使用道具 举报

2

主题

18

帖子

57

积分

注册会员

Rank: 2

积分
57
 楼主| 发表于 2018-4-15 22:14:14 | 显示全部楼层
第二课

学单片机学什么
1 对IO控制
2 接受外部控制 通过IO感知外部
3 p 0 1 2 3 8位的双相输入输出端口

IO结构

p0 开漏输出 需外部接上拉电阻才可输出高电平,低电平可以不接上拉电阻输出

p1 2 3 内部具有上拉电阻不需外界上拉

上拉电阻:将不确定信号拉到高电平还起到了限流作用

加大普通io驱动能力
起到限流作用
抗电磁干扰

oc输出时过大的上拉电阻将导致信号上升沿过大 4.7k到10k的上拉电阻一般

回复 支持 反对

使用道具 举报

2

主题

18

帖子

57

积分

注册会员

Rank: 2

积分
57
 楼主| 发表于 2018-4-15 22:23:10 | 显示全部楼层
第三课

c语言

回复 支持 反对

使用道具 举报

2

主题

18

帖子

57

积分

注册会员

Rank: 2

积分
57
 楼主| 发表于 2018-4-15 22:33:15 | 显示全部楼层
单片机最小系统

复位
高电平复位
自动下载

rts dtr 高低电平变化 控制单片机的电源
回复 支持 反对

使用道具 举报

2

主题

18

帖子

57

积分

注册会员

Rank: 2

积分
57
 楼主| 发表于 2018-4-15 22:43:53 | 显示全部楼层
第5课
创建工程模板

回复 支持 反对

使用道具 举报

2

主题

18

帖子

57

积分

注册会员

Rank: 2

积分
57
 楼主| 发表于 2018-4-15 23:08:28 | 显示全部楼层
#include "reg52.h"
sbit led=P0^0;

void main()
{
        while(1)
        {
          led=0;
        }
}
回复 支持 反对

使用道具 举报

2

主题

18

帖子

57

积分

注册会员

Rank: 2

积分
57
 楼主| 发表于 2018-4-16 21:33:24 | 显示全部楼层
c语言的常用预处理
typedef
typedef  unsigned char u8 0-255
typedef  unsigned int u16 0-65535
增强程序的移值性

while(i<10)当值为真执行循环
{
i++;
}

延时函数

void delay (u16 i) i=1大约延10us
{
while(i--);
}




程序
#include "reg52.h"
typedef unsigned int u16 ;
typedef unsigned char u8 ;
sbit led=P0^0;

void delay (u16 i)
{
while(i--);
}

void main()
{
        while(1)
        {
          led=0;
          delay(50000);         //大约450ms
          led=1;
          delay(50000);
        }
}
回复 支持 反对

使用道具 举报

2

主题

18

帖子

57

积分

注册会员

Rank: 2

积分
57
 楼主| 发表于 2018-4-16 22:26:05 | 显示全部楼层
led流水灯
1、 c语言常用的预处理命令
typedef
#define
2、循环左移右移
#include “intrins.h”
_crol_(a,b);a左移值 b位数
_cror_(a,b);a右移值 b位数
程序
#include "reg52.h"
#include "intrins.h"
typedef unsigned int u16 ;
typedef unsigned char u8 ;
#define led P0

        void delay (u16 i)
        {
        while(i--);
        }

void main()
{
   u8 i;
        led =0x01;
        delay(50000);
        while(1)
        {
          /*for(i=0;i<8;i++)
          {
           led=(0x01<<i);
                   delay(50000);
               
          }*/
         for(i=0;i<7;i++)
         {
                 led=_crol_(led,1);
                 delay(50000);
         
         }
                   for(i=0;i<7;i++)
         {
                 led=_cror_(led,1);
                 delay(50000);
         
         }

        }
}
回复 支持 反对

使用道具 举报

42

主题

563

帖子

1907

积分

金牌会员

Rank: 6Rank: 6

积分
1907
发表于 2018-4-17 08:17:32 | 显示全部楼层
你第一课没有学习单片机内部的地址映射呀
回复 支持 反对

使用道具 举报

2

主题

18

帖子

57

积分

注册会员

Rank: 2

积分
57
 楼主| 发表于 2018-4-18 22:11:17 | 显示全部楼层
#include "reg52.h"
#include "intrins.h"
typedef unsigned int u16 ;
typedef unsigned char u8 ;
sbit  beep =P1^5;

        void delay (u16 i)
        {
        while(i--);
        }

void main()
{
           while(1)
        {
           beep=~beep;
           delay(10);

       
       
        }

}
蜂鸣器程序 开发板 所用 无源蜂鸣器  给  的事 大约5khz信号 的高低电平
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-24 17:22 , Processed in 0.092726 second(s), 30 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表