电平特性

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

单片机为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相关推荐

  1. 如何设计一门语言(十)——正则表达式与领域特定语言(DSL)

    几个月前就一直有博友关心DSL的问题,于是我想一想,我在gac.codeplex.com里面也创建了一些DSL,于是今天就来说一说这个事情. 创建DSL恐怕是很多人第一次设计一门语言的经历,很少有人一 ...

  2. c语言用十年算入门,初识C语言_十年饮冰 难凉热血的技术博客_51CTO博客

    今天学习了C语言的字符串和转义字符:我总结了如下的一些知识点来和初学C语言的小伙伴们 分享一下!也希望能得到大家的指点或者能和大家一起讨论! 字符串的定义:"hello"像这种由双 ...

  3. 十天征服单片机百度云_单片机资料百度盘.

    一. 51 单片机 1 .祥云 51 单片机学习光盘(视频教程.例程.操作系统)适合 初学者 资 料 下 载 链 接 : https://yunpan.cn/cJzLQdrBfp2KD 访 问 密 码 ...

  4. 十天征服单片机百度云_单片机百度盘资料

    一. 51 单片机 1 .祥云 51 单片机学习光盘(视频教程.例程.操作系统)适 合初学者 资 料 下 载 链 接 : https://yunpan.cn/cJzLQdrBfp2KD 访 问 密 码 ...

  5. 一些生活中简单可用的技能--十分钟学会,终生受益

    一些日常生活中简单可用的技能 十分钟学会,终生受益 工作 学习 生活 社交 十分钟学会,终生受益 下面的文章是从知乎高赞回答中"日常生活中有哪些十分钟就能学会并可以终生受用的技能?" ...

  6. 《十天学会单片机和C语言编程》

    <十天学会单片机和C语言编程> 大家注意了这个文件只有最新版迅雷可以下载,下面的lesson几就是第几课.点击右键使用迅雷下载. ed2k://|file|[十天学会单片机和C语言编程]. ...

  7. C语言小学生都能学会,你还说单片机很难,难道你连小学生都不如吗

    C语言小学生都能学会,你还说单片机很难,难道你连小学生都不如吗 我是很认真的,没有在跟你吹水,前段时间有邻居知道我是攻城狮,闲聊的时候想让我带他的女儿学习单片机,当时我就拒绝了,因为在我的认知范围里这 ...

  8. 单片机红外通信c语言,基于C语言的计算机与多单片机红外无线串口通信的实现.doc...

    基于C语言的计算机与多单片机红外无线串口通信的实现 基于C语言的计算机与多单片机红外无线 串口通信的实现 黄文亮 信息学院 电子信息工程专业 指导教师 刘传菊 摘要:计算机与一台或多台单片机的通信系统 ...

  9. c语言 按键切换显示屏,51单片机lcd1602按键切屏

    大家好,我又来了,这次是基础切屏(我也只会这基础..),我用的是stc15w4k56s4的单片机,作用是,可以使用和51一样的操作. 切屏 切屏: 例如我想在两个屏幕之间切换:1.先把每个屏幕应该显示 ...

  10. c语言流水灯程序详细讲解,用c语言编写单片机流水灯程序详解

    用C语言编写的单片机流水灯程序 一.硬件电路 因为电路用单片机控制,所以电路非常简洁.其电路原理图见下图,印制板图如下图所示. ? 电路的核心部分是AT89C2051单片机,前面提到它有Pl和P3两组 ...

最新文章

  1. 欧拉角和旋转矩阵相互转换
  2. python 实现双端队列
  3. Java实例开发教程:SpringBoot开发案例
  4. spark-shell连接数据库java.sql.SQLSyntaxErrorException: Unknown databas
  5. 《Python黑帽子:黑客与渗透测试编程之道》 Web攻击
  6. WordPress 获取当前页面 ID 的几大方法
  7. 前端学习(653):算数运算符
  8. 两篇transfomer 论文解读
  9. WebView与APP交互实战记录
  10. yum挂在iso文件yum源配置
  11. 解决Nginx + PHP(FastCGI)遇到的502 Bad Gateway错误[原创]
  12. net 去掉第一位和最后一位_2020最后三个月港剧有咩睇?熟女强人首播!
  13. Redis可视化客户端管理及监控工具TreeNMS
  14. js控件封装之tree
  15. 【20保研】2019年中科院沈阳计算所大学生暑期夏令营通知
  16. Java核心技术大会|Java应用开发专场
  17. 玩儿计算机最快的人,电脑玩吃鸡最全攻略,让你吃鸡快人一步
  18. 【生存游戏】一组按序排列围成一圈的参赛选手,通过逢3退1游戏机制筛选出最后一个生存者的Java算法
  19. 分频电路的实现:奇数分频、偶数分频和小数分频
  20. Linux DAC 权限管理详解

热门文章

  1. 程矢Axure夜话:Axure手机原型视频教程之图形解锁
  2. Win10设置定时关机命令简单介绍
  3. VCPKG 包下载失败解决思路
  4. 命名实体识别NER探索(5) Bert+BiLSTM+CRF模型实战应用
  5. db2 sqlcode常见及不常见
  6. svn服务器端上传已有项目,「svn上传新项目」怎么添加新项目到SVN服务器...
  7. 每天一个PS技巧(原理+实践)——简单背景的抠图与毛发抠图
  8. Unity 录制简单的动画
  9. Python常用模块库下载及安装
  10. ADS仿真设计AB类射频功率放大器