智能仪器实验指导(PROTEUS仿真)_第1页
智能仪器实验指导(PROTEUS仿真)_第2页
智能仪器实验指导(PROTEUS仿真)_第3页
智能仪器实验指导(PROTEUS仿真)_第4页
智能仪器实验指导(PROTEUS仿真)_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一智能仪器设计集成环境介绍一、实验目的1. 掌握利用proteus仿真平台进行电路设计的基木操作。2. 掌握利用proteus软件和keil联合仿真调试的操作。二、实验仪器计算机一台、proteus软件三、实验内容proteus isis是英国labcenter electronics公司开发的eda软件。单片机是现代电子 技术的新兴领域,它的出现极大地推动了电子工业的发展,已成为电子系统 设计屮最为普遍的应用手段。近年来单片机技术得到了突飞猛进的发展,各 种单片机开发工具层出不穷。虚拟仿真就是近年來兴起的一种新型应用技术, 采用虚拟仿真技术,在原理图设计阶段就可以对单片机应用设计进行评估

2、, 验证所设计电路是否达到所要求的技术指标,还可以通过改变元器件参数使 整个电路性能达到最优化。这样就无须多次购买元器件及制作印刷电路板, 节省了设计吋间与经费,提高了设计效率与质量。英国labcenter公司推出的proteus软件是一款极好的单片机应用开发平 台,它以其特有的虚拟仿真技术很好地解决了单片机及其外围电路的设计和 协同仿真问题,可以在没冇单片机实际硬件的条件下,利用pc以虚拟仿真方 式实现单片机系统的软、硕件同步仿真调试,使单片机应用系统设计变得简 单容易。proteus软件涵盖了 pic、avr、mcs805k 68hc11. arm等微处理器 模型,以及多种常用电子元器件,

3、包括74系列、cmos 4000系列集成电路、 a/d和d/a转换器、键盘、lcd显示器、led显示器,还提供示波器、逻辑分 析仪、通信终端、电压/电流表、12c/sp1终端等各种虚拟仪表,这些都可以 直接用于仿真设计,极大地提高了设计效率和设计水平。下面以一个“完成 每隔1秒钟接在p1 口的八个发光二极管循环闪亮”例子来说明实验过程。 实验硬件屯路(如图1.1所示):18293031u1>xtal1xtal2rstpsen ale ea5678p1.0/t2 p1.1/t2ex p1.2 p1.3p1.4p1.5p1.6p1.7p0.0/ad0p0.1/ad1p0.2/ad2p0.3/

4、ad3p0.4/ad4p0.5/ad5p0.6/ad6p0.7/ad7p2.0/a8p2.1/a9 p2.2/a10 p2.3/a11 p2.4/a12 p2.5/a13p2.6/a14p2.7/a15p3.0/rxdp3.1/txdp3.2/int0p3.3/inttp3.4/t0p3.5/t1p3.6/wrp3.7/rd3938373635343332_ 21222324252627281077121314151617vcc rp1respack-8cm96寸at89c52program二d:users'msh我的文keilfileledtestle( test.he:;图1硬件电

5、路图源程序:org0000humpstartorg0030hstart: mova,#0fehloop: movpl,amovrl,#10dle1: movr2,#200dle2: movr3,#126dle3: djnzr3, dle3djnzr2, dle2djnzr1,dle1rl aumploopend四、实验步骤1 进入proteus系统,画岀实验电路图;2、进入keil c51软件的操作环境,编辑源程序并对源文件进行编译; 编译如图1.2所示:proteus pvision4file £dit yiew project flash rebug peripherals to

6、ols jvcs window helpn (冋 h target 1get 1/ 園 proteus.a$msource group 1丸 proteus.asmorg 0000hstart:mov a.tofehloop:mov plfamov rlr#10dle1:mov r2,#200dle2:mov r3,#126dle3:djnzr3rdle3djnzr2,dle2djnzrlrrl adle1ljmploopend01020304050607080910111213sopr.的b i o4 e图1.2编译3、对proteus系统和keil c51系统进行联机设置,如图1.3、1.

7、4所示; 联机设置:首先要安装proteus的keil骡动,安装好骡动后,进入keil界面进行设置,单击工具条屮的点按钮,在弹出的表单屮单击i呎吨|选项卡,选择“ use: poteuswsmdlator f的组合框,在下拉菜单屮选屮 u proteus vsmsimulator"选项即可,如杲是联机进行联调,还耍在其后的上也j按钮中进行适当的设置。之后在proteus界面下单击菜单栏中的业切按钮,在下拉菜单选中丫 use remote debug monitor即可,至此完成了联调的基本设置。图1.3在keil中的联调的设置protues isis professional旧田1*

8、1+2匡1鈴羽丨圖宙團岛1囱1岡file view edit tools design graph sourcestart/restart debuggingpause animationi stop animationctri+f12pauseshift+pausepl devices确 executef12execute without breakpoints alt+f12execute for specified timeat89c52buttoncap-elec crystal led-8argraph-red led-yellow minres1ix polypr022p resp

9、ack-8兒 step ovei 鸟 step into 0 step out 呼 step toanimatef10fllctrl + floalt+fllreset popup windowsreset persistent model data * configure diagnostics.v use remote debug monitors tile horizontally rri tile vertically1 1 ! 1 ii r o no messagesroot sheet 1ii图1.4 proteus中的联调的设置4、在keilc51系统中运行、调试程序,在prot

10、eus系统中检查输出结果,如 图1.5所示。延时时间的计算:执行一条djnz rn,rel指令需要两个机器周期,因此只要计算岀执行了 多少该指令并结合计算其它处于延吋程序屮的各条指令的执行次数和周 期数,就可以计算出延时程序的延吋时间。每个机器周期为12个时钟周 期,结合晶振的周期就可以较精确的计算出延时时间。也 proteu% - pviuon4di* £<jit %tw £rc<1 fl>$hpttqme” loots svc5 弐 0dow ijtlpe protues - isis profeonal (animating)file view ed

11、it took design graph source debug library template system helprp1<t©j>re5p/g书2>心” 04n»sgs0 7mb7o° s 一 .丿/9<-ikn zzaa 您*/a.tofzh'4omr3r dle3i3 preset i s resistect |i cuhuxcull" i ! i il) o331 d0x07otco oicoorfixohiojidptr pc $5«cs psvmovmovmov01c3/ 勺 p<ott

12、us$mr2, dlk2rlr dle1start: loop: v跳:0x0000"fk3: loop: mov0x0002f590vdm51 target lnlciallzcd.load "d:usersmsift的文档kedb«xakt»r2: start: movmovar#0xfepl,ar2,200movr2,tt2con(oxc8)r3/i126movr3z#0x7ev*> htve a邸ro rlr2r3 rgr5rs rt £ sy、oxco orfo oico oico oico oico oico oico0x00

13、04790a5: dle1:mov0x00067ac86: dle2:movoxooob7b7e> ryq nt*»7pl(0x90),a r1.#1o rlztoxoadle1:dle2:dle3: djnzojnz djnz moro 3000mmov artofhhmov pl,amov rlr#10mov r2.i200mov r3*26at89c52buttoncapeleccrystalled 砂 g心即fed i ed yellowasm assign breakdiaablc brealtenablevccan g p2 z>1£* pl.nah

14、 w 4*a12 pj a13 p2 cvam p2 7:m阳mr n toxn p):/w pi mpfpj "tv w !/ti 円0脈 p3 7廠|j11d trwl port al :帕 3 okoq goxob elsnec: -vdm 场如c=cocc|图1.5联调结果五、思考题:1、总结proteus系统的使用特点;2、给实验源程序加上注释。3、总结利用proteus系统和keilc51系统进行联机调试的电路设计过程。实验二程序存储器与数据存储器扩展实验一、实验目的1. 学习程序存储器的电路的扩展原理。2. 学习数据存储器的电路的扩展原理。3. 掌握利用proteus软

15、件和keil联合仿真调试的操作。二、实验仪器计算机一台、proteus软件三、实验内容在8051单片机外部扩展8kb ram芯片6264,其地址范围为0000h1fffh,将一些 特殊常数信息(如图片数据等)存放在单片机内rom从1000h地址开始的地方,程序运行时 将rom屮从1000h地址开始的内容转存到外部ram屮。<tex"u1>xtal1poofadodh 1 /af*k4xtal2ru uau1p0 2/ad2 p0.3/ad3 p0.4/ad4rstp0 5/ad5p0g/ad6p0.7/ad7p2.0/a8p2 1/a9p2 2/a10psen ale e

16、ap2 3/a11 p24/a12p2 5/a13p2.6/a14p2 7/a15p1.0p3.0/pxdp1.1p3 vtxddq oaxltflkip1.3ko.z/ww 1 up3.34?intp14 p1 5p34/t0 p3 5ep1.6p1.7p3 6awp37/rd305138d1z37%西卩3,353433?2a8,22a9r23aiy24切?5a12390010n77151617d2巨05 14d6 17p7 1£262720u211u3oo 01d2d3d405d6d774ls3732 ao5匚竝12ka0 idaly a19a3/ a3.a /p - 7 kao

17、/ ab 19a7> a7163 25ka10 2123.s.a172a20262722a0 aldo dia2d2a3d3m04asd5a6d6a7a8a9 a10 a11 al 2ce cs we oed76264 <tcxt>11?亘121617pg did2£3£5d6d7plidevices27c6474hc373 74ls373 80c51 80c52 2764 6264 8255a at89c51rd2.bus at89c52 crystal hitemp10u507 led-yellow minres10k motor-bistepper

18、motor-dc motor-stepper phyc0402np022p sw-spst sw-spst-mom switchu ln 200恥org 0000hmov dptr,#l000hmov r7,#0lp: mov a,#0movca,a+dptrmovx dptr,ainc dptrdjnz r7,lpsjmpsorg i000hdb ofoh, of8h, och, 0c4h, och, of8h, ofoh, ooh, 03h, 07h, och, osh, och, 07h, 03h, oohdb ooh, 1oh, 18h, ofch, ofch, (x)h, ooh,

19、ooh, ooh, osh, osh, ofh, ofh, osh, osh, oohdb o8h, och, 84h, 0c4h, 64h, 3ch, 18h, ooh, och, ofh, 09h, o8h, osh, och, och, oohdb o8h, och, 44h, 44h, 44h, ofch, ob8h, ooh, 04h, och, o8h, o8h, o8h, ofh, o7h, oohdb ocoh, oeoh, oboh, 98h, ofch, ofch, 8oh, ooh, ooh, ooh, ooh, o8h, ofh, ofh, o8h, oohdb 7ch

20、, 7ch, 44h, 44h, 44h, 0c4h, 84h, ooh, 04h, och, o8h, o8h, o8h, ofh, 07h, oohdb ofoh, of8h, 4ch, 44h, 44h, ocoh, 8oh, ooh, 07h, ofh, osh, osh, osh, ofh, 07h, oohdb och, och, 04h, 84h, 0c4h, 7ch, 3ch, (x)h, ooh, ooh, ofh, ofh, ooh, ooh, ooh, oohdb ob8h, ofch, 44h, 44h, 44h, ofch, ob8h, ooh, 07h, ofh,

21、o8h, o8h, osh, ofh, 07h, oohdb 38h, 7ch, 44h, 44h, 44h, ofch, of8h, ooh, ooh, o8h, o8h, o8h, och, 07h, o3h, oohdb ooh, ooh, ooh, 3oh, 3oh, ooh, ooh, ooh, ooh, ooh, ooh, 06h, 06h, ooh, ooh, oohdb ooh, ooh, ooh, 3oh, 3oh, ooh, ooh, ooh, ooh, ooh, osh, oeh, 06h, ooh, ooh, oohdb ooh, 8oh, ocoh, 60h, 3oh

22、, 18h, osh, ooh, ooh, ooh, o1h, o3h, 06h, och, osh, oohdb ooh, 20h, 20h, 20h, 20h, 20h, 20h, ooh, ooh, o1h, o1h, o1h, o1h, o1h, o1h, oohdb ooh, o8h, 18h, 3oh, 60h, ocoh, 8oh, ooh, ooh, o8h, och, 06h, o3h, o1h, ooh, oohdb 18h, ich, 04h, 0c4h, 0e4h, 3ch, 18h, ooh, ooh, ooh, ooh, odh, odh, ooh, ooh, oo

23、h end四、实验步骤1 进入proteus系统,画出实验电路图;2、进入keil c51软件的操作环境,编辑源程序并对源文件进行编译;3、对proteus系统和keil c51系统进行联机调试并保存调试结果(利用软件抓 图)。五、思考题:1、程序存储器与数据存储器进行扩展扩展时有何异同?2、画出程序流程图。3、程序执行后6264中的内容是什么?实验三 并行10 口扩展实验1 实验目的通过实验掌握8255扩展i/o 口的方法。进一步学习了解8255可编程芯片的结构及编程方法,耍求编程实现8255的pa、pb和pc 口的输入输岀。2. 实验设备微机1台、proteus软件3. 实验线路及实验原理

24、8255的片选信号西连到8051的p2.7,端口地址选择信号al、a2由p2.1、p2.0提供。该 电路中8255的pa、pb、pc以及控制口的地址分别为7cffh、7dffh、7effh、7fffh。编程实现8255的pa 口按方式0输出,pb 口按方式0输入,将pb 口外接8个开关的状态 通过pa 口外接的led灯反映出来。®f. r1d3:r leo-yellow <text>.%)d8co:isu2p2 0/a8 p21/a9 p2.2/a10 p2.3/a11 p2.4/a12 p2.s/a13 p2.6/a14 p2.7/a15393438*333732383

25、13530342933283227215p0.0/ad0 p0kad1 p0.2/ad2 p0 3/ad3 p0.4/ad4 p0.5<ads p0.6/ad6 p0.7/ad7:236二二二2835d0d1d2d3d4dsd6d7-rdwraoa1res_csq 彳.23.4s67 ppppppppp3.0jrxdp3.irrxop321mt0p3jmtt p3.4/t0 p3 5ff1p3.6aw_ p3.7/rd-wdm话 io31323345536701234567 papapapapapapapape阳阳阳阳pepepepcpcpcpcpcpcpcpclo21 k3-18 ko

26、20 k28255aat89c51 buttoncap cap-elec cap-pol crystal led-redled-yellow resswitch74074实验内容复习思考题1若要求用8255的pb 口作输出,pa 口作输入,应如何修改实验程序?2利用8255的方式1可实现与单片机的查询或中断方式接口,设计一个通过查询8255的 pcl(ibfb)和pc7(obfa)实现从pb 口输入,从pa 口输出的实验程序。3如果需要采用8255的pc7输出连续方波,如何利用pc 口的置位復位控制命令来实现?org0000hportaequ7cffh;a 口portbequ7dffh;b 口

27、portcequ7effh;c 口caddrequ7fffh;控制字地址sjmpstartorg0030hstart:mova,#82h;方式0,pa,pc输出,pb输入mov dptr,#caddrmovx dptr,aloop:movdptr,#portbmovxa, dptr;读入b 口movdptr,#portamovxdptr,a;输出到a 口lcall delayljmp loopdelay: mov r6,#0delay 1: mov r7,#0delay2:djnz r7,delay2djnz r6,delay 1retendu122pi gft>18crystal22p

28、110kc110u31u223aoscka1sdaa2wp65724c02 <text>12345678xxtal1p0.0/ad0p0.1/ad1ytal op0.2/ad2ona iru.o/auop0.4/ad4p0.5/ad5p0.6/ad6rstp0.7/ad7p2.0za8p2.1/a9p2.2/a10psenp2.3/a11alep2.4/a12eap2.5/a13p2.6/a14p2.7/a15p1.0p3.0/rxdp1.1p3.irrxdp1.2p3.2/int0p1.3p3.3/int1p1.4p3.4/t0p1.5p3.5/t1p1.6p3.6/wrp1.7

29、p3.7/rd8051 <text>383736353433322122232425262728101112131415161739实验四i2c总线扩展实验采用8051单片机的p1.6和p1.7作为i2c总线的scl和sda,扩展一片24c02存储器,用 软件模拟方式实现i2c总线操作时序,向24c02内部从00h开始的字节中写入16个数据。c3devices24c01c24c02c24c04a80c51at89c51.buscapcap-eleccrystalhitemp10u50vminres10kphyc0402np022presackbit 10h;应答标志位sladata

30、 50h;器件地址字subadata51h;器件子地址numbytedata52h;读/写字节数sdabit pl.7sclbit pl.6;i2c总线定义mtdequ30h泼送数据缓存区首地址(3oh-3fh)mrdequ40h;接收数据缓存区首地址(40h-4fh)org 0000hajmp mainorg 0030hvizvfz vlxkizviz vlxviz kizkizviz lxkizkiz vlx%l%l vlx %l vlx %t%l%t*r*r*r*r* 1*r*<c* *r*<c*<c* *r* 1*<c* *r*<c* *r*r* 1* *

31、?*?*?*r*?*;名称:iwrnbyte;描述:向器件指定了地址写n个数据;入口参数:器件地址字sla,子地址suba,发送数据缓冲区mtd,发送字节数numbyter| rj* rjw r| rjw r|*|* p r| rjw *|* p r|rjw rp*p rjr| rjw rj rjw r|rjw p rp rjw *p rjr| r rp p *|*r| r|%rj* r| rj%rj* rj rjwr| rj%r|lcallstartiwrnbyte: mov r3,numbyte;启动总线movlcalla,slawrbyte;发送器件地址字wrda:lcallcackjn

32、b ack,retwrnmovlcalllcallmovajsubawrbytecackr1 ,#mtdmov a,r1lcall wrbyte;无应答则退出;指定子地址;开始写入数据lcall cackjnb ackjwrnbyteincr1;判断是否写完djnz r3,wrdaretwrn:lcall stopret«x*打 *t*t* *t* *t* »twrtw <tw rtwrt* <tw rtwrt* »twrtw <tw rtwrt* <t» »tw rt* rtwrtw r »twrtw 9t

33、»t>j »twrt* »twrtw »tw rtw »t 9t9t% »t!>»tw !>»tw rtw »t;名称:irdnbyte;描述:从器件指定了地址读取n个数据;入口参数:器件地址字sla,子地址suba,接收数据缓存区mrd,接收字节数numbyte卜卜卜2b2丄丄 丄 匕” 丄匕卜 *1 丄 2<r*<r*<t*w<r»<r*irdnbyte: movr3,numbytelcallstartmova,slalcallwrbyte;发

34、送器件地址字lcallcackjnb ackretrdnmova,suba;指定子地址lcallwrbytelcallcacklcallstart;重新启动总线mova,slainca;准备进行读操作lcallwrbytelcallcackjnb ackjrdnbytemov r1,#mrdroni:lcall rdbyte;读操作开始mov r1,adjnz r3,sacklcall mnack;最后一字节发非应答位retrdn:lcall stopsack:retlcall mack1ncr1sjmp roni r r| r rj* rjw r| r rjw % rj* rjw *|* p

35、 r| rjw *|* p r| r rjw p rp j* r| p *p <j* rj p r| rjw rj rjw r| r rjw p rp j* rjw p *p <j* rj p r| r rp p *|* p r r| r|% rj* r| rj% rj* rj rjw r r| rj% r r| ,;名称:strrt;描述:启动i2c总线子程序一发送i2c总线起始条件<1>卜卜b卜 卜b 上卜丄b *1*丄 匕丄 *1*b<r*<r*<t*w<r»<r*start:setb sda;发送起始条件数据信号nop;起

36、始条件建立时间人于4.7ussetb scl;发送起始条件的时钟信号nopnopnopnopnopclrnopnopnopsda;起始条件锁定时间大于4.7us ;发送起始信号nop;起始条件锁定时间大于4.7usclrscl;钳住i2c总线,准备发送或接收数据nopret r| r rjw r|* rjw *|* <j* *p p r| ej rj* p r| r rjw r|* r| p r| rjw r| p r| ejw rj rjw r| r rjw p r|* rj p r| rjw r| p r| r rp p *|* r| rj% rj* r| rjw rj* rj rj

37、w r r| rj% r| ,;名称:stop;描述:停止i2c总线子程序一发送i2c总线停止条件lf *a*1%£>%£> <j %£>£>%£>,stop:clr sda;发送停止条件的数据信号nopnopsetb scl;发送停止条件的时钟信号nopnopnopnopnop;起始条件建立时间大于4.7ussetb sdanopnopnopnopnopret;发送i2c总线停止信号;延迟时间大于4.7us;名称:mack;描述:发送应答信号了程序«x*打 *t* *t* *t* *t* 

38、7;tw rtw <tw rtw rt* <tw rtw rt* »tw rtw <tw rtw rt* <t» »tw rt* rtw rtw r »tw rtw 9t »t> j »tw rt* »tw rtw »tw rtw »t 9t 9t% »t!> »tw !> »tw rtw »tmack:clrsda;将 sda 置 0nopnopsetb sclnopnopnopnopnop;保持数据时间,人于4.7usc

39、lrsclnopnopret卜卜b卜 卜 b 上卜丄b *1* 丄 匕丄b<r*<r*<t*w<r»<r*,;名称:mnack;描述:发送非应答信号子程序 <p <p rj% rji 7 r|% rj% rj% rji rj%rp rp rj% rjr|%r|* rp rj* rj rj*r|% rp rj% rj% rp rji rji rj% rj% rji rj% rj% rp rji rji rp rji9mnack:setb sda;将 sda g 1nopnopsetb sclnopnopnopnopnopclrscl;保持数据时

40、间,大于4.7usnopnopret r| r rj* rjw r| r rjw rj* rjw *|* p r| rjw *|* p r| r rjw rp r| *p rj r| rjw rj rjw r| r rjw p rp rjw *p rj r| r rp p *|*r| r|% rj* r| rj% rj* rj rjw r r| rj%r|,;名称:cack;描述:检查应答位子程序,返回值:ack=1时表示有应答cack:setb sdanopnopsetb sclclracknopnopmov c,sdajc cendsetb ack;判断应答位cend:nopclrscln

41、opret1>*x*打 *t*t* *t* *t* »twrtw <tw rtwrt* <tw rtwrt* »twrtw <tw rtwrt* <tw »twrt* »tw 91% rtw r rtwrtw r »t>rt* <tw »tw rt* »twrtw rtw »t t%9t% »twt% »t>»tw !>rtw »t,;名称:wrbyte;描述:发送字节子程序,字节数据放入acc上 *1上 士上 上 上 %

42、! 上上 士土 上 上上 %!上土上上 士上士士#t z?#t* z? #t#tv#t* z? #t#t*#t* 7 t%#tv t% 7 #t* z? t%t%#t* 7 t%#t* z? #t#t #v*#twrbyte:movr0,#08hwlp:rlca;取数据位jcwrisjmp wro;判断数据位wlp1:djnz r0,wlpnopretwri:setb sda;发送 1nopsetb sclnopnopnopnopnopclrsclsjmp wlp1wro:clrsda;发送 0nopsetb sclnopnopnopnopnopclrsclsjmp wlp1rj% rp rj

43、% rj% rj%rp rp rj% rjr|%r|* rp rj* rj rj*r|% rp rj% rj% rp rji rji rj% rj% rji rj% rj% rp rji rji rp rji9;名称:rdbyte;描述:读取字节了程序,读出的数据存放在acc«x*打 *t* *t* *t* *t* *t* »twrtw <tw rtwrt* <tw rtwrt* »twrtw <tw rtwrt* <t» »twrt* rtwrtw r »twrtw 9t »t>j »

44、;twrt* »twrtw »tw rtw »t 9t9t% »t!>»tw !> »tw rtw »trdbyte:mov r0,#08hrlp:setb sdanopsetb scl;时钟线为高,接收数据位nopnopmov c,sda;读取数据位mov a,r2clrscl;将scl拉低,吋间大于4.7usrlca;进行数据位的处理mov r2,anopnopnopdjnzretrorlp;未够8位,继续读入main:mov r4,#()f0h涎时,等待其它芯片复位完成djnzr4,$;发送数据缓存区初始化

45、,将16个连续字节分别赋值为00h到0fhmova,#00hmovr0,#30hs1:movr0,ainc roincacjne r0,#40h,sl;向24c02c中写数据,数据存放在24c02c中50h开始的16个字节中movsla,#0a0h;24c02c地址字,写操作movsuba,#50h;目标地址movnumbyte,#! 6;字节数lcalliwrnbyte泻数据delay:mov r5,#20d1:movr6,#248d2:movr7,#248djnzr7,$djnzr6,d2djnzr5,d1;从24c04c屮读数据,数据送at89c51屮40h开始的16个字节中movsla

46、,#0a0h ;24c02c地址字,伪写入操作movsuba,#50h ;目标地址mov numbyte,#16;字节数lcall irdnbyte ;读数据sjmp $end实验五dac接i i实验采用dac0832和单片机8051连接实现波形发生器电路,为了识别按键,对8051单片机的 外部中断into进行扩展,可通过不同的按键产生阶梯波、三角波、方波和正弦波。c2c3 crystal22p.r310kc1i10u g 3+>xtal1hj uralxjmjp0 2/ad2p0 3/ad3p0 4/ad4p0 5/ad5p0 6/ac6p0 7/ad7xtal2nsipsen ale

47、 eaf2.o/a8f2.uas p2 2za10 p2.3am1 p2.4/a12 p2.&a13p2.6/a14p2.7/a15n/np3cvrxd p3.1axdhl urlz p1.1/t2expl .2 p1.3 a ap3 2/intup3 34nftp3.4/top35/t1p3 6a*vpp3 7;rdrl.4p15cq opl .6pi 7u2 8051 *丄 r±dacc632母vcc ile(byi/by5) 葩d14dsdsdi7 i0ut2 0ut12019jf盗1514-u3阶梯渡: 三角渋: 方波: 正弦海:hqi devices74ls0474

48、ls18 74ls21.dm 80c32741battery buttoncounter 8 crystaldac0832 hitemp10u507 minres10k motordc opampphyc0402np022ppotpot-logres resistor vsource74ls0474ls1874ls21mov dptr,#7fffhorg 0000hstart: ljmp main org 0003h ljmp inser org 0030hmain:;外部中断入口;转到中断服务程序;daco832 地址setb exosetb itosetb eahere: jb 2()h.

49、(),st jb 20h,tri jb 20h.2,sq jb 20h.3,sin sjmp here;允许中断;负边沿触发方式;开中断;阶梯波处理;三角波处理;方波处理;正弦波处理;等待中断inser: jnbp1.0, ll1sjmpl1ll1:mov 20h,#00hsetb 20h.0sjmp rtli:jnb p1.2, ll2sjmp l2ll2:mov 20h,#00hsetb 2oh. 1sjmp rtl2:jnbp1.4,ll3sjmp l3ll3:mov 20h,#00hsetb 20h.2sjmp rt;屮断服务程序,查询按键;设置阶梯波标志;设三角梯波标志;设置方波标志

50、l3:jnbp1.6, ll4sjmp rtll4:mov 20h,#00hsetb 20h.3;设置正弦波标志rt:reti;中断返回st:mova,#00h;阶梯波loopp: movxdptr,a;启动d/a转换incajb20h.o,loopp;连续输出波形ljmpheretri:mova,#00h;三角波up:movxdptr,a;启动d/a转换inca;上升沿cjnea,#0ffh,updown:movx dptr,a;启动d/a转换deca;下降沿cjnea,#ooh,downjb20h.1, up;连续输小波形ljmpheresq:mova,#o()h;方波movxdptr,a:dac输岀低电平acalldelay涎时1mova,#0ffhmovxdptr,a;dac输出高电平acalldelay涎时2jb 20h.2, sq;连续输出波形ljmp heresin:mov dptr,#sintab;正弦波mov r0,#6dhloop:clr amovca,a+dptrmov r0,ainc dptrinc rocjne r(),#8()h,loopmov dp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论