收藏 分享(赏)

《趣味电子产品设计与制作》教案.doc

上传人:dzzj200808 文档编号:2703038 上传时间:2018-09-25 格式:DOC 页数:23 大小:1.30MB
下载 相关 举报
《趣味电子产品设计与制作》教案.doc_第1页
第1页 / 共23页
《趣味电子产品设计与制作》教案.doc_第2页
第2页 / 共23页
《趣味电子产品设计与制作》教案.doc_第3页
第3页 / 共23页
《趣味电子产品设计与制作》教案.doc_第4页
第4页 / 共23页
《趣味电子产品设计与制作》教案.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、教 案【首页】课程名称 趣味电子产品设计与制作课程编号授课专业 班级必修课 校级公共课( ) ;基础或专业基础课( ) ;实验课()课程类型选修课 限选课() ;任选课()授课方式 课堂讲授() ;实践课() 考核方式 考试() ;考查()课程教学总学时数 32 学 分 数 2学时分配 课堂讲授 16 学时; 实践课 16 学时教材名称 单片机的 C 语言应用程序设计(第 4 版) 作 者 马忠梅等 出版社及出版时间北京航空航天出版社2007指定参考书 基于 Proteus 的 8051 单片机实例教程 单片机 C 程序设计及应用实例基于 C 语言编程 MCS-51 单片机原理与应用Prote

2、l99 高级应用作 者 李学礼胡伟张培仁赵晶出版社及出版时间电子工业出版社2008.6人民邮电出版社2003清华大学出版社2003人民邮电出版社2000授课教师 明显诚 汪科 职 称 工程师 单 位 工程训练 中心授课时间注:表中( )选项请打“”教 案【理、工科】第一章 8051 单片机基础结构与内部资源一、教学目的和要求通过对单片机的基础特点、内部结构、外部硬件扩展、指令系统和简单的程序介绍,让同学们对 8051 单片机有个基础了解,同时由浅入深,进一步学习运用 8051 内部资源的 C 语言实现,包括中断、定时器/计数器以及串口等等。二、教学重点2.1 8051 的内部基础结构2.2 8

3、051 的内部资源使用三、教学难点3.1 8051 单片机独特的内部结构3.2 8051 中断、定时器/计数器和串行口的使用1.1 8051 的内部结构单片机是在一块硅片上集成了各种部件的微型计算机,这些部件包括中央处理器 CPU,数据存储器 RAM,程序存贮器 ROM,定时器/计数器和多种 IO 接口电路。8051 是 MCS-51 系列单片机的一个产品。MCS-51 系列单片机是 Intel 公司推出的通用型单片机。它的基本型产品是 8051、8031 和 8751.这三个产品只是片内程序存储器的制造工艺不同。8051 片内程序存储器为掩膜型,在制造芯片时已将应用程序固化进去了,使它具有某

4、种专用功能;8031 片内无 ROM,使用时需外接 ROM,8751 片内 ROM 是 EPROM 型的,固化的应用程序可以方便的改写。8051 单片机内部结构可划分为 CPU、存贮器、并行口、串行口、定时器/计数器、中断逻辑几部分。中央处理器核心单元,算术逻辑单元 ALU(算术运算,逻辑运算) ,操作数存于累加器 ACC 或暂存器中。控制器执行程序指令过程,程序存贮器中取指令,进入指令寄存器 IR,指令译码器 ID 译码,微操作信号用于控制单片机各部分动作。时钟包括内部时钟和外部时钟。内部时钟,晶振和微调电容组成的并联谐振电路构成稳定自激振荡器。外部时钟,引入外部脉冲信号。基本时序周期,微操

5、作信号在时间上有严格的先后次序。振荡周期是振荡源周期;时钟周期是振荡周期的 2 倍;机器周期包括 6 个时钟周期;而指令周期指完成一条指令所占用的全部时间。指令部件包括程序计数器 PC,指令寄存器 IR,指令译码器 ID,数据指针DPTR,16 位地址寄存器,寻址外部 RAM,也可寻址外部 ROM 中表格数据。8051 的存储器组织将程序存贮器和数据存贮器分开,并各自有寻址机构和寻址方式(哈佛型结构单片机) 。8051 单片机物理上有 4 个存贮空间,片内 ROM,片外 ROM,片内 RAM,片外RAM,可在片外扩展 RAM 和 ROM,各有 64Kb 的寻址范围。8051 有 256B 数据

6、存贮器 RAM,4KB 程序存贮器 ROM。4KB 的 ROM,片内 ROM 和片外 ROM 公用,地址为0000H-0FFFH,1000H-FFFFH 地址为片外 ROM 专用。控制信号 EA=1 时,先片内ROM(4KB) ,指令地址超过 0FFFH,自动转向片外 ROM。EA=0,只从片外 ROM 取指令。程序存储器 ROM 的某些单元仅供系统使用,0000H-0002H 所有执行程序的入口地址,0003H-002AH 均匀分为 5 段,5 个中断服务程序的入口,用户不应进入上述区域。RAM 在地址上和 ROM 重叠,8051 通过不同信号选通 ROM,RAM。从外部 ROM 取指令时用

7、选通信号 PSEN,而从外部 RAM 读写数据采用 RD 和 WR 选通。8051 内部 256B 的 RAM 字节,00H-7FH,真正的 RAM 区;80H-FFH,专门用于特殊功能寄存器(SFR) 。低 128 字节分三个区域(00H-7FH) ,00H-1FH 四组工作寄存器,每组占用 8 个 RAM 字节,记为 R0-R7,某一时刻,CPU 只能使用其中一组工作寄存器。20H-2FH 共 16 个字节,128 位,除做一般 RAM 读写外,还可对每一个字节的每一位进行操作。30H-7FH,80 个字节,一般的用户 RAM 区域。8051 单片机特殊功能寄存器中包含有堆栈指针 SP。8

8、051 单片机复位后,堆栈指针 SP 总是初始化到内部 RAM 的 07H 位置。8051 堆栈属于向上生长型,数据压入堆栈,SP 内容自动加 1 作为本次进栈的地址指针,然后存信息。8051 并行接口 P0-P3,P0 口采用总线复用技术,P2 口作地址的高 8 位,P1口只作 IO 口,P0,P2,P3 有第二功能。8051 的内部资源包括串行口,定时器/计数器,中断。8051 的工作方式包括复位方式,程序执行方式,单步执行方式,低功耗操作方式,EPROM 编程和校验方式。8051 的系统扩展主要包括外部程序存储器的扩展和数据存储器的扩展。8051 的寻址方式,指令中给出的地址寻找真实操作

9、数地址的方式。8051 包括 7 种寻址方式,寄存器寻址。直接寻址、寄存器间接寻址、立即寻址、变址寻址、相对寻址和位寻址。8051 指令系统包括数据传输指令、转移指令、算术运算指令和逻辑运算指令等。1.2 8051 的内部资源一、中断8051 有 5 个中断源,有两个中断优先级,每个中断优先级可以编程控制,中断允许受到 CPU 开中断和中断源开中断的两级控制。5 个中断源包括:外部中断请求 0、外部中断请求 1、片内定时器/计数器0 溢出中断请求、片内定时器/计数器溢出中断请求 1、片内串口发送/接收中断请求。为了了解每个中断源的是否产生了中断,中断系统对应设置多个中断请求触发器实现记忆。这些

10、触发器包括定时器/计数器控制寄存器 TCON,串口控制寄存器 SCON,中断优先级寄存器 IP,中断允许寄存器 IE。中断响应,8051 单片机的每个机器周期采样各中断源的中断请求标志位,如果没有下述阻止条件:1. CPU 正在处理同级或更高级的中断;2. 现行机器周期不是所执行指令的最后一个机器周期;3. 正在执行的是 RETI 或是访问 IE 或 IP 的指令。将在下一个机器周期响应被激活了的最高级中断请求。CPU 在中断响应后完成如下操作:1. 硬件清除相应的中断请求标志;2. 执行一条硬件子程序,保护断点,并转向中断服务程序入口;3. 结束中断时执行 RETI 指令,恢复断点,返回主函

11、数。同一优先级设置时,优先级由高至低的顺序是:INT0-T/C0-INT1-T/C1-Serial。寄存器组切换,当一个特定的任务正在执行,可能有更紧急的任务需要CPU 处理,在一个具有优先级的系统里,CPU 不是等待第一个任务完成,而是假定前一个任务已经完成,立即处理新任务。若程序流程立即转向新任务,新任务使用的各寄存器破坏了第一个任务使用的中间信息。当第一个任务重新执行时,寄存器的值可引起错误发生,解决的方法每次发生任务变化时执行一些指令,被称为上下文切换。高优先级的中断可以中断正在处理的低优先级程序,因而必须注意寄存器组。最好给每个优先级程序分配不同的寄存器组。因此,中断服务函数的完整语

12、法如下:返回值 函数名(参数)模式重入interrupt n using n当调用中断函数时,SFR 中的 ACC、B、DPH、DPL、PSW 入栈。二、定时器/计数器(T/C)8051 系列单片机至少有两个 16 位内部定时器/计数器,8052 有三个定时器/计数器,两个基本定时器/计数器是 T/C0 和 T/C1。它们既可以编程为定时器使用,也可以编程为计数器使用。若做定时器用,计数内部晶振驱动时钟;若做计数器使用,计数输入管脚的脉冲信号。定时器实际上也是工作在计数方式下,只不过对固定脉冲计数,由计数值可计算出时间,有定时功能。T/C 作定时器用时,对振荡源 12 分频的脉冲计数,每个机器

13、周期计数值加1,1/12fosc=计数率,每 2us 计数值加 1。T/C 作计数器用时,计数脉冲来自外部脉冲输入管脚 T0、T1,当 T0/T1 脚上出现负跳变时,计数值加 1,识别管脚上的负跳变需要 2 个机器周期,24 个振荡周期,可计数最高外部脉冲频率为 1/24fosc。高于此计数率,计数出错。与 T/C 有关的特殊功能寄存器包括计数寄存器 TH 和 TL,控制寄存器TCON,方式控制寄存器 TMOD,定时器/计数器 2 控制寄存器(T/C2) 。定时器/计数器的工作方式如下:1. 方式 0,为 13 位 T/C,由 TH 提供高 8 位,TL 提供低 5 位的计数器,满计数值为 2

14、 ,但启动前可以预置计数初值;132. 方式 1,方式 1 与方式 0 基本相同,唯一区别在于计数寄存器的位数是 16 位,由 TH 和 TL 寄存器各提供 8 位,满计数值为 2 ;163. 方式 2,是 8 位可自动重装载的 T/C,满计数值为 2 。84. 方式 3,只适用于 T/C0,当 T/C0 工作在方式 3 时,TH0 和 TL0 成为两个独立的 8 位计数器。只有将 T/C1 用作串口的波特率发生器时,T/C0 才能工作在方式 3,相当于增加了一个定时器。5. T/C2 的工作方式,T/C2 包含一个 16 位重装载方式,计数溢出后,自动在瞬间重装载。T/C2 还有捕获方式,它

15、把瞬时计数值传到另外的 CPU 可读取的寄存器对。定时器/计数器的初始化,包括编程 TMOD,置初值 TH 和 TL,编辑 TE,启动 T/C。计数初值计算,定时器工作方式下:T/C 对机器周期脉冲进行计数,根据晶振频率算出机器周期,一个机器周期为 12/fosc。那么自然可算出需要的计数初值。计数器工作方式下,由于计数器向上计数,所以可置负数。三、串行口8051 单片机片上有 UART(通用异步接收/发送)用于串行通信,发送时数据由 TXD 端送出,接收时数据由 RXD 端输入。有两个缓冲器 SBUF,一个作发送缓冲器,另一个作接收缓冲器。它是可编程的全双工的串行口。短距离的机间通信可使用

16、UART 的 TTL 电平,使用驱动芯片可接成 RS232C 和通用微机进行通信。波特率时钟必须从内部定时器 1 或定时器 2 获得。与串行口有关的 SFR 包括串口控制寄存器 SCON 和电源控制寄存器 PCON。串行口的工作方式包括:1. 方式 0,为移位寄存器输入/输出方式,串行数据通过 RXD 输入输出,TXD 则用于输出移位时钟脉冲;2. 方式 1,是 10 位异步通信方式,1 位起始位(0) ,8 位数据位和 1位停止位(1) ,其中的起始位和停止位是在发送时自动插入;3. 方式 2 和方式 3,都是 11 位异步接收/发送方式,不同在于波特率不同。串行口的初始化包括,定时器 1

17、工作方式,T/C1 置初值,T/C1 启动,串行口控制 SCON,开 CPU 中断和源中断。第二章 8051 的 C 语言编程一、教学目的和要求要求学生通过本章学习,了解 8051 的编程语言,掌握 C51 的数据与运算、流程控制语句、构造数据类型、函数以及模块化程序设计。二、教学重点2.1 8051 编程语言和 C51 程序结构2.2 C51 的数据以及运算2.3 C51 的构造数据类型2.4 函数的使用和模块化程序设计三、教学难点3.1 C51 的程序结构和相关的编写规则2.1 C51 数据与运算一、数据与数据类型数据,具有一定格式的数字或数值叫做数据。数据类型,数据的不同格式叫做数据类型

18、。数据结构,数据按一定的数据类型进行的排列、组合、架构称为数据类型。数据类型分为基本类型、构造类型、指针类型和空类型。基本类型分为位型、字符型、整型、长整型、浮点型和精度浮点型。构造类型分为数组类型、结构体类型、共用体和枚举。二、C51 运算符、表达式以及规则常量,在程序运行的过程中,其值不能改变的量。与变量一样,常量也有不同的数据类型。变量,在程序运行过程中,其值可以改变的量。一变量主要由两部分组成,一是变量名,一是变量值。每一个变量都有一个变量名,在内存中占据一定的存储空间,并在该内存单元存放该变量的值。在程序编制中使用大量不必要的变量类型,会导致 C 编译器相应的增加所调用的库函数的数量

19、,以处理大量增加的变量类型。最终会使程序变得过于庞大,运行速度减慢,甚至会在连接时,出现因程序过大装不进代码区的情况。通常使用的数据变量包括位变量、字符变量、整型变量、长整型变量、浮点型变量。地址为 00H-7FH 的低 128 字节片内 RAM 区被划分为 3 个区域。通用寄存器区,可位寻址区,用户 RAM 区。通用寄存器区被划分为 4 组寄存器,0 组(00H-07H) ,1 组(08H-0FH) ,2 组(10H-17H) ,3 组(18H-1FH) ;每组含 8 个通用寄存器 R0-R7,共 32 个通用寄存器。寻址采用寄存器名寻址;字节地址寻址。当用寄存器名来寻址时,程序状态字中的

20、PSW 的 RS1 和 RS0 两位的值来决定寄存器组。RS1(PSW.4) RS0(PSW.3)3 组 1 12 组 1 01 组 0 10 组 0 0可位寻址区包括 20H-2FH;用户 RAM 区 30H-7FH;编译器会通过将变量、常量定义为不同的存贮类型,将它们定位在不同的存贮区中。data/bdata,定义常量和变量时,编译器会将它们定义在片内 RAM 区,片内 RAM 区存放临时性传递变量或使用频率较高的变量。Code 存贮数据类型时,编译器将其定位在 ROM 或 EPROM 中,这里存放指令代码或其它非易变信息。如果定义数据和变量时缺省存贮类型标识符,编译器会自动选择默认的存贮

21、类型,有 SMALL、COMPACT 和 LARGE 指令限定。8051 单片机片内有 21 个特殊功能寄存器(SFR) ,它们分散在片内 RAM 区的高128 字节中,地址 80H-0FFH,对 SFR 的操作,只能用直接寻址方式。C51 与标 C 不同之处之一在于引入关键字“sfr”Sfr SCON=0x98;Sfr16 T2=0xcc;需经常单独访问 SFR 中的位时,使用关键字“sbit” 。8051 单片机芯片内带有 4 个 8 位的并行口,共 32 根 I/O 口线。每个口主要由 4 部分组成:端口锁存器,即 SFR 中的 P0 口-P3 口;输入缓冲器;输出缓冲器;引致芯片外的端

22、口引脚。其中 P1-P3 口为准双向口,P0 口为双向 3 态口。8051 单片机芯片引脚中没有专用的地址总线和数据总线,向外扩展存贮器和接口时,由 P2 口输出地址总线的高 8 位(A15-A8) 。由 P0 口输出地址总线的低 8 位(A7-A0) ;同时对 P0 口采用总线复用技术,P0 口又兼作 8 位双向数据数据总线 D7-D0,即由 P0 分时输出低 8 位地址或输入输出 8 位数据。在不做总线扩展时,P0 口和 P2 口可以作为普通的 IO 口使用。除 8051 芯片上的 4 个 I/O 口以外,还可以在片外扩展硬件 I/O 口。8051没有专用的 I/O 指令,其口地址与数据存

23、贮器地址是统一编址的,即把一个口当作数据存贮器中的一个单元来看待。8051 的内部口是可以位寻址的,而大部分外部口是字节寻址的。在给口指定硬件扩展电路时,可以在内部口中设置 I/O 控制线和信号线,而将外部口定义为字节宽度 I/O 口,这样在编程时可大大简化寻址,并避免使用许多逻辑屏蔽位。在使用 C51 进行编程时,8051 片内 I/O 口与片外扩展的 I/O 口可以统一在头文件中定义,也可在程序中定义。对于片外扩展 I/O 口,根据硬件译码地址,将其视为片外数据存贮器的一个单元,使用“#define”语句进行定义。位变量的 C51 定义的语法和语义。函数课包含类型为“bit”的参数,也可将

24、其作为返回值。位变量不能定义为一个指针,不存在位数组,在位定义中允许定义存贮类型,位变量都被放入一位段中。但存贮类型被限制为 data 或idata。可位寻址对象指可以字节或位寻址的对象,该对象应位于 8051 片内可位寻址的 RAM 区。C51 算术运算符包括+,-,/,。乘除,求余运算符优先级大于加减。可以用强制类型转换运算符改变运算优先级。C51 关系运算符包括,=,=,!=,前 4 个优先级相同大于后 2 个。关系运算符低于算术运算符,高于赋值运算符。C51 逻辑运算符包括二维数组的定义方式: 类型说明符,数组名常量表达式 1常量表达式 2存取方式,顺序,按行存取,先存取第一行,依次下

25、来。字符数组的存储两种方式:一种方式例如:char a10=B,E,I , , J,I,N,G,O;另一种方式例如:char a10=“BEI JING”;C 编译器会自动在字符末尾加上结束符O (NULL) ,因此,字符数组的元素数目一定要比字符多一个。二维字符数组,第一下标是字符串个数,第二个下标是每个字符串长度。如,uchar code msg17= ;第二个下标个数必须指定。二、指针指针是 C 语言中的一个重要概念,也是 C 语言的重要特色之一。C 语言区别于其他高级设计语言的主要特点就是它在处理指针时所表现出的能力和灵活性。使用指针可以有效地表示复杂的数据结构,有效而方便的使用数组;

26、动态的分配存贮器,直接处理内存地址,在调用函数时还能输入或返回多于 1 个的变量值。使用指针可以使程序简洁、紧凑、高效。为了了解指针的基本概念,必须了解数据在内存中是如何存贮和读取的。一旦程序中定义了一个变量,C 编译器在编译时就给这个变量在内存中分配相应的内存空间。通常 C 语言系统对一个整型变量分配两个字节的内存空间单元,对一个字符型变量分配一个字节内存单元,一个浮点型变量分配 4 个字节内存单元。对于变量需要区分变量名和变量值的概念。前者是一个数据的符号,后者是一个数据的内容。对于内存单元区分两个概念,一个是内存单元地址,一个是内存单元内容。前者是内存对该单元的编号,它表示着该单元在整个

27、内存中的位置。后者指在该内存单元中存放着的数据。在变量和内存单元的对应关系中,变量的变量名与内存单元的地址相对应,变量的变量值与内存单元的内容相对应。内存中变量名 a,b,c 是不存在的,对于变量值的存取通过地址进行。两种访问方式,直接访问和间接访问。直接访问找地址,取变量值。间接访问,找存放变量 a 的地址的内存单元的地址。取出变量 a 的地址,然后从找到的 a 的地址中再取数据变量值。对于指针弄清两个概念,变量的指针和指向变量的指针变量(指针变量) 。变量的指针就是变量的地址,指向变量的指针变量,一个变量专门用来存放另一个变量的地址。指针变量的定义:类型识别符 *指针变量名例如 int *

28、ap; float *pointer指针变量的赋值,指针变量的引用是通过取地址运算符 *ap=a; *int *app; app=app=a(数组名 a 可以代表数组 a10的首地址)。合起来定义:int *app=int *app=a;当定义完后,app=int day;int year;定义一个结构的变量的方法有三种:1. 先定义结构的类型,再定义该结构的变量名struct dateint month;int day;int year; ;date date1,date2;/定义结构的变量名/2. 在定义结构类型的同时定义该结构的变量struct dateint monthint day;

29、int year;date1,date2;3. 直接定义结构类型变量struct int year;int month;int day;date1,date2,date n;结构类型变量的引用,对于结构类型变量的引用遵守如下规则:结构不能作为一个整体参加赋值、存取和运算,也不能整体的作为函数的参数,或函数的返回值。对结构所执行的操作,只能用int day;int year;struct date date110;指向结构类型数据的指针,一个指向结构类型数据的指针,就是该数据在内存中的首地址。我们也可以设一个指针变量,把它指向一个结构数组,此时该指针变量的值就是结构数组的起始地址。指向结构体变量

30、的指针变量的一般形式为:struct 结构类型名 *指针变量名;或struct 结构成员说明*指针变量名;指向结构变量的指针变量的一个实际的应用例子就是对信息进行传输,一个任务使用“传送一条信息”的方法与另一个任务进行通信。这个传送操作包括传送信息结构变量的指针变量,这个指针变量是向接收任务传递的信息或指针。指向结构数组的指针变量的一般形式:struct 结构数组名 *结构数组指针变量名;或:struct 结构成员说明*结构数组指针变量名 ;共用体和枚举在这不做重点讲解。2.4 函数一、函数的调用函数调用的一般形式为:函数名(实际参数列表) ;对于有参数函数,若包含多个实际参数,应将各参数之间

31、用逗号分隔开。主调用函数的数目与被调用函数的形式参数的数目应该相等。实参和形参按照实际顺序一一对应传递数据。如果调用的是无参数函数,则实际参数表可以省略,但函数名后面必须有一对空括号。函数调用的方式有以下三种:1函数调用语句,即把被调用函数名作为主调用函数中的一个语句。此时并不要求被调用函数返回结构数值,只要求函数完成某种操作。2函数结果作为表达式的一个运算对象,此时被调用函数以一个运算对象的身份出现在一个表达式中,就要求被调用函数带有 return 语句,以便返回一个明确的数值参加表达式的运算。3. 函数参数。即被调用函数作为另一个函数的实际参数。对被调用函数的说明:1. 被调用函数必须是已

32、经存在的函数(库函数或用户自定义函数)2. 如果函数中使用了库函数,或不在同一个文件中的另外自定义函数,则应该在程序的开头处用#include 进行包含语句,将所需要的函数信息包含到程序中来。3. 如果程序中使用了自定义函数,则该函数与调用函数同在一个文件里面,则应根据主调用函数和被调用函数在文件中的位置,决定是否对被调用函数作出说明。用函数指针变量调用函数,一个函数在编译时,C 编译器会给它分配一个入口地址。这个入口地址被称为函数的指针。我们可用一个指针变量指向函数,然后通过该指针变量调用函数。例如:int (*p)( );函数指针变量定义int factorial(n)p=factoria

33、l /函数指针变量指向函数的入口地址/使用时直接用指针变量调用函数即可:C=factorial(j);C=(*p)(j);如果一个函数指针变量不对他进行赋值,是不能固定指向某个函数的,它是专门用来存放函数的入口地址的。给函数指针变量赋值时,只需给出函数名,不必给出参数。二、数组、指针作为函数的参数当用数组名作为函数的参数时,应该在调用函数和被调用函数中分别定义数组。只有这样,作为调用函数的实际参数数组全部元素,才能顺利地传递到被调用函数的形式参数数组中。实参数组和形参数组的类型应该一致,否则导致结果出错。实参和形参的大小可以一致也可以不一致,形参数组不应大于实参数组。用指向函数的指针变量作为函

34、数的参数。函数指针变量常用途之一就是把指针作为参数传递给其他函数。例如:主函数:main()sub(f1,f2);子函数:sub(x1,x2)int (*x1)( ), (*x2)( );a=(*x1)(i);b=(*x2)(i,j);形参被定义为指向函数的指针变量。用指向结构的指针变量作为函数的参数。用指向结构变量的指针变量作为实际参数,将结构变量的地址传递给被调用函数的形式参数。例如:struct record;void show(p)struct record *pmain()struct record note;show (第三章 EDA 软件一、教学目的和要求通过本章节的讲解要求学生

35、掌握电子产品设计研发所必备的软件。具体包括 KEIL 编程编译调试软件、Proteus 电路仿真设计软件、PROTEL99SE 印制电路板设计软件等。二、教学重点2.1 KEIL 编程编译调试软件学习2.2 PROTEUS 电路仿真设计软件学习2.3 PROTEL99SE 印制电路板设计软件学习三、教学难点3.1 如何将 KEIL 与 PROTEUS 结合搭建仿真平台3.1 KEIL uVision3 编程、编译、调试软件KEIL uVision3 是德国 KEIL Software 公司针对 51 系列单片机推出的基于32 位 windows 环境,高效率的 C 语言开发平台。它是一个功能强

36、大的单片机集成开发环境,主要包括:C51 交叉编译器、A51 宏汇编器、BL51 连接/重定位器、LIB51 库管理器、OH51 Intel HEX 格式文件转换器、RTX-51 实时操作系统以及单片机软件仿真器 Dscope51。uV3 将项目管理、源代码编辑、程序调试等集成到了一个功能强大的 windows32 平台中。其 C 编译工具在产生代码的准确性和效率方面达到了较高的水平,对 C 语言的编译支持几乎达到了完美的程度,当然它也同样支持 A51 宏汇编。uV3 内嵌多种灵活的控制选项,作为大项目的开发尤其理想。我们将通过上机实践来讲授 KEIL 软件的使用,如何在编辑器模块里面建立项目

37、,编写、编译、调试应用程序,同时会结合 PROTEUS 仿真软件,搭建仿真平台,再不接触到任何硬件的前提下完成电路原理图的仿真,检验编写程序的效率和可行性。3.2 基于 8051 的 C 语言编程的 Proteus 仿真软件一、Proteus 概述Proteus 是一款集单片机仿真和 SPICE 分析于一身的 EDA 仿真软件,于1989 年由英国 Labcenter Electronics Ltd 研发成功。除具备和其他 EDA 工具一样的原理图设计、PCB 自动生成及电路仿真的功能外,最大特点是 Proteus VSM 实现了混合模式的 SPICE 电路仿真,他将虚拟仪器、高级图标仿真、微

38、处理器软仿真器、第三方的编译器和调试器等有机结合起来,实现了在硬件物理模型搭建成功之前,即可在计算机上完成原理图设计、电路分析与仿真、处理器代码调试及实时仿真、系统测试、以及功能验证。二、KEIL 与 Proteus 结合搭建仿真平台KEIL 本身带有调试、软件仿真,但并没有跟硬件结合起来,因此,即使软件调试运行的再好,也没办法跟验证是否适合于硬件,因此将 KEIL 软件与Proteus 仿真软件结合,搭建仿真平台,通过绘制硬件原理图,调用实际的仿真工具,通过在 KEIL 中对程序的调试,直接就可以输出测试在硬件原理图中的运行效果,观测输出结果的正确与否来判断我们编写的应用程序的可行性和硬件电

39、路的可行性,做到完全未接触到物理硬件器件时就已经完成了仿真调试工作。为后续搭建硬件平台,测试硬件电路打下良好的基础。在调试过程中我们会讲解具体的仿真器件的使用,调试方法和步骤,让同学们做到有的放矢,轻松自如的学习、实践和操作这两款软件。3.3 PROTEL99SE 印制电路板设计软件印制电路板为硬件电路的实现搭建了一个良好的平台,因此一款印制电路板设计的好坏直接关系到我们是否能实现硬件原理图的功能。以下是整个印制电路板的设计流程。我们的任务就是让同学们一天时间学会 PROTEL99SE 专业级的原理图绘制和印制板设计,做到游刃有余,轻松自如。第一课:元件库制作1. 创建相关工作目录;2. 下载

40、安装软件;3. 制作 SCH 元件库;4. 制作 PCB 元件库。第二课:原理图和 PCB 制作1. 设计原理图的准备工作;2. 添加元件库;3. 页面设置,图纸设置;4. 设计原理图(层次原理图设计)5. 自动编号; 6. DRC 功能; 7. 全局更改功能添加封装; 8. 输出原件清单; 9. PCB 设计准备工作;10.规划版框; 11.设置安装孔; 12.导入网络表; 13.原理图交互布局;14.布线规则设置;15.自动布线;16.手工布线;17.布线推挤;18.添加文字;19.PCB 铺铜;20.PCB DRC;第三课:相关经验介绍1. 如何把大的 IC 在 PROTEL99SE 中

41、分开做;2. 如何在 Protel99SE PCB 中新增加一个元件;3. 如何在 PROTEL99SE PCB 文件中快速提取封装;4. PROTEL 如何打开 ORCAD 原理图文件;5. AD8 如何使用 99SE 的库;6. 四层板和多层板的设计方法;7. PROTEL99SE 输出 CAM 的方法;8. 英文版 99SE 如何加汉字;9. PROTEL 另外一种铺铜的方法;10. PROTEL99SE 如何为没有网络的 PCB 添加网络;11. 在 PCB 中加入图片;12. 如何在 PCB 中制作出方孔;13. AD6.9 中如何使用 PROTEL99SE 的原件库;第四章 趣味电

42、子产品设计与制作一、教学目的和要求要求学生在掌握上述已有教学内容的基础上,实际动手设计制作 2、3 款小型电子产品。做到独立设计项目书编制、硬件器件选型、电路原理图绘制、印制电路板设计制作、程序编制、软件仿真、搭载焊接硬件电路、调试实现其功能。二、教学重点2.1 原理图的论证实现、硬件器件的选型2.2 运用设计软件进行原理图绘制、PCB 印制板设计、电路仿真等三、教学难点3.1 如何将整个设计项目从头到尾设计制作完成,培养具备整体项目设计思维和能力。4.1 实作电子产品 1电子时钟软硬件设计1、电子时钟硬件电路设计任何电子产品设计都无外乎从硬件和软件两方面来考虑。两者相互之间是有机配合,当两者

43、配合良好时就是产品设计成功时。硬件设计综合考虑的因素较多,按照项目设计研发的要求,应该首先根据市场需求初步设计电子时钟产品应该具备的基础功能;其次完善项目设计书;再次考虑成本、效率、和可行性问题来对硬件器件进行选型;然后设计硬件电路,通过绘制硬件电路图来实现;再未搭建物理硬件之前进行硬件电路的仿真(需结合后续编写的控制程序共同完成) ;最后设计印制电路板作为硬件电路搭建的平台。本次电子时钟产品设计的硬件电路如图 1 所示。图 1 电子时钟硬件电路图2、电子时钟软件设计控制程序的编写无疑是对一个人综合逻辑思维能力的一次考验,需具备良好的数学逻辑思维能力,良好的程序语言编写基础,掌握一定的编写技巧

44、。首先是根据电子钟实现的功能和已经做了的硬件元器件选型进行项目任务书编制;其次根据任务书绘制程序流程框图;再次根据程序流程框图的定义进行 C 应用程序的编制;然后调试应用程序,并借助仿真软件一起联调,最后在无任何错误的情况下搭载硬件电路,焊接元器件,烧写下载应用程序,调试实现其功能。电子时钟软件设计的程序流程框图如图 2 所示。图 2 程序流程框图4.2 实作电子产品 2数字温度计软硬件设计1、数字温度计硬件电路设计用一片 DS18B20 构成测温系统,测量的温度精度达到 0.1 度,测量的温度的范围在20 度到50 度之间,用 4 位数码管显示出来。具体的硬件电路图如图 3 所示。图 3 数

45、字温度计硬件电路图DS18B20 数字温度计是 DALLAS 公司生产的 1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计。DS18B20 产品的特点(1) 、只要求一个 I/O 口即可实现通信。 (2) 、在 DS18B20 中的每个器件上都有独一无二的序列号。 (3) 、实际应用中不需要外部任何元器件即可实现测温。 (4) 、测量温度范围在55。C 到125。C 之间。 (5) 、数字温度计的分辨率用户可以从9 位到 12 位选择。 (6) 、内部有温度上、下限告警设置。DS18B20 详细引脚功能描述

46、 1 GND 地信号;2 DQ 数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;3 VDD 可选择的 VDD 引脚。当工作于寄生电源时,此引脚必须接地。DS18B20 的使用方法。由于 DS18B20 采用的是 1Wire 总线协议方式,即在一根数据线实现数据的双向传输,而对 AT89S51 单片机来说,我们必须采用软件的方法来模拟单总线的协议时序来完成对 DS18B20 芯片的访问。由于 DS18B20 是在一根 I/O 线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20 有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几

47、种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。2、数字温度计软件设计控制程序的编写首先是根据数字温度计实现的功能和已经做了的硬件元器件选型进行项目任务书编制;其次根据任务书绘制程序流程框图;再次根据程序流程框图的定义进行 C 应用程序的编制;然后调试应用程序,并借助仿真软件一起联调,最后在无任何错误的情况下搭载硬件电路,焊接元器件,烧写下载应用程序,调试实现其功能。数字式温度计软件设计流程框

48、图如图 4 所示。图 4 数字式温度计软件程序流程框图4.3 实作电子产品 3音乐播放器软硬件设计1、音乐播放器硬件电路设计利用单片机的 I/O 口演奏乐曲。乐曲是按照一定的高低,长短和强弱组成的关系,在一首乐曲中,每一个音符与频率有关。所以我们只要把有关频率的占空比数据做成表格,再通过查表,在 I/O 口输出相关乐曲的方波,便产生了乐曲。硬件电路如图 5 所示。图 5 音乐播放器硬件电路图2、音乐播放器软件设计控制程序的编写首先是根据音乐播放器实现的功能和已经做了的硬件元器件选型进行项目任务书编制;其次根据任务书绘制程序流程框图;再次根据程序流程框图的定义进行 C 应用程序的编制;然后调试应

49、用程序,并借助仿真软件一起联调,最后在无任何错误的情况下搭载硬件电路,焊接元器件,烧写下载应用程序,调试实现其功能。音乐播放器软件设计流程框图如图 6 所示。图 6 音乐播放器软件设计流程框图4.4 实作电子产品 4秒表计数器软硬件设计1、秒表计数器硬件电路设计实现 0 到 9.9 秒的计数功能,还可根据具体需要扩展计数时间范围。开始时,显示“00” ,第 1 次按键后开始计时。第 2 次按键后,计时停止。第 3 次按键后,计时归零。秒表计数器硬件电路如图 7 所示。图 7 秒表计数器硬件电路图2、秒表计数器软件设计控制程序的编写首先是根据秒表计数器实现的功能和已经做了的硬件元器件选型进行项目任务书编制;其次根据任务书绘制程序流程框图;再次根据程序流程框图的定义进行 C 应用程序的编制;然后调试应用程序,并借助仿真软件一起联调,最后在无任何错误的情况下搭载硬件电路,焊接元器件,烧写下载应用程序,调试实现其功能。秒表计数器软件设计流程框图如图 8 所示。图 8 秒表计数器软件设计流程框图4.5 实作电子产品 5数字式断电保护器软硬件设计1、

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报