1、基本语法介绍

一个简单的AVR程序

#include

#include

void main()

{

PORTA = 0x0F; //给PA口赋值,让PA口低四位为1,高四位为0

while(1)

;

}本程序的作用是把PA口的值设为0x0F。

1、程序中以井号开头的语句#include 是包含特定的头文件,叫预处理指令,i0m16v表示使用的是mega16,macros.h包含了必须的avr操作命令。

2、C语言的程序是由函数构成的,如上面的那个void main(),前面的void表明函数没有返回值。每一个c程序里面里有且只有一个main()函数,系统启动后就从main()开始运行。

3、函数内部的内容以大括号“{”和"}"扩起来,每句语句用分号“;”结束,若分号前面没有内容,编译之后也无任何操作语句。

4、C程序中可以加入一些说明文字,单行以双斜扛“//”开始,如果是多行,就用"/*"开始,以“*/”结束,如 /*注释 */ 。

5、函数可以有参数,一律放在小括号内。

6、利用C语言可以轻松的对AVR的设备组件进行操作,如程序中的PORTA = 0x0F;

7、任何一个AVR C程序都必须是一个无限循环,否则程序会沿着程序存储区一直运行,直至溢出程序存储区,程序从头运行。

2、AVR C语言的基本字符、标识符和关键字

avr c语言和普通c语言一样,基本字符有阿拉伯数字0~9;大小写拉丁字母a~z和A~Z;一些选定的可打印字符,如"~!@#¥%^&*()_-+={}[],.;<>/?|\";空格符、换行符和制表符这三种空白符起到分割成分和编排格式的作用。

对系统对象命名,称为标识符。标识符由数字、字母、下划线组合的字符串序列构成,字母区分大小写。如下都是合法的表示符:

AVR_IO PORTA CSR IT0 temp1

注意:不能以数字开头的字符串做标识符。比如 1abc 是不合法的。

C语言的合法标识符有一部分被编译器保留作为特殊用途,这样的标识符称为关键字。C语言的关键字有:(以字母先后为序)

auto break case char const continue default do double else enum extern float for goto if int long register return short signed

sizeof statIC struct switch typedef union unsigned void volatile while

注意,原则上除关键字外,可以使用任何有效的标识符。但实际上,根据系统不同,有些特殊标识符具有特殊含义,不应被使用。在AVR里,一些端口的名称、寄存器的名称已经被系统定义,最好不要改变其定义,如PORTA DDRA TIMASK 等。

3、数据类型

C语言严格规定数据类型,AVR资源有限,如果数据类型选用不好,资源很快就会耗尽。如,尽量不要使用浮点类型的运算,1.2*1.2的浮点数运算至少要占用mega16的百分之十以上的空间。

选择数据类型时需要注意不要操作数据能表示的范围,比如要表示60000,就不能用char,必须用int。

整数类型的类型名前可加修饰符unsigned和signed,表示无符号数和有符号数,其中unsigned可以省略,默认表示无符号数,一般来说,尽量使用无符号数可以节约资源。

以下三种为整数类型:

1、整数类型:一般类型的整型 int,16位二进制编码,表示的数0~65536,及216。有符号类型,signed int 表示范围-32768~32767。

2、长整型类型:长整型(long int)类型的二进制编码是32位。有符号的长整型类型(long)表示范围-231~231-1;无符号的类型(unsigned long)的表示范围为0~232-1。

3、超长整数类型:超长整数类型(long long)的二进制编码是64位。有符号的长整型类型(long)表示范围-263~263-1;无符号的类型(unsigned long)的表示范围为0~264-1。

以下为实数类型(浮点数类型):

1、单精度浮点数类型:float,用32位二进制数表示。

2、双精度浮点数类型:long double,用64位二进制数表示。

字符类型和字符串

字符类型的类型名为char,目前最常用的是ASCII字符集,其中字符包扩所有的大小写字母,数字,常用字符等共计128割字符。扩展的ASCII字符集包括256个字符,字符类型占用一个字节。

一些特殊的字符串的表示方法:以反斜扛加特定字符。如 ’ \n ’ 回车符; ‘ \" ’ 双引号; ‘ \’ ’ 单引号字符; ‘ \\ ’ 反斜杠。

无符号的字符类型: char 表示范围 0~255。

有符号的字符类型: signed char表示范围-128~127。

avr单片机c语言大小比较,AVR单片机C语言入门知识相关推荐

  1. 单片机c语言小项目开发,单片机的一些开发技巧(一)

    很多朋友正在学习单片机开发技术,但开发中免不了要碰到这样.那样的问题,有些问题可能无碍大局,但有一些问题却直接影响到产品的成本.体积.性能.这里介绍笔者的几个技巧,希望对大家的工作有帮助. 一.C语言 ...

  2. 单片机c语言 i%3c%3c1,单片机C语言作业及上机习题及答案

    <单片机C语言作业及上机习题及答案>由会员分享,可在线阅读,更多相关<单片机C语言作业及上机习题及答案(37页珍藏版)>请在人人文库网上搜索. 1.第一次课熟悉winTC编译环 ...

  3. 51单片机c语言试题及答案,单片机C语言期末考试题..

    单片机C语言期末考试题..,单片机的c语言应用程序设计,单片机c语言编程,51单片机c语言程序100例,单片机c语言,单片机c语言编程思想,c语言开发单片机,c语言单片机程序,新概念51单片机c语言教 ...

  4. c语言时钟加秒表报告,51单片机秒表计时器课程设计报告(含C语言程序)-20210419061005.docx-原创力文档...

    XXXXXX学院 51单片机系统设计课程设计报告 题 目:秒表系统设计 专业.班级: 学生姓名: 学号: 指导教师: 分数: [摘要]本设计是一个秒表计时器,采用51单片机实现.电路包括以下儿部分:单 ...

  5. 从零开始学单片机c语言 pdf,从零开始学习单片机.pdf

    从零开始学习单片机从零开始学习单片机 单片机 DIY 设计 1. 手把手教你用 51 单片机 DIY 音乐频谱显示(成品图+电路图+源代码) /diagram/3972_4112/102030.htm ...

  6. 秒表系统的设计c语言程序,51单片机秒表计时器课程设计报告(含C语言程序).doc...

    51单片机秒表计时器课程设计报告(含C语言程序) XXXXXX学院 51单片机系统设计 课程设计报告 题 目: 秒表系统设计 专业.班级: 学生姓名: 学 号: 指导教师: 分 数 : [摘要]本设计 ...

  7. 五十九秒的秒表C语言程序,51单片机秒表计时器课程设计报告(含C语言程序)解读.doc...

    XXXXXX学院 51单片机系统设计 课程设计报告 题 目: 秒表系统设计 专业.班级: 学生姓名: 学 号: 指导教师: 分 数 : [摘要]本设计是一个秒表计时器,采用51单片机实现.电路包括以下 ...

  8. 秒表系统的设计c语言程序,51单片机秒表计时器课程设计报告(含C语言程序)详细分解.doc...

    XXXXXX学院 51单片机系统设计 课程设计报告 题 目: 秒表系统设计 专业.班级: 学生姓名: 学 号: 指导教师: 分 数 : [摘要]本设计是一个秒表计时器,采用51单片机实现.电路包括以下 ...

  9. LED亮5秒灭5秒C语言程序代码,从单片机基础到程序框架(连载)

    第十二节:变量的定义和赋值. 第十二节_pdf文件.pdf (105.69 KB, 下载次数: 490) 2016-4-3 10:37 上传 点击文件名下载附件 [12.1   学习C语言的建议和方法 ...

  10. 单片机c语言编程教学大纲,《单片机C语言编程》教学大纲

    <单片机C语言编程>教学大纲 课程代码:000002336 课程英文名称:Microcontroller C Programming Language 课程总学时:24 讲课:16 实验: ...

最新文章

  1. 孙立岩 python-basic: 用于学习python基础的课件(五六七八九十)
  2. 台式计算机不能有线上网,台式电脑怎么样不能有线就可以连接网络,赶紧看看...
  3. 关于leetcode第K个最大元素的几种解法
  4. 刚毕业就要求月薪10K?我觉得没毛病
  5. 报道称奈雪的茶通过港交所聆讯 回应:以公司经监管机构批准的公告为准
  6. jrtplib的编译方法
  7. SQLServer中批量插入数据方式的性能对比
  8. index.php p=,弃用p值:你准备好了吗?
  9. 欧拉汽车,卖“萌”真能行?
  10. 币图告诉你如何解决双花问题
  11. 查看spark版本linux,如何查看spark版本和scala版本
  12. 邮件发送软件-推广软件
  13. chatgpt智能问答微信小程序+后端源码+视频搭建教程
  14. Bootstarp:网站导航栏的编写设计
  15. 使用聊天机器人做客服工作是一种什么体验?
  16. 系统架构设计笔记(103)—— 标准化知识
  17. java object[][]_Java Object类
  18. 计算机科学导论(1):绪论
  19. 什么是 COSCon21珠海?
  20. 北京10大律师事务所年度最新排名

热门文章

  1. WiFi技术安全调研报告
  2. 怎么用python移动文件夹
  3. 谷歌浏览器有哪些好用的屏蔽广告插件?怎么屏蔽烦人的百度广告?
  4. linux查看网口位置命令,Linux下查看网卡信息及确定网卡位置
  5. Chrome浏览器安装Axure插件
  6. java代码混淆-ProGuard
  7. Axure _ 原型图
  8. 公司人事管理系统(C++)
  9. IntelliJ IDEA插件开发教程
  10. Python计算点到直线距离的两种方法