学会编单片机必须会c语言吗,十天学会单片机和C语言编程.docx
电平特性
数字电路中只有两种电平:高和低
单片机为TTL电平:高+5V 低0V
RS232电平:计算机的串口,高-12V 低+12V
所以计算机与单片机之间通讯时需要加电平转换芯片max232(实验板上左下角)。
异或运算是实现“必须不同,否则就没有”
80C51是MCS-51系列中的一个典型品种;其它厂商以8051为基核开发出的CMOS工艺单片机产品统称为80c51系列。
C-51包含的头文件
通常有:reg51.h reg52.h math.h ctype.h stdio.h stdlib.h absacc.h
常用有:reg51.h reg52.h 定义特殊功能寄存器和位寄存器
Math.h 定义常用数学运算
数据类型的扩充定义
Sfr:特殊功能寄存器声明
Sfr16:sfr的16位数据声明
Sbit:特殊功能位声明
Bit:位变量声明
C-51运算符
1 + - * / 加减乘除
2 > >= < <= 大于 大于等于 小于 小于等于
3 == != 测试等于 测试不等于
3 && || ! 逻辑与 逻辑或 逻辑非
4 >> << 位右移 位左移
5 & | 按位与 按位或
6 ^ ~ 按位异或 按位取反
中断服务程序
函数名()interrupti n using m
{
函数内部实现……
}
I/O口定义
Sbit beep=P2^3;
单片机主要掌握以下几点
最小系统能够运行起来的必要条件:1电源2晶振3复位电路
对单片机任意IO口的随意操作:1输出控制电平高低2输出检测电平高低
定时器:重点掌握最常用的方式2
中断:外部中断、定时器中断、串口中断
串口通信:单片机之间、单片机与计算机间
KEIL的使用
Main函数
格式:void main()
特点:无返回值,无参。
任何一个C程序有且仅有一个main函数,它是整个程序开始执行的入口。
例如:void main()
{
总程序从这里开始执行;
其他语句;
}
单片机I/O口的使用
对单片机的控制,其实就是对I/O口的控制,无论单片机对外界进行何种控制,或接受外部的何种控制,都是通过I/O口进行的。51单片机总共有P0、P1、P2、P3四个8位双向输入输出端口,每个端口都有锁存器、输出驱动器和输入缓冲器。4个I/O端口都能作输入输出口用,其中P0和P2通常用于对外部存储器的访问。
在无片外扩展存储器的系统中,这4个端口的每一位都可以作为准双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。
当P0作为I/O口使用时,特别是作为输出时,输出级属于开漏电路,必须外接上拉电阻才会有高电平输出;如果作为输入,必须先向相应的锁存器写“1”,才不会影响输入电平。
当CPU内部控制信号为“1”时,P0口作为地址/数据总线使用,这时,P0口就无法再作为I/O口使用了。
P1、P2和P3口为准双向口,在内部差别不大,但使用功能有所不同。
P1口是用户专用8位准双向I/O口,具有通用输入/输出功能,每一位都能独立地设定为输入或输出。当有输出方式变为输入方式时,该位的锁存器必须写入“1”,然后才能进入输入操作。
P2口是8位准双向I/O口。外接I/O设备时,可作为扩展系统的地址总线,输出高8位地址,与P0口一起组成16位地址总线。
过P做BM的垂线,垂足为T,过Q做MC的垂线,垂足为S。
PM*PM=PB*PB-BT*BT+MT*MT
MQ*MQ=QC*QC-CS*CS+MS*MS
PQ*PQ=PM*PM+MQ*MQ= PB*PB-BT*BT+MT*MT+ QC*QC-CS*CS+MS*MS
三角形BPT与QSC相似,PT/SC=BT/QS,即PT*QS=BT*SC
三角形PMT与QSM相似,PT/MS=MT/QS,即PT*QS=MS*MT
即BT*SC=MS*MT,BT/MT=MS/SC.
由于M为BC中点,所以BM=MC。
所以BT=MS,MT=CS
所以PQ*PQ= PB*PB-BT*BT+MT*MT+ QC*QC-CS*CS+MS*MS
= PB*PB + QC*QC-CS*CS+MS*MS-BT*BT+MT*MT
= PB*PB + QC*QC
展开阅读全文
学会编单片机必须会c语言吗,十天学会单片机和C语言编程.docx相关推荐
- 如何设计一门语言(十)——正则表达式与领域特定语言(DSL)
几个月前就一直有博友关心DSL的问题,于是我想一想,我在gac.codeplex.com里面也创建了一些DSL,于是今天就来说一说这个事情. 创建DSL恐怕是很多人第一次设计一门语言的经历,很少有人一 ...
- c语言用十年算入门,初识C语言_十年饮冰 难凉热血的技术博客_51CTO博客
今天学习了C语言的字符串和转义字符:我总结了如下的一些知识点来和初学C语言的小伙伴们 分享一下!也希望能得到大家的指点或者能和大家一起讨论! 字符串的定义:"hello"像这种由双 ...
- 十天征服单片机百度云_单片机资料百度盘.
一. 51 单片机 1 .祥云 51 单片机学习光盘(视频教程.例程.操作系统)适合 初学者 资 料 下 载 链 接 : https://yunpan.cn/cJzLQdrBfp2KD 访 问 密 码 ...
- 十天征服单片机百度云_单片机百度盘资料
一. 51 单片机 1 .祥云 51 单片机学习光盘(视频教程.例程.操作系统)适 合初学者 资 料 下 载 链 接 : https://yunpan.cn/cJzLQdrBfp2KD 访 问 密 码 ...
- 一些生活中简单可用的技能--十分钟学会,终生受益
一些日常生活中简单可用的技能 十分钟学会,终生受益 工作 学习 生活 社交 十分钟学会,终生受益 下面的文章是从知乎高赞回答中"日常生活中有哪些十分钟就能学会并可以终生受用的技能?" ...
- 《十天学会单片机和C语言编程》
<十天学会单片机和C语言编程> 大家注意了这个文件只有最新版迅雷可以下载,下面的lesson几就是第几课.点击右键使用迅雷下载. ed2k://|file|[十天学会单片机和C语言编程]. ...
- C语言小学生都能学会,你还说单片机很难,难道你连小学生都不如吗
C语言小学生都能学会,你还说单片机很难,难道你连小学生都不如吗 我是很认真的,没有在跟你吹水,前段时间有邻居知道我是攻城狮,闲聊的时候想让我带他的女儿学习单片机,当时我就拒绝了,因为在我的认知范围里这 ...
- 单片机红外通信c语言,基于C语言的计算机与多单片机红外无线串口通信的实现.doc...
基于C语言的计算机与多单片机红外无线串口通信的实现 基于C语言的计算机与多单片机红外无线 串口通信的实现 黄文亮 信息学院 电子信息工程专业 指导教师 刘传菊 摘要:计算机与一台或多台单片机的通信系统 ...
- c语言 按键切换显示屏,51单片机lcd1602按键切屏
大家好,我又来了,这次是基础切屏(我也只会这基础..),我用的是stc15w4k56s4的单片机,作用是,可以使用和51一样的操作. 切屏 切屏: 例如我想在两个屏幕之间切换:1.先把每个屏幕应该显示 ...
- c语言流水灯程序详细讲解,用c语言编写单片机流水灯程序详解
用C语言编写的单片机流水灯程序 一.硬件电路 因为电路用单片机控制,所以电路非常简洁.其电路原理图见下图,印制板图如下图所示. ? 电路的核心部分是AT89C2051单片机,前面提到它有Pl和P3两组 ...
最新文章
- 欧拉角和旋转矩阵相互转换
- python 实现双端队列
- Java实例开发教程:SpringBoot开发案例
- spark-shell连接数据库java.sql.SQLSyntaxErrorException: Unknown databas
- 《Python黑帽子:黑客与渗透测试编程之道》 Web攻击
- WordPress 获取当前页面 ID 的几大方法
- 前端学习(653):算数运算符
- 两篇transfomer 论文解读
- WebView与APP交互实战记录
- yum挂在iso文件yum源配置
- 解决Nginx + PHP(FastCGI)遇到的502 Bad Gateway错误[原创]
- net 去掉第一位和最后一位_2020最后三个月港剧有咩睇?熟女强人首播!
- Redis可视化客户端管理及监控工具TreeNMS
- js控件封装之tree
- 【20保研】2019年中科院沈阳计算所大学生暑期夏令营通知
- Java核心技术大会|Java应用开发专场
- 玩儿计算机最快的人,电脑玩吃鸡最全攻略,让你吃鸡快人一步
- 【生存游戏】一组按序排列围成一圈的参赛选手,通过逢3退1游戏机制筛选出最后一个生存者的Java算法
- 分频电路的实现:奇数分频、偶数分频和小数分频
- Linux DAC 权限管理详解