1、“.....阳艳,蒋礼,杨科灵,罗少轩嵌入式操作系统的分析及应用计算机技术与发展,王莺工业可编程序控制器的现状与发展趋势航天技术与民品,自的功能还是要用软件来实现,对单片机的内存进行分配,使之与的各存储区相对应。由于本系统下位机软件采用语言编程,只需声明组全局变量与各存储区的标识符相对应,并将其初始化即可,编译器为会自动为这些全局变量分配空间,大大减少了工作量。根据单片机内部存储方式的不同,可以将这些存储区的定义方式分为种可位寻址区区和特殊功能寄存器。可位寻址区标准单片机内部都有至少字节的空间可以以位为单位进行寻址,本系统所使用的单片机也不例外。除了通常的数据类型外,编译器支持位数据类型。在位定义中,允许定义存储类型,位变量都被放入个位段......”。
2、“.....编译器还允许以字节为单位的对象放入单片机内可位寻址区中,这样对象就能以位为单位进行寻址。这为定义存储区提供了很大的方便。以输入过程映像寄存器为例,其声明语句及注释如下定义个字节即个点的存储区,位于可位寻址区中存储器中的第个字节单元的第位,下类似这样就定义了输入过程映像存储区中的第个字节,在程序中就可以用这些全局变量来表示对应的功能存储区。中需要进行位寻址的存储区有,因此这三个存储区中的存储单元都要用同样的方法声明。区区指的是单片机内部的数据存储器区,主要指片内前字节的内部。这个区域的数据段只需要指令用个或两个周期来访问,是单片机内部存取速度最快的存储区域。中的变量存储区不需要进行位寻址,但是也需要对这个存储区的数据段进行比较快的存取......”。
3、“.....因此只需采用般的声明语句即可为存储区分配空间。于是存储区的可以用如下所示的代码来声明,它在使用时会自动在区分配空间定义字节的存储区但是这样声明有个问题,就是要求存储区不但可以按字节存取,还可以按字和双字存取。要按字或双字进行存取就要进行强制类型转换,比较繁琐而且容易出错。为了解决这个问题,可以采用语言中的联合来声明存储区。联合是可以在不同时刻保存不同类型和长度的对象的变量,编译器负责跟踪对象的长度和对齐要求。联合提供了种方式,以在单块存储区中管理不同类型的数据,而不需要在程序中嵌入任何同机器有关的信息。见下面的代码这样,就定义了可以在不同时间分别以字节字或双字进行存取的存储区......”。
4、“.....分别以字节字和双字为单位以字节为单位存取存储区以字为单位存取存储区以双字为单位存取存储区特殊功能寄存器特殊功能寄存器空间位于从地址开始的单片机内部中。这些寄存器包括控制寄存器配置寄存器和数据寄存器,提供了和所有片上外围设备的接口。的模拟量输入存储区和模拟量输出存储区的定义就可以利用单片机内部已有的特殊功能寄存器。通过配置,单片机片上的模块将输入的模拟量转换结果存放在寄存器和中。存放转换结果的高位,存放转换结果的低位。因此可以说,寄存器就是现成的存储区。于是下面的宏定义语句就可以当作存储区的定义将的低位乘以,再与相加,即得到个字的转换结果。其它几个通道的模拟输入映像寄存器都可以用同样的语句定义,但要注意在使用之前定要通过配置寄存器选择模拟量输入通道......”。
5、“.....会负责将写到模拟输出端口。因此可以将的高位写入,低位写入的高位写入,低位写入。在实现了以上这些功能存储区在单片机内部中的映射之后,要完成控制器的扫描就非常简单了。显示任务的显示由其控制器控制。在读写显示单元之前应先读状态寄存器,确认控制器当前状态,以便指令和数据被正确地接受。的状态字如下所示指令读写状态准备好忙数据读写状态准备好忙数据自动读状态准备好忙数据自动写状态准备好忙未用控制器运行检测可能性可能不能屏读拷贝出错状态出错正确闪烁状态检测正常显示关显示由于状态位作用不样,因此执行不同指令必须检测不同状态位。在单片机次读写指令和数据时,和要同时有效处于准备好状态。图形显示方式可以显示任何形状的图形......”。
6、“.....图形方式下,还提供对位的操作,即通过命令使液晶屏上任个点显示或不显示。在本设计中,要求实现如下显示任务在控制器刚开始时,显示控制器的模式选择界面,等待用户选择进入停止模式进行用户程序下载或者进入运行模式执行用户程序。若选择停止模式,则显示开始或停止用户程序下载的选择界面若选择运行模式,则显示各端口的状态。操作界面上要显示选择菜单,且根据键盘的动作更新菜单的显示当用户按下向上向下向左向右键时,显示的菜单也作相应移动。要实现这个功能,方法是对每个时刻的当前菜单用反色显示,在有键按下时,先取消当前菜单的反显,再根据按键信号将选中的菜单反显。看门狗任务清除单片机的特殊寄存器中的位可以禁止看门狗定时器功能,而对该位置则可以使用看门狗定时器。使用看门狗定时器后......”。
7、“.....即对中的位置,看门狗定时器将使系统复位或产生中断。看门狗定时器的控制寄存器如图所示。串口通信任务串口通信的方式选择接收和发送控制以及串口的状态标志均由专用寄存器控制和指示。串口通信任务等待触发信号,若被置位,读串口中的数据,然后发信号给任务,触发存储用户程序任务。任务代码如下等待信号清标志位读串口接收缓冲区中的数据读写外部任务本系统对外部的存取采用位寻址,采用汇编语言编程对位地址空间进行寻址,则可以直接写个地址寄存器来对外部进行读写。代码如下读外部,写外部汇编语言读写外部不受地址范围限制,且效率比较高。按键处理任务本系统设计的键盘比较简单,采用按键与单片机的输入端口对应的接线方式......”。
8、“.....输入为。因此只需要查询该端口的各位中哪些输入为,即可判断是哪个键被按下。按键处理任务的代码如下按键的键值按键处理任务的编号为与键盘相连的端口若切换到停止模式,则给串口通信任务发送信号若切换到运行模式,则给读用户程序任务发送信号每隔扫描,根据实际晶振频率及系统的参数值决定指令解释任务的实现在上位机软件中,根据编码规律对指令表进行了唯的编码并生成二进制文件。下位机在得到该指令表程序后,为了实现实际控制功能,应该对指令表程序进行解释执行。根据不同指令的不同意义,进行不同的操作,使指令表程序值是否等于预置值,如果相等,则定时器输出值置,如果不是,定时器输出值置。计数器指令的实现计数器指令的格式为若驱动计数器的元件状态产生了由到的跳变......”。
9、“.....计数操作数表示计数器的输出元件,其状态表示计数器的输出状态。操作数表示计数器的预置值。而计数值的当前值则是采用固定的变量来表示的。当解释程序遇到计数器指令时以为例,解释子程序需要完成如下操作根据第个操作数计算出当前计数器的编号和变量存储地址。将输入值堆栈的栈顶元素弹出该元素状态为计数器驱动元件的状态,判断该元素的状态是否为,如果是再判断该元件的变量的上个周期的状态是否为,如果是,则计数器当前值加。如果不是,则计数器当前值不变。判断计数器当前值是否等于预置值,如果相等则计数器元件状态置。否则置。程序跳转指令的实现在读取用户程序时用个程序指针来记录当前系统扫描用户程序所到达的位置。利用这个指针,程序才能正确地按顺序执行......”。
1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。
2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。
3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。