栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

粤嵌实习51小车day 1-基于51单片机

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

粤嵌实习51小车day 1-基于51单片机

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("250n");
        }
        
        do
            i++
        while()
        
        switch(n)
            case:1
            .......
            break;
            
    3.编码流程
        头文件:保存函数的定义
            #include
            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
                    
            
            
            
            
            
            
            
            
            
            
            
            
            

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1011872.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号