1.C语言
    基础数据类型
        int:整型 123   -1 -2 -3  4字节 32bits   取值范围: -2^31~2^32-1
        char: 字符型 abc 1字节 8bits
        float:浮点型 3.1415926 4字节 32bits
        
        int a = 10;
        char i = 'a';
        float b = 3.14;
        
    2.语句
        if() 0:假  非0:真
        
        for(int i = 0;i < = 10;i++)
        {
            .......
        }

while(1)
        {
            printf("250\n");
        }
        
        do
            i++
        while()
        
        switch(n)
            case:1
            .......
            break;
            
    3.编码流程
        头文件:保存函数的定义
            #include <stdio.h>
            printf();
        
        函数定义:实现函数功能
            (1):返回值 int char int*
            (2):函数名 自定义且不冲突   printf() x   My_print()
            (3):参数列表  swap(int a,int b)
            (4):函数体 函数具体实现
            void swap()
            {
            
            
            }
        
        
            int main()
            {
                
                
                return 0;
            }
        
        编码规范:
        顶格
        Tab:缩进
        {}:成对出现,各占一行

任务:LED流水灯 D1~D8

单片机识别:
        1.更换单片机
        2.安装包里的驱动
        3.驱动精灵(不推荐)、Intel Driver & Support Assistant(推荐)
        4.百度本电脑型号的驱动
        
        
    1.GPIO引脚
        什么是GPIO引脚?
            General Purpose Input Output 通用功能的输入输出引脚
            引脚就是从芯片内部引出的功能可以复用的一根线。
        
        GPIO的内部结构
        Outout:
            CPU -> 0 -> 外部引脚就会输出一个低电平
            CPU -> 1 -> 外部引脚就会输出一个高电平
            
        Input:
            外部引脚输入信号(电压值)高电平 ->  1 -> CPU 
            外部引脚输入信号(电压值)低电平 ->  0 -> CPU 
            
        
        C51有四组GPIO,每组有8pins 4*8 = 32
        
        P0组
            寄存器(字节)地址0x80,位地址0x80~0x87
            P0.0 0x80
            P0.1 0x81
            
            
            
            ...
            P0.7 0x87 
            例子:假如要给P0组8个引脚高电平
            0xFF -> [0x80]
            
                给P0.7一个低电平
                0 -> [0x87]
                
        P1组
            寄存器地址 0x90
            
        P2组
            寄存器地址 0xA0
            
        P3组
            寄存器地址 0xB0
            
            
    2.C代码如何实现的呢?
        C51编译器新增了两个关键字 
            sfr:special Function register     特殊功能寄存器
                声明一个“特殊功能寄存器变量”
                语法:
                    sfr 寄存器变量名  = 寄存器地址
                    
                如:
                    sfr P0 = 0x80;
                    P0 = 0xFF;
                    
                    
                    sfr sb250 = 0x80;
                    sb250 = 0xFF;
                    
            sbit 
                sbit 用来声明“特殊功能寄存器变量的某一个bit位变量”
                语法:
                    sbit 位变量名 = 特殊功能寄存器地址 ^ 第几位
                    or
                    sbit 位变量名 = 特殊功能寄存器变量名 ^ 第几位
                    
                    如:
                        P1.0
                        sbit P1_0 = 0x90^0
                        
                        P1.7
                        sfr P1 = 0x90;
                        sbit P1_7 = P1^7;
                        
                        
    3.位操作
        C语言位操作
            把整数化为bit位序列,然后再进行操作
            
            左移
                x << n
                    把X整体左移 n bit位,原来最左边的 n bit  直接丢弃(discards)
                        最右边空出的n 位,直接补0
                        
                    如:
                        5 << 3
                        00101000  0x28
            右移            
                x >> n
                    把X整体右移 n bit位,原来最右边的 n bit  直接丢弃(discards)
                        最左边空出的n 位,直接补0
                        
            & 按位与
                a    b    a&b
                1    1    1
                1    0    0
                0    1    0
                0    0    0
                5&3 = ?
                    00000101
                &    00000011
                    00000001
                
        
            | 按位或
                a    b    a|b
                1    1    1
                1    0    1
                0    1    1
                0    0    0
                        
                5|3 = ?        
                    00000101
                |    00000011
                    00000111
                        
                        
            ^按位异或:不同为1,相同为0
                a    b    a^b        
                1    1    0
                1    0    1
                0    1    1
                0    0    0
                    5^3 = ??
                    00000101
                ^    00000011
                    00000110
            
            ~ 按位取反
                0 -> 1
                1 -> 0

粤嵌实习51小车day 1-基于51单片机相关推荐

  1. 粤嵌实习-linux下madplay播放器的下载和使用、线程的介绍和创建一个广告循环播放线程

    文章目录 粤嵌实习(电梯运行演示系统) 播放器: 线程: 简单介绍: 创建线程: 应用:创建一个广告循环播放的线程 粤嵌实习(电梯运行演示系统) 播放器: (1)通过命令sudo apt-get in ...

  2. 粤嵌实习-电梯界面的设计、触摸屏的使用、楼层按键状态的变化

    文章目录 粤嵌实习(电梯运行演示系统) 电梯界面显示: (1)设计排版 (2)将所需的界面图片上传到开发板工作文件夹中 (3)将图片显示到开发板上 开发板触摸屏使用: 应用:点击一个电梯的楼层按钮,将 ...

  3. 【51毕设案例】基于51单片机-定时喂食供氧智能鱼缸

    目录 功能介绍: 整体功能简述: 硬件框图: 软件流程图: 原理图: 仿真图: 元器件清单: 主要部分代码展示:void main() 工程管理展示: 下载内容展示: 更详细代码视频讲解及代码下载请看 ...

  4. 粤嵌实验板 linux 环境,粤嵌实习报告

    广东海洋大学 学 生 专 业 实 习 报 告 广 东 海 洋 大 学 电 子 与 信 息 工 程 学 院 广东海洋大学学生实验报告书 实验名称 课程名称 成绩 学院(系) 电子与信息工程学院 专业 自 ...

  5. 粤嵌实习智能家居day5--基于6818开发板

    # 传感器数据的实时获取及实时显示 接线方式:         ARM板                    GY39         Vcc 接电源   ---------   Vcc       ...

  6. 粤嵌实习智能家居day3--基于6818开发板

    # bmp图片     主要任务:在开发板上显示一张bmp图片     jpg.png.bmp lseek()定位光标     NAME        lseek - reposition read/ ...

  7. 【基于51的多功能智能小车】

    基于51的多功能智能小车 文章目录 基于51的多功能智能小车 前言 一.多功能智能小车介绍 二.软件部分 二.硬件部分 三. 程序编写 前言 > 又到了一学期一度的校内智能车大赛,想起上一次参加 ...

  8. 单片机遥控车c语言程序,基于51单片机的无线遥控小车设计[附发射接收程序]

    /***************************************************************/ /*[基于51单片机的无线遥控小车设计] 作者王*茹 */ /*** ...

  9. 基于51单片机的超声波避障小车(HC-SR04,SG90舵机)

    + 一.HC-SR04超声波模块 二.SG90舵机 三.总程序编写 一.HC-SR04超声波模块 HC-SR04时序图 触发信号输入端(Trig)输入一个10微秒以上的高电平信号,超声发送口收到信号自 ...

最新文章

  1. 6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
  2. soap php 分开类,PHP SoapClient类型映射的行为有所不同
  3. 苹果手机怎样用计算机,苹果手机怎么连接电脑,详细教您怎么使用苹果手机连接电脑...
  4. 网络基础(二)及HTTP协议
  5. [Java基础]注解概念
  6. 安装linux必不可少的一个分区,安装linux系统对硬盘分区时,必须有的两种分区类型是什么?...
  7. linux 环境变量详解,linux环境变量实例详解
  8. c++ new 数组_用Java实现JVM第八章《数组和字符串》
  9. postman 使用_Postman使用方法
  10. css代码总结,css属性代码大全总结(一)
  11. cisco3745做Easy ×××
  12. python编程符号大全-python符号大全
  13. java---金额中文大小写实时转换小程序
  14. 经验分享:如何做好产品可行性分析?
  15. C# 本地图片转Base64码和Base64码显示
  16. 百宝云COM组件操作教程
  17. 二、VSCODE 环境搭建
  18. VUE项目(仿商城)
  19. 家庭网络理解(家庭版光猫、路由器、交换机)
  20. 高速公路二维码定位报警系统

热门文章

  1. html页面json转成对象吗,将HTML表单转换为JSON对象
  2. 『忘了再学』Shell基础 — 19、使用declare命令声明变量类型
  3. 微信开发者工具:errMsg: “request:fail invalid url “xxx“
  4. 【转】通过多线程为基于 .NET 的应用程序实现响应迅速的用户
  5. 计算机专业以后可以学画画吗,学美术有出路吗 各大类美术专业前景
  6. 九零后中年人勿入雷区,95%的人都中招了
  7. 总有一天你将破蛹而出
  8. 红米k60和小米13参数对比
  9. android layoutinflater 高度,探究LayoutInflater和RecyclerView中item设置宽高无效
  10. 众信金融交易额破20亿携滴滴打车送千万