网站大量收购独家精品文档,联系QQ:2885784924

单片机技术及应用项目教程 课件 知识点6-层次化软件设计思想.ppt

单片机技术及应用项目教程 课件 知识点6-层次化软件设计思想.ppt

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

山东电子职业技术学院电子工程系单片机程序设计与应用课程组项目2:初识层次化软件设计思想——点亮你的LED

1初步认识LED2单片机控制LED原理3位寄存器DDRx和PORTx用法4C语言的位操作5C语言中的宏6层次化软件设计思想

6层次化软件设计思想

追求“可读性强、可代码复用、可多人协作和可跨CPU移植”是我们编写程序的终极目标一、层次化软件设计思想

图2-15计算机系统结构图

图2-13层次化软件设计思想

?图2-14层次化软件设计思想在AtmelStudio中的架构图2-13示出了在单片机上实现层次化软件设计思想的架构方式,软件上共分为6层,由下向上分别为:InternalPeripheralLayer(内部外设层)、MiddleLayer(中间层)、ExternalModuleLayer(外部模块层)、ProtocolLayer(协议层)、AbstractionLayer(映射层)和LogicLayer(逻辑层),在AtmelStudio中的架构如图2-14所示。

映射层就是原理图的直译二、映射层设计图2-16映射层文件HAL.h

(1)IO_PD_DIR:使用此功能宏定义PORTD引脚的方向,0为输入,1为输出。0b表示二进制,默认对应0表示PORTD下8个引脚的方向都为输入。如果我们仅希望控制LED2,则只需将PD2置成输出,可以这样写该功能宏:#defineIO_PD_DIR02)IO_PD_OUT:使用此功能宏定义PORTD输出引脚在上电时的初始状态,0表示上电时输出低电平,1表示上电时输出高电平,如果我们希望LED2在上电时是点亮状态,其它LED是熄灭状态,则应这样定义该功能宏:#defineIO_PD_OUT0b111110111、端口方向及上电初状态

2、LED灯的状态图2-10ATmega168PA引脚接口电路图图2-11LED模块电路图

点亮操作:#defineLED0_OPENCLRBIT(PORTD,LED0)熄灭操作:#defineLED0_SHUTSETBIT(PORTD,LED0) 上述工作完成后,我们可以仿照LED0完成LED1-LED7的代码。 接下来,我们还需完成对所有LED的整体操作,功能宏定义如下:点亮操作:#defineALL_LED_OPENPORTD=0x00熄灭操作:#defineALL_LED_SHUTPORTD=0xFF

3、映射层文件【程序2-9】#ifndefHAL_H_#defineHAL_H_?//引脚定义//PortB#defineIO_PB_DIR 0defineIO_PB_OUT 0 /////////////////////////////////////////////////////////////////////?//PortC#defineIO_PC_DIR 0defineIO_PC_OUT 0 /////////////////////////////////////////////////////////////////////?//PortD#defineIO_PD_DIR 0defineIO_PD_OUT 0////////////////////////////////////////////////////////////////////#defineLED0BIT0#defineLED1BIT1#defineLED2BIT2#defineLED3BIT3#defineLED4BIT4#defineLED5BIT5#defineLED6BIT6

#defineLED7BIT7?#defineLED0_OPENCLRBIT(PORTD,LED0)#defineLED0_SHUTSETBIT(PORTD,LED0)#defineLED1_OPENCLRBIT(PORTD,LED1)#defineLED1_SHUTSETBIT(PORTD,LED1)#defineLED2_OPENCLRBIT(PORTD,LED2)#defineLED2_SHUTSETBIT(PORTD,LED2)#defineLED3_OPENCLRBIT(PORTD,LED3)#defineLED3_SHUTSETBIT(PORTD,LED3)#de

您可能关注的文档

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档