在这里,把学习视频时的笔记进行记录,在学习视频的过程中,遇到了一些视频中没有讲解到的问题,对于这些问题的解决过程在这里进行记录和总结。

CSDN的对齐格式有点诡异,在编辑器中注释都是对齐的,在CSDN的文章中显示的有一些不能对齐,为了让大家复制粘贴代码的时候能够获得对齐的注释,在这里就对文章中没有对齐的格式不予处理了。

实践第一。

补充必要的理论知识,即缺什么补什么。

做工程项目积累经验。(可在网络上搜集题目,也可自己有什么想法大胆的去试验)

数字电路中只有两种电平:高和低

定义单片机为TTL电平:

高 +5V      低 0V

RS232电平:计算机的串口

高 -12V (RS232电平高电平为负)    低+12V

所以计算机与单片机之间通讯时需要加电平转换芯片max232(实验板上左下角)。

单片机命名:STC(STC公司)89(系列)C(COMS)52(内部存储空间大小:4K*2=8K)RC

40(所支持的晶振频率是40MHZ)C(商业级,如I是工业级,区别是温度适用范围,还有军品级)-PDIP(封装格式,这里是双列直插式,还有BGA等封装)

07(07年)21(21周)CV4336

总线(BUS)是计算机各部件之间传送信息的公共通道。微机中有内部总线和外部总线两类。内部总线是CPU内部之间的连线。外部总线是指CPU与其它部件之间的连线。 外部总线有三种: 数据总线DB(Data  Bus), 地址总线 AB(Address  Bus)和控制总线 CBControl   Bus)。

sfr:特殊功能寄存器声明

sfr16:sfr的16位数据声明

sbit:特殊功能位声明

bit:位变量声明

例:sfr SCON = 0X98;

sfr16 T2 = 0xCC;

sbit OV = PSW^2; PSW^2表示PSW的第二位

C-51的包含的头文件

通常有:reg51.h reg52.h math.h   ctype.h   stdio.h  stdlib.h  absacc.h

常用有:reg51.h reg52.h

(定义特殊功能寄存器和位寄存器);

math.h  (定义常用数学运算);

单片机主要掌握以下几点

最小系统能够运行起来的必要条件。

1.电源 2.晶振3.复位电路

对单片机任意IO口的随意操作

1.输出控制电平高低2.输入检测电平高低。

定时器:重点掌握最常用的方式2

中断:外部中断、定时器中断、串口中断

串口通信:单片机之间、单片机与计算机间

方法:运用单片机就是控制单片机的IO口

在TX-1C型单片机实验板原理图中发光二极管是P2,图中由单片机的P1口控制

原理图中标号相同表示物理连接

发光二极管是由排阻组成,八个排阻,左边是高电平,让发光二极管亮阴极(右边)要给低电平,因为排阻上有关单向导通的发光二极管;发光二极管点亮是3mA,左边VCC是5伏,右边是低电平是0伏,点亮发光二极管的电压是1.7伏,所以电阻上的压降是5-1.7=3.3伏,

所以电阻的阻值是3.3V/3mA=1.1K

电阻分为上拉电阻、下拉电阻和限流电阻

去耦电容的一个作用是稳压,减缓电压的波动

74HC573是锁存器,锁存器的DIOLA管脚接单片机的26管脚;在TX-1C型单片机实验板原理图中一个锁存器控制发光二极管,另两个控制数码管

在课件74hc573中,见P1的真值表,OE是Out Enable输出使能,上面有横线的变量表示低电平有效,D表示输入端,Q表示输出端,当OE低电平时74hc573工作,真值表中L表示低,H表示高,X表示任意(或者高电平或者低电平),Z是数字电路中的高阻态(高阻态是介于高电平和低电平之间的状态,既不是高电平也不是低电平,和其它元器件连接,其它元器件输出高电平时高阻态跟着该元器件变成高电平,反之变成低电平),所以这里让锁存器74hc573工作,给锁存器U3的OE低电平,锁存器U3的输入端接单片机的P1口,由单片机的P1口来控制,10管脚是接地,20管脚接电源;LE表示锁存器的锁存端,见真值表,LE为高电平,输入端D是高电平输出是高电平,输入端D是低电平输出是低电平,LE为低电平,D无论什么值,输出         Q都是Q0,Q0是上一次输出端Q的值,这里给LE即DIOLA高电平;加锁存器是因为锁存器的输入端连接单片机的P1口,而P1口又连接AD0804(模数转换器)的输入端,如果不加锁存器控制发光二极管,当控制AD转换器时会导致发光二极管也亮

51单片机所有IO口上点后默认高电平

使用Keil软件:

打开Keil软件,点击菜单栏上面的Project下面的New Project建立工程,弹出对话框,先新建一个文件夹,再保存工程

然后点击菜单栏上面的File下面的New,新建一个文档,文档的后缀名是“.c”,再在左边面板的工程名下右键选择Add Files to Group ‘Source Group 1’,将该文档加入该工程中即可

编译时点击编译所有文件按钮

生成Hex文件 :点击全部编译按钮右边的Option for target按钮,Output栏下的Create HEX File选中打钩,再编译即可

Option for target按钮的Target下面可以调节晶振频率

STC_ISP软件的使用:先选中MCU Type,这里是STC89C52,再Open File打开Hex文件,再选择烧程序的Com口(计算机—>管理—>设备性能下面查询,还可以修改)(我的计算机上是右键我的电脑,选择属性,弹出系统属性对话框,选择硬件页,点击设备管理器,弹出设备管理器对话框,点击端口(COM和LPT)的十字符号,可以看见当前使用的串口号,前提是学习板的线已经插到串口上或USB口上),选择Max Buad波特率,然后点击Download下载程序开始,再按单片机上的启动按钮,必须先点击软件的下载然后再打开单片机

位操作点亮发光二极管:
#include<reg52.h>
sbit D1=P1^0;
void main()
{
    D1=0;
}

总线操作点亮发光二极管:
#include<reg52.h>
void main()
{
    P1=0xfd;
}
reg52.h文件定义了很多位寄存器,需要时也可以自己定义头文件,并加进到源文件中

练习:
3.点亮最后一个发光管:
#include<reg52.h>
void main()
{
    P1=0x7f;                //将单片机P1口的8个口由高到低分别赋值为01111111
}

4.点亮1、3、5、7
即10101010,AA
#include<reg52.h>
void main()
{
    P1=0xaa;
}

5.点亮二、四、五、六
即10100011,c5
#include<reg52.h>
void main()
{
    P1=0xc5;
}

6.尝试让第一个发光管闪烁
利用延时程序
#include<reg52.h>
void delay()
{
    int i,j;
    for(i=0;i<100;i++)
        for(j=0;j<100;j++);
}
void main()
{
    while(1)
    {
        P1=0xfe;
        delay();
        P1=0xff;
        delay();
    }
}
方法2:
#include<reg52.h>                  //52单片机头文件
sbit led1=P1^0;                    //单片机管脚位声明
void main()                           //主函数
{
    unsigned int i;             //定义一个int型变量
    while(1)
    {
        i=50000;                   //变量赋初值为50000
        led1=0;                    //点亮灯
        while(i--);             //延时
        i=50000;
        led1=1;                 //熄灭灯
        while(i--);
    }

}

7.尝试设计出流水灯程序
#include<reg52.h>
void delay()
{
    int i,j;
    for(i=0;i<100;i++)
        for(j=0;j<200;j++);
}
void main()
{
    while(1)
    {
        P1=0xfe;
        delay();
        P1=0xfd;
        delay();
        P1=0xfb;
        delay();
        P1=0xf7;
        delay();
        P1=0xef;
        delay();
        P1=0xdf;
        delay();
        P1=0xbf;
        delay();
        P1=0x7f;
        delay();
    }
}
方法2:
#include<reg52.h>              //52单片机头文件

void main()                       //主函数
{
    unsigned int i;         //定义一个int型变量
    while(1)
    {
        i=50000;            //变量赋初值为50000
        P1=0xfe;            //点亮第一个灯
        while(i--);         //延时
        i=50000;            //变量赋初值为50000
        P1=0xfd;            //点亮第二个灯
        while(i--);         //延时
        i=50000;            //变量赋初值为50000
        P1=0xfb;            //点亮第三个灯
        while(i--);         //延时
        i=50000;            //变量赋初值为50000
        P1=0xf7;            //点亮第四个灯
        while(i--);         //延时
        i=50000;            //变量赋初值为50000
        P1=0xef;            //点亮第五个灯
        while(i--);         //延时
        i=50000;            //变量赋初值为50000
        P1=0xdf;            //点亮第六个灯
        while(i--);         //延时
        i=50000;            //变量赋初值为50000
        P1=0xbf;            //点亮第七个灯
        while(i--);         //延时
        i=50000;            //变量赋初值为50000
        P1=0x7f;            //点亮第八个灯
        while(i--);         //延时
    }
}

郭天祥的10天学会51单片机_第一节相关推荐

  1. 郭天祥的10天学会51单片机_第十三节

    AD软件: AD软件可以编译C语言和VHDL语言等:AD软件的工具栏上面可以输入网络地址进行浏览网页:AD软件可以布差分信号,即可以两条线可以一起布 按住Shift键和左键可以向左移动,按住Shift ...

  2. 郭天祥的10天学会51单片机_第七节

    串行通信:从D0位一位一位发发到D7位 十个位为一帧如:0101000100,表示一个字符 起始位低电平有效,停止位高电平有效,单片机是异步通信 宽带网线是八根线,组成两队差分信号,分别是TXD1(发 ...

  3. 郭天祥的10天学会51单片机_第三节

    单片机管脚,P3口有两个功能,上电默认情况下就使用P3口的普通IO口,当对单片机内部的某些寄存器设置时就启用P3口的第二个功能 P3^4和 P3^5可以作为计时器或定时器使用,给这两个口输入方波,进行 ...

  4. 10.4.4 51单片机控制系统8个LED“跑马灯”实验

    10.4.4 51单片机控制系统8个LED"跑马灯"实验 仿真+代码 方法一 利用数组 #include"reg52.h"#define u8 unsigned ...

  5. 51单片机学习笔记(郭天祥版)(1)——单片机基础和点亮LED灯

    关于单片机型号的介绍: STC89C52RC40C-PDIP 0721CV4336..... STC:STC公司 89:89系列 C:COMS 52(还有51,54,55,58,516,):2表示存储 ...

  6. 10讲学会C语言之第一讲:编程前的准备

    文章目录 前言 一.必要的说明 二.环境准备与第一个C程序 三.调试 前言 大家好,我是卷卷.今天呢我给大家带来一套C语言图文教程.这个教程呢,也是我在CSDN上传的第一个教程.希望大家多多支持.本教 ...

  7. 红外测距模块 51单片机_[51单片机] HC-SR04超声波测距仪

    1.HC-SR04超声波模块工作原理 (1)采用IO口触发测距,给至少10us高电平脉冲: (2)模块自动发送八个40khz方波,并自主检测是否有电波返回: (3)当有信号返回时,通过IO口输出一个高 ...

  8. 51单片机入门 第一篇:LED灯

    文章目录 前言 一.LED原理图 二.创建keil5工程 三.代码的编写 四.程序的烧录 总结 前言 本篇文章讲正式带大家开始学习51单片机,希望这些文章能够很好的帮助到大家学习51单片机. 一.LE ...

  9. 2440 8字数码管 显示0到10 c语言,51单片机对8位数码管依次显示0-7的设计

    共阳极数组0~9:display[]={0xC0,0xF9,0xA4,0xB0,0x91,0xA2,0x82,0xF8,0x80,0x90} 共阳极数组A~F:display[]={0x88,0x83 ...

  10. 单片机c语言二进制转10进制,51单片机用C语言怎么样把八位二进制转换成十进制...

    满意答案 sunzhaoming 2013.07.06 采纳率:41%    等级:12 已帮助:8866人 //******************************************* ...

最新文章

  1. C++中的stack类、QT中的QStack类
  2. Windows之建立C++开发环境
  3. CSS3中的pointer-events
  4. which 命令详解
  5. mysql开启远程访问权限
  6. python3.7语法错误_Tweepy不会安装在Python3.7上;显示“语法错误”
  7. 在Visual Studio 2008中安装mvc2.0(转)
  8. lintcode:Add Binary 二进制求和
  9. 【JavaEE】第零章(2020.03.06)模式 表 索引
  10. st8s003 c语言编译器,stm8s003f3p6
  11. MiroTik 路由器配置无线中继模式(超细教程)
  12. c语言角度转换为弧度程序,C语言之将弧度值转换为角度值
  13. css固定定位的代码,CSS——相对定位、绝对定位、固定定位(示例代码)
  14. VirtualBox安装Extention Pack教程
  15. c中纠结不清的点(1)
  16. 《山海经》只能是政府组织编写的
  17. 文档自动分类模型--分类算法思路总结
  18. 【C操作符】详解操作符
  19. 【ArcGIS微课1000例】0063:ArcGIS Earth完美代替Google Earth(附安装包下载)
  20. 中国教育大数据研究院在福州成立 倪光南任联席院长

热门文章

  1. Android拦截浏览器广告,浏览器拦截广告的几种方法
  2. 营业执照识别项目记录--CTPN使用
  3. 学好英语对IT软件工程师的影响
  4. Ubuntu 配置 SFTP 服务器
  5. 人工智能 一种现代方法 第4章 超越经典搜索
  6. RCOM串口绘图软件
  7. kettle基础使用教程
  8. Kettle下载安装使用
  9. 计算机内存的存储原理,存储器原理
  10. rog主板php,华硕主板有哪些系列 华硕主板各系列区别对比