pdf

模块化编程教程

  • 1星
  • 日期: 2017-09-06
  • 大小: 1.58MB
  • 所需积分:1分
  • 下载次数:5
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: 模块化

非常好的教程,适合初学者的

文档内容节选

一坚科技 STC15 单片机实战指南C 语言版 从 51 单片机 DIY四轴飞行器到优秀产品设计 残弈悟恩小刘老师 2016 官 方 淘 宝 店 铺 : H T T P F S M C U T A O B A O C O M STC15 单片机实战指南C 语言版 微信号:xymbmcu 郑重声明 STC15 单片机实战指南C 语言版 一书以一坚科技研发的飛天三號FSST15V10 实验板为硬件平台,以深入浅出玩转 STC15 单片机为配套视频,由清华大学出版社权 威出版,并且分别是 STC 官方大学计划和高校高性能联合实验室推荐教程和视频,版权归 作者和清华大学出版社所有 本资料以个人学习工作经验以及宏晶科技单片机技术为素材,以单片机初学者单 片机项目开发者为对象,教大家如何走进单片机,继而达到开发工程项目为目的限于时 间和水平关系,资料中难免有......

一坚科技 STC15 单片机实战指南(C 语言版) 从 51 单片机 DIY、四轴飞行器到优秀产品设计 残弈悟恩(小刘老师) 2016 官 方 淘 宝 店 铺 : H T T P : / / F S M C U . T A O B A O . C O M STC15 单片机实战指南(C 语言版) 微信号:xymbmcu 郑重声明 《STC15 单片机实战指南(C 语言版)》 一书以一坚科技研发的飛天三號(FSST15-V1.0) 实验板为硬件平台,以《深入浅出玩转 STC15 单片机》为配套视频,由清华大学出版社权 威出版,并且分别是 STC 官方大学计划和高校高性能联合实验室推荐教程和视频,版权归 作者和清华大学出版社所有。 本资料以个人学习、工作经验以及宏晶科技单片机技术为素材,以单片机初学者、单 片机项目开发者为对象,教大家如何走进单片机,继而达到开发工程项目为目的。限于时 间和水平关系,资料中难免有过失之处,望各位高手批评指教,多多拍砖,拍累了,你们 休息,我继续上路。 现已连载的方式免费共享于各大电子网站,供单片机新手们参考学习,可以自由下载 传 阅 , 但 未 经 作 者 许 可 , 不 得 用 于 任 何 商 业 目 的 , 转 载 请 注 明 出 处 : 残 弈 悟 恩 (www.ieeBase.net)。最终完整版以出版社所出书籍为准。 飛天三號单片机实验板 ~ 1 ~ 电子工程师基地: www.ieeBase.net STC15 单片机实战指南(C 语言版) 微信号:xymbmcu 飛天三號(FSST15-V1.0)实验板 STC 高性能联合实验室专用试验箱学生实验补充开发板 STC 官方推荐书籍《STC15 单片机实战指南》配套开发板 STC 大学计划推荐视频《深入浅出玩转 STC15 单片机》配套开发板 让爱充满大地——花 1 秒时间,拯救 1 个人,传递 1 份爱 声明:只是残弈悟恩爱心的喷发,我得不到一分钱,各位不要多想,谢谢! 你知道吗?在非洲北边的某个地区,每一秒都有许许多多的人正在挨饿,每一天至少有 一位儿童死于营养不足。你的一次点击就能让某位穷人得到 1.1 杯食物。当然你可以不相信 有这样的链接或者是骗点击什么的。事实上,网站确实是帮穷人得 1.1 杯食物的,只要你点 进去点击一下中间的黄色按钮,就会出来一系列介绍各种商品的网页(绝对免费的并且不会 下载任何软件,也不会有电脑病毒),同时也会有人因为您的一次点击而得到 1.1 杯食物, 食物是由商家提拱的,但爱心却是您献出的。如果你觉得残弈悟恩在忽悠大家,你不妨可以 在网上查一下是真与假。 看到这本资料的朋友多数都是电子爱好者、单片机初学者,或者干电子这一行的,管你 是穷学生还是穷工人,只要能上网,只要愿花一秒种就可以了。人生在世,有两件事不能等: 一、孝顺;二、行善。无论你是 LED 小灯、普通灯泡也好,还是荧光灯也罢,最重要就是 要懂得用自身的光去照耀别人,光的强度并不重要。 点击链接: http://www.thehungersite.com/clickToGive/home.faces?siteId=1&link=ctg_ths_home_from_ths_thankyou_sitenav 飛天三號单片机实验板 ~ 2 ~ 电子工程师基地: www.ieeBase.net STC15 单片机实战指南(C 语言版) 微信号:xymbmcu 第 4 章 排兵布阵 步步扣杀:模块化编程 当一个项目小组做一个相对比较复杂的工程时,就需要小组成员分工合作,一起完成项 目,意味着不再是某人独自单干,而是要求小组成员各自负责一部分工程。比如你可能只是 负责通讯或者显示某一块,这个时候,就应该将自己的这一块程序写成一个模块,单独调试, 留出接口供其它模块调用。最后,小组成员都将自己负责的模块写完并调试无误后,由项目 组长进行综合调试,像这些场合就要求程序必须模块化。模块化的好处非常多,不仅仅是便 于分工,它还有助于程序的调试,有利于程序结构的划分,还能增加程序的可读性和可移植 性。 对于刚入门的读者来说,还没发现前面第三章程序的不完美之处,程序当然没有错的, 只是在移植、管理方面,存在一些不足,因为部分程一遍又一遍、一页又一页的再重复,鉴 于这些不足之处,从本书的开始阶段,笔者就计划将模块化编程列为一项艰巨而有持久的战 役,请读者做好准备,跟随笔者一起揭开这块神秘的面纱,一窥其真面目。 4.1 夯实基础——数值的换算以及逻辑运算 单片机的学习中,常常需要和数值、逻辑运算打交道,原因是单片机在某种程度上可以 归结到数字电路中,读者应该知道,数字电路中,数值的计算、存储和取值都是以“0”和 “1”的形式来体现。所以在真正开始单片机学习之前,掌握基本的数值运算和逻辑运算是 必不可少的。 4.1.1 各进制之间的换算关系 二进制、十进制、十六进制。八进制,不常用。敢不敢相信,大家看到电影、图片或听 到歌曲在电脑中都是用二进制存储的,同理,学习单片机时,在 12864 上所显示的图片也是 二进制存储的。因为电脑、单片机这些“大傻瓜”不认识别的,只认识“1 和 0”,所以得学 好二进制,乍一听,好像不是很难,1、0 小学生都认识的。 十进制数有 0~9,共 10 个,逢十进一;二进制数 0、1 共两个,逢二进一;十六进制数 有 0~9、外加 A~F(a~f),总共 16 个数,逢十六进一。二进制书写前需加 0b,十六进制需 加 0x。十六进制数是和四为一,就是 4 个二进制组成一个十六进制数,于是它的每一位有 0b0000~0b1111 共计 16 个值。这三个数之间对于关系见表 4-1 所示。 借此为大家推荐一本王玮编著的《感悟设计——电子设计的经验与哲理》一书,我甚是 喜欢,他里面写的好多东西,确实值得我们好好学习,虽然有些内容我还没涉及到,但这丝 毫不影响我对这本书的喜欢。这本书除了理论、经验,还有他发明的指算(二、十进制之间 的转换)。我就引用到这里,希望能和大家共勉。 一只手掌 5 个手指,假设我们规定拇指、食指、中指、无名指、小指分别代表 1、2、4、 8、16 这 5 个数(顺序倒过来或搅乱也可以,规定好就行),那么,在 0~31 以内的各个整数 都可以通过手指的屈伸来表示了。例如划拳(民间喝酒的一种方法)出的二,就是十进制数 5(1+4)。通常做的“OK 手势”表示的就是 28(4+8+16),如此等等。这么一说大家可能会 觉得没意思,但当大家用熟练了,就会觉得很好玩。 表 4-1 部分二进制、十进制、十六进制之间的对应关系 十进制 0 1 2 3 二进制 0b0000 0000 0b0000 0001 0b0000 0010 0b0000 0011 十六进制 0x00 0x01 0x02 0x03 飛天三號单片机实验板 ~ 3 ~ 电子工程师基地: www.ieeBase.net STC15 单片机实战指南(C 语言版) 微信号:xymbmcu 4 5 6 7 8 9 10 11 12 13 14 15 …… 255 0b0000 0100 0b0000 0101 0b0000 0110 0b0000 0111 0b0000 1000 0b0000 1001 0b0000 1010 0b0000 1011 0b0000 1100 0b0000 1101 0b0000 1110 0b0000 1111 …… 0b1111 1111 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F …… 0xFF 4.1.2 数字电路和 C 语言中的逻辑运算 二进制的逻辑运算,又称其为布尔运算。无论 C 语言中,还是数字电路中,逻辑运算不 可缺。在逻辑范畴中,只有“真”和“假”。先来目睹一下 C 语言中的逻辑运算,“0”为“假”, “非 0”为真,不要理解为只有 1 是“真”,2、-43、100 同样也是真。 (1)逻辑运算(是按整体运算),通常叫做逻辑运算符。 &&(and):逻辑与,只有同为真时结果才为真,近似于乘法。 ||(or):逻辑或,只有同为假时结果才为假,近似于加法。 !(not):逻辑非,条件为真,结果为假,近似于相反数。 (2)逻辑运算(按每个位来运算),通常叫做位运算符。 &:按位与,变量的每一位都参与(下同),例如:A = 0b0101 1010,B = 0b1010 1010, 则 A & B = 0b0000 1010。 |:按位或。则 A | B = 0b1111 1010。 ~:按位取反。则~A = 0b1010 0101。 ^: 按位异或,异或的意思是,如果运算双方的值不同(即相异),则结果为真,双方 值相同则结果为假。这样 A^B = 0b1111 0000。 数字电路的逻辑运算。读者以后看资料或数据手册时,经常会遇到一些逻辑运算符号, 笔者列举到这里,以便读者以后查阅。所有符合如表 4-2 所示。 表 4-2 数字逻辑运算符合 序号 运算名称 国际标准符合 国外流行符号 1 2 3 与门 或门 非门 飛天三號单片机实验板 ~ 4 ~ 电子工程师基地: www.ieeBase.net
更多简介内容

推荐帖子

单片机中去耦电容的作用是什么
单片机中去耦电容在电路中的应用 首先来看图 1,这是 USB 接口和供电电路。 图 1 USB 接口和供电电路       左边这张图,过了保险丝以后,接了一个 470uF 的电容 C16,右边这张图,经过开关后,接了一个 100uF 的电容 C19,并且并联了一个 0.1uF 的电容 C10。其中 C16 和 C19 起到的作用是一样的,C10 的作用和他们两个不一样,
火辣西米秀 【微控制器 MCU】
开关电源纹波,抑制或减少的5种方法
纹波,理论上和实际上都是一定存在的。通常抑制或减少它的做法有5种: 1、加大电感和输出电容滤波 根据开关电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。 同样,输出纹波与输出电容的关系:vripple=Imax/(Co×f)。 可以看出,加大输出电容值可以减小纹波。 通常的做法,对于输出电容,使用铝电解电容以
Aguilera 【模拟与混合信号】
ST MEMS创意大赛第5贴 -- 有限状态机学习(FSM)
本帖最后由 传媒学子 于 2020-5-17 22:43 编辑  ST MEMS创意大赛第5贴 -- 有限状态机学习(FSM)   有限状态机是LSM6DSOX的特色之一,而且这次ST公司确实很给力,给了很多教程和参考,为大家的学习省了不少力。如果大家是像我一样的新手,建议按照nmg管理员整理的ST官方指导,一步一步的进行学习。 网址在此: http://bbs.eeworld.
传媒学子 ST MEMS传感器创意设计大赛专区
蜂鸣片的逆向应用
  下面的这种蜂鸣片很普通吧?相信大家都见过用过。现在的问题就是——它能干什么?   蜂鸣片其实是压电陶瓷片,而压电陶瓷有压电效应: (1)正压电效应 压电晶体在外力作用下发生形变时,正、负电荷中心发生相对位移,在某些相对应的面上产生异号电荷,出现极化强度。这种没有电场作用,由形变产生极化的现象称为正压电效应。 (2)逆压电效应 当给晶体施加一电场时,不仅产生了极化,同
fish001 【微控制器 MCU】
TI 近期工业应用直播和研讨会视频汇总
全球工业科技创新正在兴起,无论是德国的"工业4.0"、美国的"先进制造业国家战略计划"、还是中国的"中国制造2025",均在以智能制造为方向,实现工业自动化。   小编在这里给大家整理了一些 TI 近期工业应用直播和研讨会回顾视频,包括工业机器人、智能楼宇、电机驱动器、智能水表,更多精彩的视频可以访问 http://training.eeworld.com.cn/TI/  
arui1999 大学堂专版
基于RFID技术应用的汽车衡称重系统
RFID技术概述 RFID技术,英文为Radio Frequency Identification,中文为无线射频识别,是可通过无线电信号识别特定目标并读写相关数据,而无需识别系统与特定目125k~134.2K)、高频(13.56Mhz)、超高频、微波(2.4-2.5Ghz)等射频技术。 RFID技术的基本工作原理:标签进入磁场后,接收阅读器发出的射频信号,凭借感应电流所获得的
fish001 RF/无线

评论

登录/注册

意见反馈

求资源

回顶部

datasheet推荐 换一换

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })