粤嵌实习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("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单片机相关推荐
- 粤嵌实习-linux下madplay播放器的下载和使用、线程的介绍和创建一个广告循环播放线程
文章目录 粤嵌实习(电梯运行演示系统) 播放器: 线程: 简单介绍: 创建线程: 应用:创建一个广告循环播放的线程 粤嵌实习(电梯运行演示系统) 播放器: (1)通过命令sudo apt-get in ...
- 粤嵌实习-电梯界面的设计、触摸屏的使用、楼层按键状态的变化
文章目录 粤嵌实习(电梯运行演示系统) 电梯界面显示: (1)设计排版 (2)将所需的界面图片上传到开发板工作文件夹中 (3)将图片显示到开发板上 开发板触摸屏使用: 应用:点击一个电梯的楼层按钮,将 ...
- 【51毕设案例】基于51单片机-定时喂食供氧智能鱼缸
目录 功能介绍: 整体功能简述: 硬件框图: 软件流程图: 原理图: 仿真图: 元器件清单: 主要部分代码展示:void main() 工程管理展示: 下载内容展示: 更详细代码视频讲解及代码下载请看 ...
- 粤嵌实验板 linux 环境,粤嵌实习报告
广东海洋大学 学 生 专 业 实 习 报 告 广 东 海 洋 大 学 电 子 与 信 息 工 程 学 院 广东海洋大学学生实验报告书 实验名称 课程名称 成绩 学院(系) 电子与信息工程学院 专业 自 ...
- 粤嵌实习智能家居day5--基于6818开发板
# 传感器数据的实时获取及实时显示 接线方式: ARM板 GY39 Vcc 接电源 --------- Vcc ...
- 粤嵌实习智能家居day3--基于6818开发板
# bmp图片 主要任务:在开发板上显示一张bmp图片 jpg.png.bmp lseek()定位光标 NAME lseek - reposition read/ ...
- 【基于51的多功能智能小车】
基于51的多功能智能小车 文章目录 基于51的多功能智能小车 前言 一.多功能智能小车介绍 二.软件部分 二.硬件部分 三. 程序编写 前言 > 又到了一学期一度的校内智能车大赛,想起上一次参加 ...
- 单片机遥控车c语言程序,基于51单片机的无线遥控小车设计[附发射接收程序]
/***************************************************************/ /*[基于51单片机的无线遥控小车设计] 作者王*茹 */ /*** ...
- 基于51单片机的超声波避障小车(HC-SR04,SG90舵机)
+ 一.HC-SR04超声波模块 二.SG90舵机 三.总程序编写 一.HC-SR04超声波模块 HC-SR04时序图 触发信号输入端(Trig)输入一个10微秒以上的高电平信号,超声发送口收到信号自 ...
最新文章
- 6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
- soap php 分开类,PHP SoapClient类型映射的行为有所不同
- 苹果手机怎样用计算机,苹果手机怎么连接电脑,详细教您怎么使用苹果手机连接电脑...
- 网络基础(二)及HTTP协议
- [Java基础]注解概念
- 安装linux必不可少的一个分区,安装linux系统对硬盘分区时,必须有的两种分区类型是什么?...
- linux 环境变量详解,linux环境变量实例详解
- c++ new 数组_用Java实现JVM第八章《数组和字符串》
- postman 使用_Postman使用方法
- css代码总结,css属性代码大全总结(一)
- cisco3745做Easy ×××
- python编程符号大全-python符号大全
- java---金额中文大小写实时转换小程序
- 经验分享:如何做好产品可行性分析?
- C# 本地图片转Base64码和Base64码显示
- 百宝云COM组件操作教程
- 二、VSCODE 环境搭建
- VUE项目(仿商城)
- 家庭网络理解(家庭版光猫、路由器、交换机)
- 高速公路二维码定位报警系统
热门文章
- html页面json转成对象吗,将HTML表单转换为JSON对象
- 『忘了再学』Shell基础 — 19、使用declare命令声明变量类型
- 微信开发者工具:errMsg: “request:fail invalid url “xxx“
- 【转】通过多线程为基于 .NET 的应用程序实现响应迅速的用户
- 计算机专业以后可以学画画吗,学美术有出路吗 各大类美术专业前景
- 九零后中年人勿入雷区,95%的人都中招了
- 总有一天你将破蛹而出
- 红米k60和小米13参数对比
- android layoutinflater 高度,探究LayoutInflater和RecyclerView中item设置宽高无效
- 众信金融交易额破20亿携滴滴打车送千万