1、EDA 技术及应用实验指导书编写人:许一男审核人:金永镐延边大学工学院电子信息通信学科目 录一 验证性实验部分实验一 Proteus 程序基础实验二 LED 模拟交通灯实验三 单只数码管循环显示0 9二 设 计 性 实 验 部分实验四 8 只数码管滚动显示单个数字实验五 K1-K4 控制 LED 移位三 创新性实验部分实验六 K1-K4 按键状态显示实验七 K1-K4 分组控制 LED实验一 Proteus 程序基础一、实验目的 1. 了解 PROTEUS单片机与嵌入式系统仿真与开发平台的基本知识。2. 学习 PROTEUS单片机电路设计方法,掌握单片机系统的 PROTEUS 电路设计的操作技
2、能。 3. 学习 PROTEUS单片机源程序设计方法,掌握单片机源程序的编译。二、实验仪器及材料1. PC 机 2. Proteus 6.9 SP4 软件 三、实验内容 (一)了解 PROTEUS单片机与嵌入式系统仿真与开发平台的主要特点1.该平台包括原理布图系统 ISIS、带扩展的 Prospice 混合模型仿真器、动态器件库、高级图形分析模块和处理器虚拟系统仿真模型 VSM,是一个完整的单片机与嵌入式系统软、硬件设计仿真平台。 集成 PROTEUS PCB 设计形成完整的电子设计系统。 支持 ARM7,PIC ,AVR,HC11 以及 8051 系列的微处理器 CPU 模型。 交互外设模型
3、有 LCD 显示、RS232 终端、通用键盘、开关、按钮、LED 等。 强大的调试功能,如访问寄存器与内存,设置断点和单步运行模式。 支持如 IAR、Keil 和 Hitech 等开发工具的源码 C 和汇编的调试。 14 种虚拟仪器:示波器、逻辑分析仪、信号发生器、规程分析仪等。 模拟信号发生器包括直流、正旋、脉冲、分段线性、音频、指数、单频FM;数字信号发生器包括尖脉冲、脉冲、时钟和码流。 (2)学习 Proteus ISIS 智能原理图输入系统的基本知识 (3)1. 进入 Proteus ISIS 双击桌面上的 ISIS 6 Professional 图标或者单 击屏幕左下方的“开始”“程
4、序”“Proteus 6 Professional” “ISIS 6 Professional”,出现如图 3.1 所示屏幕,表明进入Proteus ISIS 集成环境。图 1 启动时的屏幕 2. 工作界面 Proteus ISIS 的工作界面是一种标准的 Windows 界面,如图 3.2 所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。图 2 Proteus ISIS 的工作界面3.设计实例 (1) 设计题目: 通过 AT89C51 单片机控制 8 个发光二极管发光,实现暗点以1HZ
5、频率由低位到高位循环移动。 (2) PROTEUS 设计电路原理图图 3 发光二极管流水灯电路原理图(4)掌握 PROTEUS单片机源程序设计1.源程序设计 (1)添加源程序文件 单击 ISIS 菜单 Source(源程序) ,弹出下拉菜单,单击 “Add/Remove Source Files” (添加/移开源程序)选项,弹出对话框, 单击 “Code Generation Tool” (目标代码生成工具)下方框中按钮“ ” ,弹出下拉菜单,选择代码生成工具“ ASEM51”(51 系列及其兼容系列汇编器)。 若“Source Code Filename” (源程序文件名)下方框中没有期望的
6、源程序文件,则单击“New” (新建)按钮,在弹出的对话框文件名框中输入新建源程序文件名“start.asm”后,单击“ 打开” 按钮,会弹出小对话框,单击“ 是”按钮。 (2)编写编辑源程序 单击菜单“Start start.asm” ,在源程序窗口中编辑源程序。编辑无误后,单击保存图标按钮存盘,文件名就是 start.asm 。 2.生成目标代码文件 (1)目标代码生成工具设置 如首次使用某一编译器,则需设置代码产生工具,单击菜单“Source Define Code Generation Tools” ,在弹出的对话框中(Add/Remove Code Generation Tools)
7、 ,进行设置: Code Generation Tool (代码生成工具)设置为ASEM51; Make Rules (生成规则)中的 Soure Extn (源程序扩展名)设 置为 ASM; Obj Extn (目标代码扩展名)设置为 HEX; Command Line (命令行)设置为%1;Debng Data Extraction (调试数据提取)中的 List File Extn 设置为 LST。 (2)汇编编译源程序、生成目标代码文件 单击“Source Build All (全编译、汇编) ,编译结果在弹出的编译日志对话框中显示,无错则生成目标代码文件。对 ASEM51 系列及其兼
8、容单片机而言,目标代码文件格式为*.HEX 。若有错,则可根据编译日志提示来 调试源程序,直至无错生成目标代码文件为止。 3. 源程序清单(发光二极管流水灯) ORG 0 SJMP START ORG 30H START: MOV P1, #1 MOV P1, #2MOV P1, #4 MOV P1, #8 MOV P1, #10H MOV P1, #20HMOV P1, #40H MOV P1, #80H CALL DLY SJMP START DLY: NOP NOPNOP RET END 四、实验报告1. 学会熟练使用 Proteus。2. 能熟练编写单片机程序。实验二 LED 模拟交通
9、灯 一、实验目的1. 学会设计 LED 交通模拟灯。二、实验仪器及材料1. PC 机 2. proteus 软件 三、实验内容 说明:东西向绿灯亮若干秒,黄灯闪烁 5 次后红灯亮, 红灯亮后,南北向由红灯变为绿灯,若干秒后南北向黄灯闪烁 5 此后变红灯,东西向变绿灯,如此重复。#include #define uchar unsigned char#define uint unsigned int sbit RED_A=P00; /东西向灯 sbit YELLOW_A=P01; sbit GREEN_A=P02; sbit RED_B=P03; /南北向灯 sbit YELLOW_B=P04;
10、 sbit GREEN_B=P05; uchar Flash_Count=0,Operation_Type=1; /闪烁次数,操作类型变量/延时void DelayMS(uint x) uchar i; while(x-) for(i=0;i120;i+); /交通灯切换 void Traffic_Light() switch(Operation_Type) case 1: /东西向绿灯与南北向红灯亮 RED_A=1;YELLOW_A=1;GREEN_A=0; RED_B=0;YELLOW_B=1;GREEN_B=1; DelayMS(2000); Operation_Type=2; brea
11、k; case 2: /东西向黄灯闪烁,绿灯关闭DelayMS(300); YELLOW_A=YELLOW_A;GREEN_A=1; if(+Flash_Count!=10) return; /闪烁5次 Flash_Count=0; Operation_Type=3; break; case 3: /东西向红灯,南北向绿灯亮 RED_A=0;YELLOW_A=1;GREEN_A=1; RED_B=1;YELLOW_B=1;GREEN_B=0; DelayMS(2000); Operation_Type=4; break; case 4: /南 北 向 黄 灯 闪 烁 5次 DelayMS(300); YELLOW_B=YELLOW_B;GREEN_B=1; if(+Flash_Count!=10) return; Flash_Count=0; Operation_Type=1; /主程序 void main() while(1) Traffic_Light(); 图 4 电路图四、实验报告1. 程序写下来。