AVR单片机程序设计

来源:本站
导读:目前正在解读《AVR单片机程序设计》的相关信息,《AVR单片机程序设计》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《AVR单片机程序设计》的详细说明。
简介:AVR单片机程序设计

AVR单片机程序设计

一、程序设计的方法1.模块化设计

模块化设计是将整个单片机程序分解成若干个功能相对独立的、较小的程序模块,对各程序模块分别进行编程和调试,最后将这些程序模块集成为实现特定功能的程序。

采用模块化设计,可以使得整个程序的线条清晰,模块可以为多个程序共享,程序调试比较方便。

2.最大限度地利用通用软件包、子程序库单片机应用技术是一项成熟技术,许多教材、技术手册都给出不少通用软件包和子程序库。这些是经过实践检验的。就像在进行电路设计时要用若干个IC构成自己的电路一样,我们在进行软件设计时,也要善于使用通用软件包和子程序库来构筑自己的软件系统。这样,就可以大大提高程序设计的效率,提高整个程序的可靠性。在调用通用软件包、子程序库时,要特别注意通用软件包和子程序的入口条件、出口条件、占用寄存器等。对于在其他程序中正在使用的寄存器等,应进行压栈保护。

在SL-AVR开发实验器的随机光盘中,配有大量的子程序,读者可以直接将之用于自己的应用程序中,初学者还可以通过阅读、运行这些程序学习AVR单片机程序编制的方法,3.逐步建立常用程序模块和子程序库

单片机的硬件电路是比较经典的。随着单片机系统真正的单片化,硬件电路也更加简化。但单片机程序设计却大多处于低水平、重复性劳动的状况。近些年,不少单片机界的有识之士,都在呼唤单片机的软件知识平台。尽管现阶段尚无突破性进展,但我们每个人在进行程序设计时,都应有意识地将具有通用性、共通性的程序独立出来,形成程序模块和子程序,以便在其他单片机应用程序中直接调用,逐步建立个人的常用程序模块和子程序库。二、AVR单片机的I/O空间定义及内部寄存器和位定义文件1.AVR单片机的I/O空间定义

在第二讲《AVR单片机的CPU和存储器》一文中,介绍了AVR单片机的数据存储器。其数据存储器的0020~005F是64个I/O寄存器空间,对应的I/O地址为00~3F。AVR单片机的型号不同,I/O寄存器的数量和地址也不同,但不超过64个。AT90S8515的I/O空间定义如附表所示。2.AVR单片机的内部寄存器和位定义文件

AVR单片机的内部寄存器(包括I/O寄存器和X、Y、Z寄存器),以及可以按位寻址的I/O寄存器位的位名,均须由内部寄存器和位定义文件进行定义,以便编程时使用。在定义文件中,寄存器名用I/O地址的十六进制地址表示,寄存器位名用0~7位表示。如寄存器SREG定义为:.EquSREG=3f,寄存器TCCR0的CS02位定义为:.EquCS02=2。

读者可以打开SL-AVR开发实验器随机光盘中的8515def.Inc文件,查看AT90S8515单片机的内部寄存器和位定义文件,也可以自己编写AVR单片机的内部寄存器和位定义文件。

注意:在AVR单片机程序的开头,必须对所用单片机的内部寄存器和位进行定义。ATMEL公司已将内部寄存器和位定义用××××def.Inc文件的形式提供给用户,使用时只需用指令.Include″××××def.Inc″调用便可。

在第八讲《AVR单片机开发工具的使用》和第十一讲《AVR单片机常用伪指令》中,已对伪指令include进行了讲述,这里不再重复。

总之,AVR单片机程序设计的基本方法与我们过去所学的其他单片机是相同的,程序的基本书写格式也是相同的。SL-AVR开发实验器提供了大量子程序,大家在学习和开发产品时,应尽量使用这些程序,达到事半功倍的效果。

在调用通用软件包、子程序库时,要特别注意通用软件包和子程序的入口条件、出口条件、占用寄存器等。对于在其他程序中正在使用的寄存器等,应进行压栈保护。

在SL-AVR开发实验器的随机光盘中,配有大量的子程序,读者可以直接将之用于自己的应用程序中,初学者还可以通过阅读、运行这些程序学习AVR单片机程序编制的方法,3.逐步建立常用程序模块和子程序库

单片机的硬件电路是比较经典的。随着单片机系统真正的单片化,硬件电路也更加简化。但单片机程序设计却大多处于低水平、重复性劳动的状况。近些年,不少单片机界的有识之士,都在呼唤单片机的软件知识平台。尽管现阶段尚无突破性进展,但我们每个人在进行程序设计时,都应有意识地将具有通用性、共通性的程序独立出来,形成程序模块和子程序,以便在其他单片机应用程序中直接调用,逐步建立个人的常用程序模块和子程序库。二、AVR单片机的I/O空间定义及内部寄存器和位定义文件1.AVR单片机的I/O空间定义

在第二讲《AVR单片机的CPU和存储器》一文中,介绍了AVR单片机的数据存储器。其数据存储器的0020~005F是64个I/O寄存器空间,对应的I/O地址为0

0~3F。AVR单片机的型号不同,I/O寄存器的数量和地址也不同,但不超过64个。AT90S8515的I/O空间定义如附表所示。2.AVR单片机的内部寄存器和位定义文件

AVR单片机的内部寄存器(包括I/O寄存器和X、Y、Z寄存器),以及可以按位寻址的I/O寄存器位的位名,均须由内部寄存器和位定义文件进行定义,以便编程时使用。在定义文件中,寄存器名用I/O地址的十六进制地址表示,寄存器位名用0~7位表示。如寄存器SREG定义为:.EquSREG=3f,寄存器TCCR0的CS02位定义为:.EquCS02=2。

读者可以打开SL-AVR开发实验器随机光盘中的8515def.Inc文件,查看AT90S8515单片机的内部寄存器和位定义文件,也可以自己编写AVR单片机的内部寄存器和位定义文件。

注意:在AVR单片机程序的开头,必须对所用单片机的内部寄存器和位进行定义。ATMEL公司已将内部寄存器和位定义用××××def.Inc文件的形式提供给用户,使用时只需用指令.Include″××××def.Inc″调用便可。

在第八讲《AVR单片机开发工具的使用》和第十一讲《AVR单片机常用伪指令》中,已对伪指令include进行了讲述,这里不再重复。

总之,AVR单片机程序设计的基本方法与我们过去所学的其他单片机是相同的,程序的基本书写格式也是相同的。SL-AVR开发实验器提供了大量子程序,大家在学习和开发产品时,应尽量使用这些程序,达到事半功倍的效果。

提醒:《AVR单片机程序设计》最后刷新时间 2024-03-14 01:07:31,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《AVR单片机程序设计》该内容的真实性请自行鉴别。