《嵌入式C编程:PIC单片机和C编程技术与应用》一1.13 练习

本节书摘来自华章出版社《嵌入式C编程:PIC单片机和C编程技术与应用》一书中的第1章,第1.13节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问“华章计算机”公众号查看

1.13 练习

目标:了解如何使用编译器和原型开发板。
工具:E3模块、USB连线、PC。
步骤/技术流程 笔记
1.?安装并运行编译器,设置硬件。有关问题请参照附录B。
2.?创建源文件。
 `javascript
File > New > Source

输入Ex1-1;IDE会自动为文件添加.c的扩展名。
3.?输入本章前面的例子并保存:

File > Save

4.?编译代码。
单击屏幕上方菜单栏中的“编译”,会出现编译下拉列表;再单击下拉列表中的编译图标,(期望)源程序将会编译成功。这时会出现输出窗口,显示编译器输出结果。如果没有出现错误(0 errors),就表示成功了,这也是我们期望的结果。
5.?用USB线将E3板子和PC连接起来。
当Windows系统检测到E3这个新硬件并提示安装驱动时,搜索目录将指向“c:\program files\PICC\USB Drivers”。在你的计算机上,“program files”的名字可能和这个不一样,酌情修改。
注意,E3板子是通过USB 连线供电的。
E3板子上已经预置了一个程序,方便用户通过USB将程序下载到板子上。
6.?在IDE的Compiler(编译)下拉列表中选择PROGRAM CHIP中的E3 BOOTLOAD。
7.?如果一切顺利,我们会看到E3板子上的绿色LED每秒钟闪烁一次。
此时会弹出一个编程窗口(串口监视器),稍后的练习会用到这个窗口,现在我们可以关掉它。
8.?修改程序,使LED每5s闪烁一次。
编译,下载,测试。    

目标:进一步熟悉工具的用法。
工具:E3模块、USB连线、PC。
步骤/技术流程    笔记
1.?了解出错处理,将源代码中的两个PIN_C6改成PIN_C66并重新编译。
编译器提示两个错误:无法识别PIN_C66。
双击其中一个错误消息,光标会移动到编译器探测到错误的位置。
更正错误并重新编译。
2.?删除main()函数定义中括号内的void并重新编译。
这次没有编译错误,但是有一个警告(warning)。
“警告”表示编译器可以处理当前的程序,但是怀疑其中有些错误。
这个例子中,编译器觉得你可能忘记给函数写参数了。加入void的作用是显式地告诉编译器该函数没有参数。
更正错误,重新编译。
3.?在VIEW> DATA SHEETS > Other PDF’s > E3 Schematic中查看板子的原理图,找出为什么我们使用PIN_C6来点亮绿色LED。
4.?修改程序使红色LED闪烁,并测试其是否工作。
5.?修改程序,使其能够判断LED点亮时引脚的状态处于低电平还是高电平。
6.?在编译下拉列表中单击C/ASM按钮,查看C和汇编的混合文件,也叫list文件,使用.LST做后缀名。
数一下程序中有几条汇编指令。
数一下每行C代码(不包括预编译指令、注释和空行)被翻译成几条汇编指令。有时这种统计数据可以用来判断编译器性能的好坏。
使用“语句”代替之前的“C代码行”重新计算一个语句转换成多少汇编指令。有人认为使用“平均每个语句有多少条汇编指令”更能表现编译器性能。
7.?修改程序,使LED每5s闪烁一次。
编译,下载,验证。    
时间: 2024-11-05 22:49:08

《嵌入式C编程:PIC单片机和C编程技术与应用》一1.13 练习的相关文章

《嵌入式C编程:PIC单片机和C编程技术与应用》一第3章预编译指令3.1 标准预编译指令

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第3章,第3.1节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 第3章 Embedded C Programming: Techniques and Applications of C and PIC MCUS 预编译指令 编译器对C程序的处理可以明确地分为两步.第一步由预编译器完成.以#开头的预编译指令可能会影响编译器设置或者进行

《嵌入式C编程:PIC单片机和C编程技术与应用》一1.8 时间

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第1章,第1.8节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 1.8 时间 在delay_ms中,ms表示毫秒(milliseconds).编程中常用的时间单位有: ns ?nanosecond(纳秒) ??0.000?000?001s μs ?microsecond(微秒) 0.000?001s ms millisecond(毫

《嵌入式C编程:PIC单片机和C编程技术与应用》一第1章C语言概述和程序结构1.1 C源代码

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第1章,第1.1节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 第1章 Embedded C Programming: Techniques and Applications of C and PIC MCUS C语言概述和程序结构 1.1 C源代码 下面是一段C语言源代码: 这段代码初看起来可能会觉得难以理解,但读完本书并完成书中

《嵌入式C编程:PIC单片机和C编程技术与应用》一1.4 C预编译指令

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第1章,第1.4节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 1.4 C预编译指令 预编译是C语言中一个非常有意思的特性.预处理使用工具(预处理器)在编译前先扫描一遍代码,并对代码做出相应的修改从而生成用来编译的代码.预编译指令由#开始,占用一整行.在第3章中将会详细介绍它.在上面的例子中,#include指令将文件(e3.h)的

《嵌入式C编程:PIC单片机和C编程技术与应用》一1.5 函数

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第1章,第1.5节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 1.5 函数 接下来,我们看到了一个函数定义"main".所有程序都需要有一个main()函数,也就是主函数.这是程序开始执行的地方.在本书中,当提到函数名时,我们都会在它的名字后面跟上(),表示这是个函数. 函数名前的void表示此函数的类型是vo

《嵌入式C编程:PIC单片机和C编程技术与应用》一3.6 测验

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第3章,第3.6节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 3.6 测验 1. 将下列代码放入一个函数,将会发生什么事情? (a)程序将会延时5s (b)变量x被赋值为5 (c)第2行出现语法错误 (d)第3行出现语法错误 (e)什么都不会发生 2. 在练习X3-6.c中,整个文件只使用了一个分号,显示了预编译器的强大功能.下列

《嵌入式C编程:PIC单片机和C编程技术与应用》一2.2 C常量语法

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第2章,第2.2节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 2.2 C常量语法 2.2.1 二进制 需要多位(bit)二进制数才能表示一个大于1的值,具体需要多少位,则取决于数字大小.一个8位的二进制数(一个字节)可以表示256个数字(0-255). 16位的二进制数可以表示从0到65?535的值.如果使用一个字节来传输信息,一

《嵌入式C编程:PIC单片机和C编程技术与应用》一1.6 声明

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第1章,第1.2节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 1.6 声明 "int i"声明了一个以标识符i作为变量名的数据类型.int表示该变量是一个整数.本例中,i只能在main()函数中使用.如果声明i的这一行放到函数之前(在函数外),那么i也可以在其他函数中使用.变量的使用范围称作变量作用域.作用域将

《嵌入式C编程:PIC单片机和C编程技术与应用》一1.7 语句和表达式

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第1章,第1.7节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 1.7 语句和表达式 在上面的例子中for那一行就是一个语句(statement).程序在运行时会执行这些语句.该语句包含3个表达式.表达式将在第5章介绍,语句将在第6章介绍.在for语句中: 在这个例子中,for语句的后面有4行语句放在一对大括号{}内,随着i从1增长

《嵌入式C编程:PIC单片机和C编程技术与应用》一2.8 测验

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第2章,第2.8节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 2.8 测验 存储下面的二进制数需要多少字节? 1001011001 (a)10 (b)1 (c)1.2 (d)2 (e)二进制数无法用字节存储 下列哪个选项可以用来表示一个十六进制数? (a)两个十进制数 (b)字节 (c)半字节 (d)一个八进制数 (e)三个二进制