




已阅读5页,还剩60页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020 3 21 可编辑 1 本章导读本章介绍单片机控制实验与实训的内容 在实验中介绍了单片机与新热敏微打接口设计等实用性的内容 在实训中加强了工具软件的使用 通过Keil Vision3开发单片机C语言程序实例 让读者掌握单片机C程序的开发过程 通过项目化实例介绍了用proteusISIS进行单片机实验的虚拟仿真的方法 通过威龙VP ISP1编程器进行ISP编程 介绍了对传统编程技术的一大革新的ISP技术 这些项目化内容还适用于维修电工等工种技师 高级技师的单片机技术培训的应会项目 第10章单片机的实验与实训 2020 3 21 可编辑 2 10 1 1关于单片机控制实验与实训1 硬件要求 1 微机一台 目前市售的微机均能满足要求 2 通用编程器一台 3 用户板 可采用市售的通用印刷线路板 或用Protell99SE自制 按实验电路自行布局 焊接与调试 更接近生产实际 也可利用现有的各类用户板 相关实验程序必要时可以稍作修改 但在硬件上受益不如前者 用户板5V稳压电源一个 4 有条件的话 可以有一台仿真器 将会使编程调试更方便 10 1单片机应用系统实验 2020 3 21 可编辑 3 2 软件要求 1 一个好的采用Windows平台的MCU开发软件是必须的 例如 KeilSoftware公司的KeilC51中的Keil Vision3是值得首选的 KeilC51软件的安装与使用 请分别参见2 2 2 3节 用Keil Vision3开发C语言程序实例参见10 2 1小节 2 如果上述硬件要求中 只有一台微机 为弥补相应硬件的不足 不妨用protues软件建立单片机仿真虚拟实验室 proteus7 1sp2的安装 以及与KeilC51集成调试项目实例请参见10 2 3小节 3 实验内容的说明 1 在学习指令与程序设计时 本着边学边上机实验 10 1 1关于单片机控制实验与实训2 2020 3 21 可编辑 4 练习的原则 在相应章节的例题中已经要求读者用Keil Vision3进行上机验证 并给出了程序的运行结果 这样 本章不再安排此类实验 其中 MCS 51的指令系统实验 请按第4章例4 4 例4 13 例4 15 例4 16 例4 18和例4 19中的要求进行 MCS 51汇编程序设计实验 请按第5章例5 1 例5 2 例5 4 例5 7 例5 9 例5 13 例5 15 例5 16中的要求进行 2 本章主要安排单片机片内集成功能部件以及接口应用的实验 1 实验目的与功能要求 1 熟悉MCS 51并行口的结构和基本应用 掌握并 10 1 2实验1I O口控制 流水灯扫描1 2020 3 21 可编辑 5 口编程技巧和软件延时方法 2 编制源程序 控制用户板上8个LED按如下方式扫描 先是亮灯从低向高逐位扫描 再从高向低逐位扫描 循环3次 接着 全亮全暗3次 此后 暗灯从低向高逐位扫描 再从高向低逐位扫描 循环3次 此后重新循环 2 实验电路与程序 1 设计原理图用89C2051控制的 可参照图2 2 在P1口接上8组LED与限流电阻串联组合 用89S51或89C51 可用图10 8电路 2 编制源程序汇编源程序lsd10 1 asm见教材P 221 P 222 3 实验步骤 10 1 2实验1I O口控制 流水灯扫描2 2020 3 21 可编辑 6 1 按设计的原理图 制作用户板 并排除硬件上的问题 利用现成用户板 要注意是否要修改源程序 2 用MedWinV3开发本项目 或用Keil Vision3 按9 3介绍方法创建新项目lsd10 1 编辑上述源程序lsd10 1 asm并导入到该项目中 汇编 连接该项目 通过反复纠错 直至把程序调试出来 按9 4介绍的方法分别进行用户系统的模拟仿真 用单步执行程序 观察对应R3值的P1口值的变化规律应如表10 1所示 也可用ME 52HU进行硬件仿真 观察LED灯随程序运行扫描变化是否正确 在仿真中 如果发现错误 要重新进行源程序的编辑 汇编和连接 直至正确为止 10 1 2实验1I O口控制 流水灯扫描3 2020 3 21 可编辑 7 3 将十六进制代码固化到芯片用WH 500APU编程器的 见2 5节说明进行 用西尔特SUPERPRO 280U编程器的 见10 2 1节第 5 中进行 4 脱离仿真器 在用户板上运行将固化好的单片机芯片插入用户板的芯片座上 并给用户板加上电源 观察流水灯扫描的实际效果 10 1 2实验1I O口控制 流水灯扫描4 2020 3 21 可编辑 8 4 思考题 1 修改源程序 设计新的扫描模式 2 计算D01S子程序中的延时时间 1 实验目的与功能要求 1 掌握用定时器产生音频方波的方法 掌握定时器中断程序的设计方法 2 熟悉单片机音乐报警硬件电路设计与乐曲演奏程序编程技巧 编制汇编源程序 演奏 铃儿响叮当 2 实验电路与程序 1 设计原理图只要在实验1的电路基础上 在P3 7加接一个9012三极管去驱动蜂鸣器的电路 如图10 1所示 10 1 3实验2控制蜂鸣器音乐发声 铃儿响叮当1 2020 3 21 可编辑 9 2 单片机音乐发声原理单片机演奏音乐时 要确定实现音调和节拍的算法 音调表示一个音符唱多高的频率 节拍表示一个音符唱多长的时间 10 1 3实验2控制蜂鸣器音乐发声 铃儿响叮当2 2020 3 21 可编辑 10 在图10 1中可通过定时器产生不同频率的音符方波 经P3 7去控制9012导通与截止 从而使蜂鸣器发出不同的音调 并通过延时来控制音调的节拍 就可以使蜂鸣器演奏乐曲了 音调算法曲调中各音符频率是已知的 如表10 2 见教材P 224 给出了三个八度音的频率 按频率的倒数算出其周期 半周期时间由定时器在模式1下定时产生 而计数初值C0的计算已在6 7节中推出为 C0 2k tfosc 12定时器模式1时k 16 再将音符频率f半周期时间作为定 10 1 3实验2控制蜂鸣器音乐发声 铃儿响叮当3 2020 3 21 可编辑 11 时时间t 即t 1 2f 代入上式有 C0 216 tfosc 24f 按此算法 求出各音符的计数初值 如表10 2中第3和第6列 每当定时器定时时间到 就使P3 7反相 再重新定时输出 直至此音符的节拍完 节拍的算法音符的节拍采用软件延时来实现 确定一个基本时长 1 4拍 延时程序 则对于1 4拍时长 只需一次延时 对于2 4拍时长 则需二次延时 依次类推 各曲调的1 4和1 8拍时长设定参见表10 3 教材P 225 3 实验步骤 1 按音调节拍算法处理 铃儿响叮当 乐谱 建立表10 4 见教材P 225 对应音符频率的计数初 10 1 3实验2控制蜂鸣器音乐发声 铃儿响叮当4 2020 3 21 可编辑 12 值表将图10 2所示乐谱中的每个音符的简谱 按从低到高的音调 在表10 4的第1列中排列 第2列是对应简谱的编号 便于在程序中对简谱处理 第3 4列分别是对应的频率和 10 1 3实验2控制蜂鸣器音乐发声 铃儿响叮当5 2020 3 21 可编辑 13 定时器的计数初值 在源程序中也将按此顺序建立决定音调的定时器计数初值表TAB1 建立乐谱的音调节拍码表按 铃儿响叮当 乐谱的顺序 把每一个简谱的音调及节拍 变换成一个字节的数据 其中音调码为高4位 节拍码为低4位 如此乐谱中第一个简谱的音调节拍码为12H 在源程序中也将按此建立乐谱的音调节拍码表TAB 表的最后用00H来表示乐曲结束 程序执行时将依次取出音符的音调节拍码 根据高4位音调码来查初值表TAB1 以决定音符播放的音调 根据低4位节拍码来控制执行基本时长的延时程序的次数 以实现音符播放的节拍 一个音符唱完后 接着 取出 10 1 3实验2控制蜂鸣器音乐发声 铃儿响叮当6 2020 3 21 可编辑 14 下一个音符 直至播放完最后一个音符 2 编制源程序 汇编源程序JBells10 2 asm见教材P 226 P 228 3 按原理图制作用户板 并排除硬件上的问题 4 用MedWinV3开发本项目 创建新项目JBells10 2 编辑上述JBells10 2 asm源程序并导入到该项目中 汇编 连接该项目 进行用户系统的模拟仿真 也可以用ME 52HU进行硬件仿真 5 脱离仿真器 在用户板上运行将十六进制代码固化到单片机芯片 并插入用户板的芯片座上 并给用户板加上电源 聆听单片机演奏 铃 10 1 3实验2控制蜂鸣器音乐发声 铃儿响叮当7 2020 3 21 可编辑 15 儿响叮当 乐谱的实际效果 4 思考题编一个不同乐谱的演奏程序 控制单片机演奏此乐曲 1 实验目的与功能要求 1 掌握中断控制初始化编程和中断服务程序编程 2 实验电路如图6 9所示 实现例6 2所述功能要求 2 实验电路与程序 1 设计原理图 原理图如图6 9所示 2 编制源程序 汇编源程序见例6 2的int10 3 asm 3 实验步骤 1 按设计原理图 制作用户板 并排除硬件上的问题 2 用MedWinV3开发本项目 10 1 4实验3外部中断控制实验1 2020 3 21 可编辑 16 10 1 4实验3外部中断控制实验2 创建新项目int10 3 编辑源程序int10 3 asm并导入到该项目中 汇编 连接该项目 把程序调试出来 用ME 52HU进行硬件仿真 5 脱离仿真器 在用户板上运行 将十六进制代码固化到芯片并将芯片插入用户板芯片座上 设置开关为全合状态 并给用户板加上电源 开关K来回拔动一次产生一个下降沿 通过引脚向单片机请求中断 CPU响应中断 执行中断服务程序 4个发光二极管将根据对应按钮状态刷新为全亮 将开关SB4和SB3闭合 SB2和SB1打开 重新运行程序 注意记录对应开关状态 LED灯D4和D3是否点亮 4 思考题 2020 3 21 可编辑 17 10 1 5实验4定时器输出控制实验1 1 在中断服务程序中 为什么在读入P1口按钮状态MOVA P1指令前 要按排一条MOVP1 0FFH指令 2 在本实验的电路中使用的R S触发器去抖开关 能改用软件消除抖动吗 1 实验目的与功能要求 1 掌握定时 计数器在不同方式下的初始化编程和中断服务程序的编程 2 熟悉当定时器的定时时间超过某一模式下的最大定时时间时的处理方法 3 实验电路如图2 2所示 实现例6 5的功能要求 用定时器T0来定时0 1秒延时 2 实验电路与程序 1 设计原理图 原理图如图2 2所示 2 编制源程序 汇编源程序见例6 5的tlsd10 4 asm 2020 3 21 可编辑 18 10 1 5实验4定时器输出控制实验2 3 实验步骤 1 本实验可以采用图2 2已制作的用户板 2 用MedWinV3开发本项目 创建新项目tlsd10 4 编辑源程序tlsd10 4 asm并导入到该项目中 汇编 连接该项目 直至把程序调试出来 用ME 52HU进行硬件仿真 3 脱离仿真器 在用户板上运行将十六进制代码固化到芯片 将固化好的单片机芯片插入用户板的芯片座上 观察单灯闪烁的实际效果 4 思考题 1 定时器T0在模式0下的最大定时时间仅8 192ms 而要求延时的时间是100ms 已超过了模式0下的最大定时时间 试问本实验程序中是如何处理的 2020 3 21 可编辑 19 10 1 6实验5串口自收自发通信实验1 2 改用查询方式定时100ms 参照例6 4重做本实验 1 实验目的与功能要求 1 掌握串行口收发程序的编程技巧和调试方法 2 设计一个自收自发程序 先用数据F0H填充片内RAM单元30H 3FH 并将每个数据送P1口驱动LED显示 间隔为0 1S 再将每个数据通过TXD串行发送出去 又通过RXD串行接收回来 并将每个数据高低4位自交换成0FH后 送到片内RAM单元40H 4FH单元 同时送P1口驱动LED显示 间隔也为0 1S 2 实验电路与程序 1 设计原理图采用实验1中的原理图 但要将单片机的TXD引脚和RXD引脚连接起来 2 编制源程序 2020 3 21 可编辑 20 10 1 6实验5串口自收自发通信实验2 自收自发通信是调试通信程序和通信接口电路的常用方法 它和双机通信程序的设计方法相似 程序初始化串行口工作在方式2 TB8作奇偶校验位 发送和接收都采用查询方式 串行口每发送或接收完一帧串行数据 就清零TI和RI 程序正常运行时 发送的数据为F0H 将驱动P1口低4位LED闪亮 接收的数据自交换后变为0FH 将驱动P1口高4位LED闪亮 汇编源程序stiri10 5 asm见教材P 230 P 231 3 实验步骤 1 可采用实验1中已制作的用户板 但要在印刷板上单片机的TXD和RXD引脚旁焊接引出两个插针 并用跳线帽将两插针短路 2 用MedWinV3开发本项目 2020 3 21 可编辑 21 10 1 7实验6并行A D转换实验1 创建新项目stiri10 5 编辑源程序stiri10 5 asm并导入到该项目中 汇编 连接该项目 直至把程序调试出来 用ME 52HU进行硬件仿真 3 脱离仿真器 在用户板上运行将十六进制代码固化到芯片 将固化好的单片机芯片插入用户板的芯片座上 并给用户板加上电源 注意是否观察到 先是P1口LED灯的低4位闪烁 其后是P1口LED灯的高4位闪烁 4 思考题 1 实验中LED灯高 低4位先后闪烁 说明了什么 2 改用中断方式编程 重做本实验 1 实验目的与功能要求 1 熟悉ADC0809的转换性能和编程方法 掌握单片 2020 3 21 可编辑 22 10 1 7实验6并行A D转换实验2 机与ADC0809的连接 了解单片机进行数据采集方法 2 采用图8 29A D转换电路 将一路模拟量经ADC0809的0通道输入 转换成二进制数字量 输出到P1口驱动LED显示 2 实验电路与程序 1 设计原理图A D转换原理图如图8 29所示 通过W1分压给ADC0809的0通道输入模拟量 P1口LED显示电路 复位及晶振电路可参照图10 8的接法 2 编制源程序汇编源程序ad10 6 asm见教材P 232 P 233 3 实验步骤 1 制作用户板 2020 3 21 可编辑 23 10 1 7实验6并行A D转换实验3 按原理图提示制作用户板 2 用MedWinV3开发本项目 创建新项目ad10 6 编辑源程序ad10 6 asm并导入到该项目中 汇编 连接该项目 直至把程序调试出来 用ME 52HU进行硬件仿真 3 脱离仿真器 在用户板上运行将十六进制代码固化到芯片 将固化好的单片机芯片插入用户板的芯片座上 并给用户板加上电源 旋动电位器W1 使输入IN0的电压分别如表10 5 见教材P 233 第3列所示 注意记录P1口LED灯的状态 4 思考题 1 改用查询方式重做本实验 2 修改实验 对一路模拟量连续采样4次并取其 2020 3 21 可编辑 24 10 1 8实验7并行D A转换实验1 值 结果存放在30H单元 1 实验目的与功能要求 1 掌握DAC0832与单片机的连接 学会利用0832产生波形的编程方法 2 用DAC0832接口电路作为波形发生器 试编程 从Vo端输出三角波波形 2 实验电路与程序 1 设计原理图 供参考的D A转换原理图如图8 32 2 编制源程序 三角波波形发生汇编源程序见例8 11的da10 7 asm程序 3 实验步骤 1 制作用户板参照图8 32所示D A转换电路 制作用户板 2020 3 21 可编辑 25 10 1 8实验7并行D A转换实验2 2 用MedWinV3开发本项目 创建新项目da10 7 编辑源程序da10 7 asm并导入到该项目中 汇编 连接该项目 直至把程序调试出来 用ME 52HU进行硬件仿真 D A转换的输出Vo接示波器探头 仿真正确后 送数字量00H到0832时 调节运放的调零电位器W2 使Vo 0 送数字量0FFH到0832时 调节运放的反馈电位器W1 使满量程VO 5V 反复调整零点和满量程 3 脱离仿真器 在用户板上运行 将十六进制代码固化到芯片 将固化好的单片机芯片插入用户板的芯片座上 D A转换的输出Vo接示波器探头 并给用户板加上电源 用示波器观察Vo波形 测量Vo周期和幅度 并记录 2020 3 21 可编辑 26 10 1 9实验8单片机与新热敏微打接口设计实验1 在无示波器时 可以在Vo端接5V直流小电机 观察小电机的转速变化 4 思考题 1 编程实现输出波形为方波 2 在无示波器时 可对本实验进行proteus虚拟仿真 proteus仿真方法请参看10 2 3节 本项目proteus原理图如图10 3 该图也是运行时的电路情形 在图10 3中用到的元件有 AT89C51 DAC0832 uA741 RES和POT LIN 电位器 在图10 3中用到的虚拟仪器有 OSCILLOSCOPE 示波器 和DCAMMETER 直流电压表 1 实验目的与功能要求 1 熟悉输出设备新热敏微打接口设计的软硬件技术 2020 3 21 可编辑 27 10 1 9实验8单片机与新热敏微打接口设计实验2 2 用单片机控制A61R10 20E525串口热敏微打打印汉字与西文 3 由读者进行并口热敏微打接口设计 控制WH A62R10 21E8PA打印汉字与西文 2 实验电路与程序 1 WH A6系列新热敏微打性能与接口引脚定义WH A6系列热敏微打串口使用IDE10针插座 RS 232电平 其引脚如图10 4 b 所示 并口使用IDE26针插座 TTL电平 其引脚如图10 6所示 2 设计原理图单片机与微打A61R10 20E525接口电原理图如图10 5 单片机与微打采用10芯扁平电缆连接 3 编制源程序 2020 3 21 可编辑 28 10 1 9实验8单片机与新热敏微打接口设计实验3 单片机控制WH A6微打汇编源程序spint10 8 asm见教材P 236 P 237 3 实验步骤 1 制作用户板可参照图10 5所示电路制作 2 用MedWinV3开发本项目 2020 3 21 可编辑 29 10 2 1实训1用Keil Vision3开发单片机C语言程序1 创建新项目spint10 8 编辑源程序spint10 8 asm并导入到项目中 汇编 连接该项目 直至把程序调试出来 用ME 52HU进行硬件仿真 3 脱离仿真器 在用户板上运行将固化好的单片机芯片插入用户板的芯片座上 给用户板和微打加上电源 按下打印按钮 观察打印的结果 4 思考题请读者完成用单片机控制WH A62R10 21E8PA并口热敏微打的接口设计 1 实训目的 1 掌握用Keil Vision3开发单片机C语言程序过程 2 以AT89S51控制的流水灯C程序8 0ledc c项目为例 用Keil Vision3进行编辑 编译和模拟调试 要求会 2020 3 21 可编辑 30 10 2 1实训1用Keil Vision3开发单片机C语言程序1 作相应的设置 产生十六进制文件 并用编程器将其固化到AT89S51芯片中 以便能在用户板上运行 2 实训知识 1 AT89S51控制的流水灯用户板可按图10 8电原理图制作 AT89S51引脚与8051兼容 但支持ISP编程 2 编制相应的C控制源程序 控制板上8个LED按如下方式扫描 先是从低向高逐 2020 3 21 可编辑 31 10 2 1实训1用Keil Vision3开发单片机C语言程序2 位扫描点亮 再从高向低逐位扫描点亮 最后全亮全暗3次 如此不断循环 C源程序8 0ledc c及相关说明见教材P 239 P 241 3 实训步骤硬件方面按图10 8制作用户板 软件方面请参照2 3 2 4节中汇编源程序的开发步骤 下面只简要列出运行Keil Vision3后操作要点 1 创建新工程 使用菜单命令 工程 新建工程 操作过程参看图2 5 2 7 操作结果把流水灯工程文件8 0ledc Uv2存放在用户指定的文件夹下 比如 d workkeil 8 0ledc 选择CPU厂家和型号在弹出如图2 8所示选择CPU厂家和型号的对话框时 应 2020 3 21 可编辑 32 10 2 1实训1用Keil Vision3开发单片机C语言程序3 选择Atmel公司的89S51 复制启动代码到工程在弹出如图2 9所示对话框 询问是否将CPU特殊启动代码拷贝到工程中时 可选择 是 Y 工程创建完成 2 创建C源文件使用菜单命令 文件 新建 操作过程见图2 10 操作结果把流水灯C源程序8 0ledc c存放在同一工程文件夹 3 将源文件添加到工程输入完C源程序后 操作过程参看图2 11 2 13 操作结果把流水灯C源程序8 0ledc c添加到本工程 如图10 9 4 编译连接工程 按2 4 3节方法 操作过程参看图2 18 2 19 操作结果使创建HEX文件有效 即编译后就能得到十六进制文件 2020 3 21 可编辑 33 10 2 1实训1用Keil Vision3开发单片机C语言程序4 使用菜单命令 工程 创建目标 对源文件进行编译连接 按前面介绍方法 编译源文件 完成后注意观察输出窗口的编译信息 HEX文件已经创建到指定的路径中了 如图10 9 5 模拟仿真按2 4 2节方法 进行模拟仿真 来调 2020 3 21 可编辑 34 10 2 1实训1用Keil Vision3开发单片机C语言程序5 试运行程序 观察运行的结果 用快捷键Ctrl F5进入调试模式使用菜单命令 外围设备 I O Ports Port1 出现P1口的调试窗口如图2 15所示 用F10进行单步运行在运行第一个for循环时 注意观察P1口调试窗中 灯从低向高逐位扫描点亮规律应与表10 8中 P1口灯状态 相符 在运行第二个for循环时 注意观察P1口调试窗中 灯从高向低逐位扫描点亮规律应与表10 8中 P1口灯状态 水平对称 在运行第三个for循环时 注意观察P1口调试窗中 8灯应全亮全暗3次 2020 3 21 可编辑 35 10 2 2实训2用VP ISP1编程器进行ISP编程1 用F5进行全速运行在源程序窗口中 用F9在程序的第7 11 13 14 18 20 21 23和25行处设置断点 成功的标志是在行号后将出现小红方块 如图10 9所示 不断按F5 注意观察P1口调试窗出现情形应与单步运行时的相同 5 用SUPERPRO 280U将十六进制代码固化到芯片见教材P 243 P 244 6 在用户板上运行程序将固化好的AT89S51芯片插入用户板的芯片座子上 加上电源后 就可以看到流水灯实验的实际效果了 1 实训目的 1 了解对传统编程技术的一大革新的ISP编程技术 2 掌握用威龙VP ISP1编程器将上一实训中产生的 2020 3 21 可编辑 36 10 2 2实训2用VP ISP1编程器进行ISP编程2 十六进制文件8 0ledc hex写入到威龙WL ISPBOARD 2板上的AT89S51芯片中 或者下载到自制的带有ISP接口的流水灯用户板上AT89S51芯片中 2 实训知识 1 什么是ISP ISP是In SystemProgramming的缩写 意为 在系统编程 ISP技术是对传统编程技术的一大革新 利用ISP技术设计电路板时要求预留一个标准的ISP下载线接口 要求使用支持ISP技术的单片机 如AT89S51和AT89S52等 2 AT89S51支持ISP编程引脚AT89S51单片机提供了一个SPI串行接口 让用户能对内部Flash存储器串行下载 引脚P1 5 P1 7新增用于ISP 2020 3 21 可编辑 37 10 2 2实训2用VP ISP1编程器进行ISP编程3 编程的第二功能见表10 9 实现ISP编程要用到的引脚连接如图10 15所示 如果是自做用户板 应将这些ISP编程要用到的引脚用跳线针引出 在图10 8中则是作为测试点标出的 3 VP ISP1编程器与WL ISPBOARD 2板的连接编程器通过10芯下载头WL ISP U1与用户板下 2020 3 21 可编辑 38 10 2 2实训2用VP ISP1编程器进行ISP编程4 载线接口连接 连接后的情形如图10 16 b 图10 16 b 中使用的WL ISPBOARD 2是与VP ISP1配套的用户板 此板上有一个40芯的紧松插座 用以放入待编程的芯片 紧松插座的40芯引脚分别依次引出与两旁的跳线针连接 以方便下载头的跳线帽的插 2020 3 21 可编辑 39 10 2 2实训2用VP ISP1编程器进行ISP编程5 入连接 两者连接时要注意以下几点 10芯下载头WL ISP U1插入编程器时 白红蓝棕灰线要在上面 信号线颜色如图10 17所示 下载头的另一端的7个跳线帽要按图10 16 a 所示 正确插入WL ISPBOARD 2上的插针中 采用自制的用户板 也要按图10 16 a 所示连接 如使用用户板的电源 GND这根线必需插 Vcc不要插 3 实训步骤 1 VP ISP1驱动程序与编程软件安装见教材P 247 P 248 2 运行Willon系列通用编程测试软件 用USB通讯电缆将计算机与编程器连接好 指示灯亮 2020 3 21 可编辑 40 10 2 2实训2用VP ISP1编程器进行ISP编程6 双击执行图标 启动wellon编程器软件 出现如图10 19窗口 见教材P 248 显示编程器初始化成功 3 选择芯片型号用菜单命令 芯片选择 芯片选择 出现如图10 20 见教材P 249 所示芯片选择对话框 在 芯片厂家 列表框中选择生产厂家ATMEL 在 芯片型号 列表框中选择AT89S51 ISP 单击 确定 按钮 4 检查插线 放入芯片自动出现适配器资料对话框 再次仔细核对WL ISP U1上跳线帽是否按图10 16 a 所示正确插入用户板上的相应插针中 确认无误后 单击 确定 按钮 将待编程的芯片放入紧松插座上 推平锁紧扳手 5 芯片编程 2020 3 21 可编辑 41 10 2 3实训3LED与LCD显示的proteus仿真1 用菜单命令 文件 打开 在出现的打开文件对话框中选择 8 0ledc hex 文件 单击 打开 按钮后 出现如图10 21 见教材P 249 所示 读文件缓冲区 对话框 确认无误后 单击 确定 按钮 文件被读入到缓冲区 如有必要 可以用 编辑 缓冲区编辑 来修改 用菜单命令 芯片读写 自动编程 自动完成芯片擦除和芯片编程 窗口如图10 22 见教材P 250 所示 1 实训目的 1 掌握用proteus与keil连调进行虚拟仿真的方法 2 会对图8 34所示LED动态扫描电路按例8 7要求 用proteus进行仿真 3 会对图10 41所示LCD显示电路按实训练习 2 中要求 用proteus进行仿真 2020 3 21 可编辑 42 10 2 3实训3LED与LCD显示的proteus仿真2 2 实训知识 1 Proteus 海神 简介Proteus是一款集单片机和SPICE仿真于一身的EDA工具软件 其中ISIS可直接在原理图的虚拟原型上进行主流MCU和外围电路编程 与Keil连接调试 2 6位LED动态扫描电路如图8 34 相关说明见例8 7 3 下面只给出主程序 功能是将十六进制数0 5依次存放到7AH 7FH显示缓冲区 被调用的6位LED动态扫描显示子程序DDIR见例8 7 把此主程序和DDIR子程序组成的汇编源程序存放在名为sdir asm文件中 ORG0000HAJMPSTARTORG0030H 2020 3 21 可编辑 43 10 2 3实训3LED与LCD显示的proteus仿真3 START MOVR1 06H 显示数据个数送R1MOVR0 7AH 显示缓冲区首址送R0MOVA 00H 向显示缓冲区预置数据0 5IN MOV R0 AINCAINCR0DJNZR1 INACALLDDIR 6位LED动态扫描显示子程序DDIRSJMPSTART 见例8 73 实训步骤 1 安装Proteus软件 见教材P 251 2 用proteus绘制图8 34原理图双击ProteusISIS7执行图标出现如图10 23所示ISIS7Professional集成开发环境窗口 图中标出了窗口中 2020 3 21 可编辑 44 10 2 3实训3LED与LCD显示的proteus仿真4 各部分的组成 在图形编辑窗中的蓝色方框内可以绘制原理图 这个窗没有滚动条 要用预览窗来改变其可视范围 预览窗作用有 当鼠标点击原理图编辑窗时 会显示整张原理图的缩略图 这时调节绿色方框位置 框内的缩略图部分就是 2020 3 21 可编辑 45 10 2 3实训3LED与LCD显示的proteus仿真5 当前原理图窗口中显示的内容 当一个元件在对象选择窗中被选中时 会显示该元件的预览图 可用对象选择窗下部旋转钮改变元件的方向 Proteus的鼠标操作 右键单击选择元件 右键双击删除元件 左键单击放置元件 先右键后左键编辑元件属性 中轮滚动缩放原理图 绘制图8 34原理图方法如下 将元件加入到对象选择窗要用到的元件如表10 10 单击对象选择按钮 P 出现如图10 24所示 PickDevices 对话框 在Keywords 栏中输入 AT89C51 系统会自动搜索对象库 并把搜索到的结果显示在 Results 栏中 在 Results 栏中选中第一个元件 AT89C51 单击 OK 按钮 AT89C51就被加入到 2020 3 21 可编辑 46 10 2 3实训3LED与LCD显示的proteus仿真6 2020 3 21 可编辑 47 10 2 3实训3LED与LCD显示的proteus仿真7 对象选择窗中了 依此方法把表10 10中的其余元件都加入到对象选择窗中 如图10 25所示 放置元件到原理图编辑窗在对象选择窗中选中AT89C51 在原理图编辑窗的合适位置处单击左键 AT89C51就被放到原理图编辑窗中了 依此方法 在原理图编辑窗的合适位置处放置其余元件 对于表10 10中最后两行的多个相同元件 如电阻R1 R8 也可以用块复制方法 放置好R1后 右键单击将其选中 再单击块复制按钮 移动鼠标后单击左键 将R1复制到新位置 重复操作至放置好所有电阻 单击鼠标右键退出 添加电源到原理图编辑窗单击工具箱中TerminalsMode图标 出现如图10 26所示 2020 3 21 可编辑 48 10 2 3实训3LED与LCD显示的proteus仿真8 终端模式选择框 选中 POWER 再在原理图编辑窗中合适位置处单击左键 电源就被放置到此窗口中了 连线Proteus许多器件的VCC VDD GND之类引脚都被隐藏了 在画原理图时不需连接 其它元件之间可按图8 34进行连接 以图10 27中U1的1脚与U3A的1脚的连接来说明 先检查Proteus自动路径功能是否打开 此功能可用Tools菜单中的 WireAutoRouter 命令来打开或关闭 当鼠标指针靠近U1的1脚时 指针变成笔状 同时出现一个红色的小方块 表明找到了连接点 单击鼠标左键 之后 向U3A的1脚移动鼠标指针 不用拖拉 时 走线会自动变成了90 的折线 鼠标指针到达U3A的1脚连接点时 指针也会变成笔状 同时出现一个红色的小方块 单 2020 3 21 可编辑 49 10 2 3实训3LED与LCD显示的proteus仿真9 击鼠标左键 连线就完成了 同样地完成其余的连线 在连接时可以按ESC键或者单击鼠标右键来放弃画线 标注导线标号图10 27中电阻R1 R8下面8个引脚与U2的相应引脚的相连 也可以标注相同导线标号得到连接 下面以图10 27中R1的下面引脚与U2的13脚的连接来进行说明 鼠标指针在R1下面引脚处单击 引出一条短线后再单击 得到一个连接点 用同样方法在U2的13脚处引出一条短线和连接点 单击工具箱中的 WireLabelMode 图标 鼠标指针指向R1下面的引线处 出现 号时 单击鼠标左键 出现 EditWireLabel 对话框时 在 String 栏中输入标号名称 a 用同样方法在U2的13脚处标注导线标号 a 这样 相同标号的两点就连通了 同样地标注 2020 3 21 可编辑 50 10 2 3实训3LED与LCD显示的proteus仿真10 其余的导线标号 不同的连接点 要用不同的标号 本图中的8个连接点采用的标号是a h 至此 原理图已完成 如图10 27 该图也是运行时情形 将此设计以sdir7404 DSN存盘 3 Keil Vision3与Proteus7连调仿真参照2 3 2 4节中汇编源程序的开发步骤 在 2020 3 21 可编辑 51 10 2 3实训3LED与LCD显示的proteus仿真11 Keil Vision3中如下操作 创建新工程sdir Uv2 选择CPU厂家和型号为Atmel公司的AT89C51 该工程存放在用户指定的文件夹下 比如 d workkeil sdir 将sdir asm文件添加到该工程中 设置Keil Vision3与Proteus7连调 按2 4 3节方法 在打开图2 19所示 OptionsforTarget Target1 选项设置窗时 单击 调试 标签 在出现的 调试 标签页对话框的右栏上部的下拉列表中选中 ProteusVSMSimulator 并且要选中 使用 前面的单选按钮 使之出现小圆点 如图10 28所示 再单击 设置 按钮 出现如图10 29所示设置通信对话框 在 Host 栏中输入本机地址 127 0 0 1 如果Proteus安装在网络上 2020 3 21 可编辑 52 10 2 3实训3LED与LCD显示的proteus仿真12 另外一台电脑 则要输入另一台电脑的IP地址 在 Port 栏中输入口地址 8000 设置好后 单击 OK 按钮 按2 4 3节方法 编译连接该工程 创建文件sdir hex ProteusISIS7中的设置 打开sdir7404 DSN 在ProteusISIS7窗口中 打开 Debug 菜单 选中 UseRemoteDebugMonitor 这样Keil Vision3与Proteus7连调设置就完成了 2020 3 21 可编辑 53 10 2 3实训3LED与LCD显示的proteus仿真13 在Keil Vision3中 用各类运行按钮调试运行程序时 就会在ProteusISIS7窗口中看到运行的结果 4 Proteus的单独虚拟仿真连调正确后 对原理图中的AT899C51先右键单击 再左键单击 出现如图10 30所示的 EditComponent 对话框 单击 ProgramFile 栏的浏览按钮 找到并加入上面创建的HEX文件sdir hex 然后单击 OK 按钮 至此 就可以在ProteusISIS7窗口本身 运行模拟仿真了 单击仿真运行按钮 6位LED将动态显示 012345 同时能清楚地观察到每一个引脚的电平 2020 3 21 可编辑 54 10 2 4实训4数字电子钟控制1 变化 红色代表高电平 蓝色代表低电平 如图10 27所示 4 实训练习练习1 改用图8 20电路 重做本实训 汇编源程序中的延时采用R6 4 R7 248 观察显示的不同效果 练习2 在LM032L的LCD显示屏上向右滚动显示如下两行文字 VSMLCDDEMO 和 AvirtualLM032L 如图10 31 见教材P 256 所示 1 实训目的 1 熟悉LED动态显示 独立式按键识别和电子钟的时 分 秒数据处理方法 2 设计一个6位LED显示数字电子钟 要求时 分和秒可调 在Proteus的虚拟仿真通过后 移植到用户板上 2020 3 21 可编辑 55 10 2 4实训4数字电子钟控制2 2 实训知识 1 数字电子钟原理图如图10 32 图中采用6位LED共阴显示器 动态显示时 分和秒 AT89C51的P0口输出七段码 P2口输出位选码 接于P3 0 P3 2的三个按键用于秒 分和时的调整 2 汇编源程序 2020 3 21 可编辑 56 10 2 4实训4数字电子钟控制3 DTSZ ASM见教材P 259 P 2616 对存储分配和编程算法说明如下 存储分配与时 分 秒数据处理秒 分 时的时间数分别存放在70H 72H单元中 73H单元为秒计数用 即对定时器0的50ms溢出中断进行计数 20次中断为1秒时间到 给秒单元70H加1 秒 分单元进位逢60进1 时单元逢24溢出 此时 秒 分 时单元全部清零 重新开始新一天的计时 对70H 72H单元中秒 分 时数据 分别进行拆字 把得到的秒 分 时的个位和十位分别存入7AH 7FH显示缓冲区中 编程算法程序采用查询算法对三个独立键状态进行循环查询 同时调用动态扫描子程序 保持显示器同时是亮的 定时 2020 3 21 可编辑 57 10 2 5实训5交通灯控制1 器0以中断方式工作 进行1秒计数 3 实训步骤 1 按实训3介绍的方法 完成数字电子钟项目的Proteus的虚拟仿真 本项目用到的元件为 AT89C51 7SEG MPX6 CC BLUE 74LS07 RESPACK 8和BUTTON 2 在Proteus的虚拟仿真通过后 把此项目移植到用户板上 按9 4介绍的方法用ME 52HU进行硬件仿真 1 实训目的 1 熟悉单片机进行逻辑控制和定时控制的基本方法 模拟交通灯控制的工作过程 2 功能要求 上电后 南北红灯与东西绿灯同时亮 南北红灯亮将维持13s 东西绿灯亮10s 接着黄灯闪烁 亮 2020 3 21 可编辑 58 10 2 5实训5交通灯控制2 暗间隔为0 5s 闪烁3次后熄灭 变为东西红灯亮 南北绿灯亮 同样 东西红灯亮13s 南北绿灯亮10s 接着黄灯闪烁 亮暗间隔为0 5s 闪烁3次后熄灭 此后 恢复为南北红灯亮与东西绿灯同时亮 如此周而复始的循环 当闭合紧急开关时 南北红灯与东西红灯同时亮 以利特种车辆通过 2 实训知识 1 交通灯控制原理图如图10 33 图中P1 0 P1 2经7407和上拉电
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美容仪器市场推广策略报告:2025年美容仪器行业社交媒体营销策略
- 微流控芯片中咪唑烷酮传质效率优化对连续化生产的放大效应研究
- 微型化设计引发的定子铁芯叠片应力分布异常诊断
- 标准厂房安全生产管理方案
- 2025年5G网络的未来发展趋势
- 循环经济模式下凹版印刷废版材资源化利用的产业闭环设计
- 工业级刮窗器多传感器数据融合的边缘计算安全防护机制
- 数据中心运维自动化管理方案
- 第3课 《中华民国临时约法》教学设计-2025-2026学年高中历史人教版2007选修2近代社会的民主思想与实践-人教版2007
- 中考真题的倒数题及答案
- 《大学生美育》 课件 第七章 艺术美
- 《智慧农业关键技术与装备》课件-第09章 农业信息传输技术概述
- 2024年江门市蓬江区侨盛发展集团有限公司招聘笔试参考题库附带答案详解
- 血透进修汇报
- 艺术设计学专业导论
- 七年级英语阅读理解专项练习题及答案
- 2024年国家电投集团黄河上游水电开发有限责任公司招聘笔试参考题库含答案解析
- 胆囊结石伴急性胆囊炎的护理查房
- 白蛋白在组织工程与再生医学中的应用
- 《国际探险公园设立规范》
- 闽教版2023版3-6年级全8册英语单词表
评论
0/150
提交评论