实验一智能仪器设计集成环境介绍一、实验目的1.掌握利用Proteus仿真平台进行电路设计的基本操作。2.掌握利用Proteus软件和Keil联合仿真调试的操作。二、实验仪器计算机一台、Proteus软件三、实验内容ProteusISIS是英国LabcenterElectronics公司开发的EDA软件。单片机是现代电子技术的新兴领域,它的出现极大地推动了电子工业的发展,已成为电子系统设计中最为普遍的应用手段。近年来单片机技术得到了突飞猛进的发展,各种单片机开发工具层出不穷。虚拟仿真就是近年来兴起的一种新型应用技术,采用虚拟仿真技术,在原理图设计阶段就可以对单片机应用设计进行评估,验证所设计电路是否达到所要求的技术指标,还可以通过改变元器件参数使整个电路性能达到最优化。这样就无须多次购买元器件及制作印刷电路板,节省了设计时间与经费,提高了设计效率与质量。英国Labcenter公司推出的Proteus软件是一款极好的单片机应用开发平台,它以其特有的虚拟仿真技术很好地解决了单片机及其外围电路的设计和协同仿真问题,可以在没有单片机实际硬件的条件下,利用PC以虚拟仿真方式实现单片机系统的软、硬件同步仿真调试,使单片机应用系统设计变得简单容易。Proteus软件涵盖了PIC、AVR、MCS8051、68HC11、ARM等微处理器模型,以及多种常用电子元器件,包括74系列、CMOS4000系列集成电路、A/D和D/A转换器、键盘、LCD显示器、LED显示器,还提供示波器、逻辑分析仪、通信终端、电压/电流表、I2C/SPI终端等各种虚拟仪表,这些都可以直接用于仿真设计,极大地提高了设计效率和设计水平。下面以一个“完成每隔1秒钟接在P1口的八个发光二极管循环闪亮”例子来说明实验过程。实验硬件电路(如图1.1所示):XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C52PROGRAM=D:\Users\MSI\我的文档\Keilfile\ledtest\ledtest.HEXC122pC222p234567891RP1RESPACK-8C310uFVCCVCCVCCR110k图1.1硬件电路图源程序:ORG0000HLJMPSTARTORG0030HSTART:MOVA,#0FEHLOOP:MOVP1,AMOVR1,#10DLE1:MOVR2,#200DLE2:MOVR3,#126DLE3:DJNZR3,DLE3DJNZR2,DLE2DJNZR1,DLE1RLALJMPLOOPEND四、实验步骤1、进入Proteus系统,画出实验电路图;2、进入KeilC51软件的操作环境,编辑源程序并对源文件进行编译;编译如图1.2所示:图1.2编译3、对Proteus系统和KeilC51系统进行联机设置,如图1.3、1.4所示;联机设置:首先要安装Proteus的Keil驱动,安装好驱动后,进入Keil界面进行设置,单击工具条中的按钮,在弹出的表单中单击选项卡,选择的组合框,在下拉菜单中选中“ProteusVSMSimulator”选项即可,如果是联机进行联调,还要在其后的按钮中进行适当的设置。之后在Proteus界面下单击菜单栏中的按钮,在下拉菜单选中即可,至此完成了联调的基本设置。图1.3在Keil中的联调的设置图1.4Proteus中的联调的设置4、在KeilC51系统中运行、调试程序,在Proteus系统中检查输出结果,如图1.5所示。延时时间的计算:执行一条DJNZRn,rel指令需要两个机器周期,因此只要计算出执行了多少该指令并结合计算其它处于延时程序中的各条指令的执行次数和周期数,就可以计算出延时程序的延时时间。每个机器周期为12个时钟周期,结合晶振的周期就可以较精确的计算出延时时间。图1.5联调结果五、思考题:1、总结Proteus系统的使用特点;2、给实验源程序加上注释。3、总结利用Proteus系统和KeilC51系统进行联机调试的电路设计过程。实验二程序存储器与数据存储器扩展实验一、实验目的1.学习程序存储器的电路的扩展原理。2.学习数据存储器的电路的扩展原理。3.掌握利用Proteus软件和Keil联合仿真调试的操作。二、实验仪器计算机一台、Proteus软件三、实验内容在8051单片机外部扩展8KBRAM芯片6264,其地址范围为0000H~1FFFH,将一些特殊常数信息(如图片数据等)存放在单片机内ROM从1000H地址开始的地方,程序运行时将ROM中从1000H地址开始的内容转存到外部RAM中。ORG0000HMOVDPTR,#1000HMOVR7,#0LP:MOVA,#0MOVCA,@A+DPTRMOVX@DPTR,AINCDPTRDJNZR7,LPSJMP$ORG1000HDB0f0H,0f8H,0cH,0c4H,0cH,0f8H,0f0H,00H,03H,07H,0cH,08H,0cH,07H,03H,00HDB00H,10H,18H,0fcH,0fcH,00H,00H,00H,00H,08H,08H,0fH,0fH,08H,08H,00HDB08H,0cH,84H,0c4H,64H,3cH,18H,00H,0eH,0fH,09H,08H,08H,0cH,0cH,00HDB08H,0cH,44H,44H,44H,0fcH,0b8H,00H,04H,0cH,08H,08H,08H,0fH,07H,00HDB0c0H,0e0H,0b0H,98H,0fcH,0fcH,80H,00H,00H,00H,00H,08H,0fH,0fH,08H,00HDB7cH,7cH,44H,44H,44H,0c4H,84H,00H,04H,0cH,08H,08H,08H,0fH,07H,00HDB0f0H,0f8H,4cH,44H,44H,0c0H,80H,00H,07H,0fH,08H,08H,08H,0fH,07H,00HDB0cH,0cH,04H,84H,0c4H,7cH,3cH,00H,00H,00H,0fH,0fH,00H,00H,00H,00HDB0b8H,0fcH,44H,44H,44H,0fcH,0b8H,00H,07H,0fH,08H,08H,08H,0fH,07H,00HDB38H,7cH,44H,44H,44H,0fcH,0f8H,00H,00H,08H,08H,08H,0cH,07H,03H,00HDB00H,00H,00H,30H,30H,00H,00H,00H,00H,00H,00H,06H,06H,00H,00H,00HDB00H,00H,00H,30H,30H,00H,00H,00H,00H,00H,08H,0eH,06H,00H,00H,00HDB00H,80H,0c0H,60H,30H,18H,08H,00H,00H,00H,01H,03H,06H,0cH,08H,00HDB00H,20H,20H,20H,20H,20H,20H,00H,00H,01H,01H,01H,01H,01H,01H,00HDB00H,08H,18H,30H,60H,0c0H,80H,00H,00H,08H,0cH,06H,03H,01H,00H,00HDB18H,1cH,04H,0c4H,0e4H,3cH,18H,00H,00H,00H,00H,0dH,0dH,00H,00H,00HEND四、实验步骤1、进入Proteus系统,画出实验电路图;2、进入KeilC51软件的操作环境,编辑源程序并对源文件进行编译;3、对Proteus系统和KeilC51系统进行联机调试并保存调试结果(利用软件抓图)。五、思考题:1、程序存储器与数据存储器进行扩展扩展时有何异同?2、画出程序流程图。3、程序执行后6264中的内容是什么?实验三并行IO口扩展实验1.实验目的通过实验掌握8255扩展I/O口的方法。进一步学习了解8255可编程芯片的结构及编程方法,要求编程实现8255的PA、PB和PC口的输入输出。2.实验设备微机1台、PROTEUS软件3.实验线路及实验原理8255的片选信号CS连到8051的P2.7,端口地址选择信号A1、A2由P2.1、P2.0提供。该电路中8255的PA、PB、PC以及控制口的地址分别为7CFFH、7DFFH、7EFFH、7FFFH。编程实现8255的PA口按方式0输出,PB口按方式0输入,将PB口外接8个开关的状态通过PA口外接的LED灯反映出来。4.实验内容复习思考题1若要求用8255的PB口作输出,PA口作输入,应如何修改实验程序?2利用8255的方式1可实现与单片机的查询或中断方式接口,设计一个通过查询8255的PC1(IBFB)和PC7(OBFA)实现从PB口输入,从PA口输出的实验程序。3如果需要采用8255的PC7输出连续方波,如何利用PC口的置位/复位控制命令来实现?ORG0000HPORTAEQU7CFFH;A口PORTBEQU7DFFH;B口PORTCEQU7EFFH;C口CADDREQU7FFFH;控制字地址SJMPSTARTORG0030HSTART:MOVA,#82H;方式0,PA,PC输出,PB输入MOVDPTR,#CADDRMOVX@DPTR,Aloop:MOVDPTR,#PORTBMOVXA,@DPTR;读入B口MOVDPTR,#PORTAMOVX@DPTR,A;输出到A口LCALLDELAYLJMPloopDELAY:MOVR6,#0DELAY1:MOVR7,#0DELAY2:DJNZR7,DELAY2DJNZR6,DELAY1RETEND实验四I2C总线扩展实验采用8051单片机的P1.6和P1.7作为I2C总线的SCL和SDA,扩展一片24C02存储器,用软件模拟方式实现I2C总线操作时序,向24C02内部从00H开始的字节中写入16个数据。ACKBIT10H;应答标志位SLADATA50H;器件地址字SUBADATA51H;器件子地址NUMBYTEDATA52H;读/写字节数SDABITP1.7SCLBITP1.6;I2C总线定义MTDEQU30H;发送数据缓存区首地址(30H-3FH)MRDEQU40H;接收数据缓存区首地址(40H-4FH)ORG0000HAJMPMAINORG0030H;*********************************************************************;名称:IWRNBYTE;描述:向器件指定子地址写N个数据;入口参数:器件地址字SLA,子地址SUBA,发送数据缓冲区MTD,发送字节数NUMBYTE;*********************************************************************IWRNBYTE:MOVR3,NUMBYTELCALLSTART;启动总线MOVA,SLALCALLWRBYTE;发送器件地址字LCALLCACKJNBACK,RETWRN;无应答则退出MOVA,SUBA;指定子地址LCALLWRBYTELCALLCACKMOVR1,#MTDWRDA:MOVA,@R1LCALLWRBYTE;开始写入数据LCALLCACKJNBACK,IWRNBYTEINCR1DJNZR3,WRDA;判断是否写完RETWRN:LCALLSTOPRET;**