proteus单片机pcbarm实验报告rbt.docx
《proteus单片机pcbarm实验报告rbt.docx》由会员分享,可在线阅读,更多相关《proteus单片机pcbarm实验报告rbt.docx(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 目录实验一、单单片机间间的多机机通信00实验二、I2C总线应用技术8实验三、层层次原理理图设计计12实验四、元元件封装装的创建建15实验五、自自动布局局17实验六、开开关控制制LEDD21实验七、中中断计数数器244实验八、UART29实验一、单单片机间间的多机机通信(1) 实验题目目采用C语语言实现现单片机机间的多多机通信信。实现内容容:三个个51单单片机进进行多机机通信。一一个单片片机用于于温度的的采集(可可采用可可变电阻阻模拟温温度值),一一个单片片机用于于控制88个LEED灯循循环显示示,显示示的时间间间隔从从主机中中获得,主主机用于于发送温温度的大大小值及及循环显显示的时时间给从从
2、机。(2) 实验目的的l 掌握prroteeus和和软件环环境keiilC的的联机调调试过程程l 掌握基于于ARMM cc编程基基础(3) 实验设备备1.Prroteeus 8 PProffesssionnal 仿真开开发环境境;2.Keeil uViisioon4(4) 实验步骤骤 1.11打开PProtteuss 8,选选择issis绘绘制电路路图,点点击p添添加元件件AT889C551, BUTTTONN, CCAP, CAAP-EELECC, CCRYSSTALL, RRES.1.2绘绘制电路路图如图图所示:2.1打打开Keeil uViisioon5,neww prrojeect和和
3、neww fiile 2.2编编写代码码:(cc语言)/*实验一一*主机*发送循循环显示示时间和和温度值值给从机机*/#inccludde#inccludde#deffinee _SSUCCC_ 0xx0f/数据据传送成成功#deffinee _EERR_0xff0/数据传传送失败败#deffinee uccharr unnsiggnedd chhar#deffinee uiint unnsiggnedd inntuintt Tiime=0,11,2,3,44,5,6,77;/循循环显示示时间间间隔(ss)uintt T = 22,33,66,77,88,99;sbitt KEEY1=P33;
4、sbitt KEEY2=P35;uchaar ccounnt =0;/延时时1mss函数voidd deelayy_1mms(uuintt t) uinnt yy; whiile(t-)forr(y=1100;y0;yy-);/串口口初始化化函数voidd seeriaal_iinitt() TMOOD=00x200; /定时时器1工工作于方方式2 TH11=0xxfd; TL11=0xxfd; /波特率率为96600 PCOON=00; SCOON=00xd00;/串串口工作作于方式式3 TR11=1;/开开启定时时器 TI=0; RI=0;/发送送数据函函数voidd SEEND_datt
5、a(uuintt *BBufff) TI=0; /发送数数据长度度 TB88=0;/发发送数据据帧 P2 = BBufffcoountt; SBUUF=BBufffcoountt; whiile(!TII); TI=0; couunt+; couunt=couunt%5;/向指指定从机机地址发发送数据据voidd ADDDR_datta(uuchaar aaddrr, uuintt *BBufff)uchhar temmp=00xfff; whiile(temmp!=adddr) /主主机等待待从机返返回其地地址作为为应答信信号 TI=0;/发发送从机机地址TB88=1;/发发送地址址帧SBU
6、UF=aaddrr;whiile(!TII);TI=0; RI=0;whiile(!RII);temmp=SSBUFF;RI=0; SENND_ddataa(Buuff); /maain函函数voidd maain() serriall_innit(); whiile(1) if(KEYY1=0) deelayy_1mms(55); iff(KEEY1=0) whhilee(!KKEY11);ADDDR_datta(00x011,Tiime); if(KEYY2=0) deelayy_1mms(55); iff(KEEY2=0) whhilee(!KKEY22);ADDDR_datta(00x
7、022,T); /*实验一一*从机11*接收主主机发送送的温度度值*/#inccludde#inccludde#inccludde#deffinee adddr 0xx02/从机机2的地地址#deffinee _SSUCCC_ 0xx0f/数据据传送成成功#deffinee _EERR_ 0xxf0/数据据传送失失败#deffinee uiint unssignned intt #deffinee uccharr unnsiggnedd chharunsiigneed ccharr Buuff20;/数据缓缓冲区uchaar fflagg = 0; /请请求标志志sbiit ccs = P11
8、0;sbiit cclk = PP111;sbiit ddio = PP122;/串口口初始化化函数voidd seeriaal_iinitt() TMOOD=00x200; /定时时器1工工作于方方式2 TH11=0xxfd; TL11=0xxfd; /波特率率为96600 PCOON=00; SCOON=00xd00; /串串口工作作于方式式3 TR11=1; /开启启定时器器 TI=0; RI=0;/-/延时时/-voidd deelayy(uiint x )uinnt ii;whiile(x-) ffor(i = 0;i 1200; ii+);/-/得到到ad转转结果/-uchaar
9、gget_ad_ressultt() uchhar i,ddat11 = 0,ddat22 = 0;cs = 00;clkk=0;dioo = 1;_noop_();_nopp_();clkk = 1;_noop_();_nopp_();clkk = 0;ddio = 11;_noop_();_nopp_();clkk = 1;_noop_();_nopp_();clkk=0 ;diio = 0;_noop_();_nopp_();clkk=1 ;diio = 1;_noop_();_nopp_();clkk=0;dioo = 1;_noop_();_nopp_();forr(i= 0;i88
10、;i+) cclk=1;_noop_();_nopp_();cllk=00;_noop_();_nopp_();daat1 = ddat1111|diio;forr(i= 0;i88;i+)daat2 = ddat22 |(uccharr)(ddio)ii); cclk=1;_noop_();_nopp_();cllk=00;_noop_();_nopp_();cs =1;retturnn (ddat11 = daat2)? ddat11:0;/-/主函函数/-voidd maain()uintt i = 00 ,jj=0;uchhar temmp = 0,temmp2 = 00;uchhar
11、 aa = 00xfff; serriall_innit(); whiile(1) SMM2 = 1; /接收收地址帧帧 aaa = 0xfff; whhilee(aaa!=aaddrr) /从从机等待待主机请请求自己己的地址址 RII=0; whhilee(!RRI)temmp = geet_aad_rresuult();/温度度采集结结果if(temmp != ttempp2)P2 = ttempp;temmp2 = ttempp; aaa=SBBUF; RII=0; TII=0; /一旦旦被请求求,从机机返回自自己地址址作为应应答,等等待接收收数据 TBB8=00; SBBUF=addd
12、r; whhilee(!TTI); TII=0; SMM2=00; /接收数数据帧RI=0; whhilee(!RRI); Buuffi=SBUUF; /数据帧帧 RII=0; P2 = BBufffi;/查看接接收到的的数据/*实验一一*从机22*接收主主机发送送的循环环显示时时间*/#inccludde#inccludde#inccludde#deffinee adddr 0xx01/从机机2的地地址#deffinee _SSUCCC_ 0xx0f/数据据传送成成功#deffinee _EERR_ 0xxf0/数据据传送失失败#deffinee uiint unssignned intt
13、#deffinee uccharr unnsiggnedd chharuintt coode sTaablee=0,10,20,40,60,80,1000,1550;uintt Buuff20;/数据缓缓冲区uchaar llighht = 0xx00;uintt sppeedd = 0;uintt tccounnt = 0;/串口口初始化化函数voidd seeriaal_iinitt() TMOOD=00x200; /定时时器1工工作于方方式2 TH11=0xxfd; TL11=0xxfd; /波特率率为96600 PCOON=00; SCOON=00xd00; /串串口工作作于方式式3
14、TR11=1; /开启启定时器器 TI=0; RI=0;/-/延时时/-voidd T00_INNT() innterrruppt 11 if(tcoountt+ sspeeed) retturnn;tcoountt = 0;P1 = llighht;ligght = _crool_(ligght , 11);/-/主函函数/-voidd maain() uinnt ii = 0 ,j=00;uinnt mm; uchhar aa = 00xfff;seriial_iniit();IE = 00X822;TR00 = 1; whiile(1) SMM2=11; /接接收地址址帧aa=0xfff
15、; whhilee(aaa!=aaddrr) /从从机等待待主机请请求自己己的地址址 RII=0; whhilee(!RRI); aaa=SBBUF; RII=0; TII=0; /一旦旦被请求求,从机机返回自自己地址址作为应应答,等等待接收收数据 TBB8=00; SBBUF=adddr; whhilee(!TTI); TII=0; SMM2=00; /接收数数据帧RI=0; whhilee(!RRI); m=SBUUF; /数据帧帧 RII=0; speeed = ssTabblem; P22=m; /查查看接收收到的数数据ligght = 00x011; 2.3ccomppilee fi
16、ile,生生成 .HEXX文件(5) 实验小结结本次实验验,实验二、II2C总总线应用用技术(1) 实验题目目实验题目目:采用用C语言言完成II2C的的通信。实现内容容:放置置两个II2C芯芯片,一一个是224C001存储储器,一一个是224C002,分分别向两两个芯片片中写入入0116,117333。然然后读出出相加并并将值写写入单片片机相关关单元。(2) 实验目的的l 掌握prroteeus和和软件环环境keiilC的的联机调调试过程程(3) 实验设备备1.Prroteeus 8 PProffesssionnal 仿真开开发环境境;2.Keeil uViisioon5(4) 实验步骤骤 1
17、.11打开PProtteuss 8,选选择issis绘绘制电路路图,点点击p添添加元件件AT889C551, BUTTTONN, CCAP, CAAP-EELECC, CCRYSSTALL, RRES.1.2绘绘制电路路图如图图所示:2.1打打开Keeil uViisioon5,nnew proojecct和nnew fille 2.2编编写代码码:(cc语言)/-/实验验二、I22C总线线应用技技术/采用用C语言完成成I2CC的通信信。/实现现内容:放置两两个I22C芯片片,一个个是24CC01存存储器,一一个是24CC02,/分别别向两个芯片片中写入0116,117333。然然后读出相加加
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- proteus 单片机 pcbarm 实验 报告 rbt
限制150内