资源描述:
《自动化专业讲义.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验一单片机开发环境的熟悉实验一、实验目的认识单片机开发的软硬件工具,了解单片机开发的一般流程,为以后的实验和开发奠定基础。二、实验设备1.单片机仿真器MICETEKEASYPROBE8052F及单片机集成开发软件CodeCruiserfor512.51单片机核心卡3.发光二极管阵列模块三、实验要求将单片机核心卡的P0口和一列发光二极管阵列相连接,使得8个发光二极管依次被点亮并且不断循环四、实验步骤1.实验连线示例如下图:2.连接仿真头和8051单片机核心卡,注意仿真头的方向要和芯片座一致。3.打开MC1000的电
2、源,运行StartupConfigurationfor51,初始设置仿真器。各种设置如下图示例,请注意目标CPU为80c52P0,P2asIO,并注意左下角的提示信息。如果显示连接硬件失败,请检查仿真器的连接。如需要改变仿真器设置,请参看其使用手册。4.启动CodeCruiserfor51,通过菜单[选项/路径设置/编译器]设置编译器的路径,请指向您选用的编译器路径。5.通过菜单[文件/新建]新建一个源文件,如下图6.编写好程序后,通过[菜单项目/编译]点击下图中鼠标所指按钮编译/连接写好的程序。7.如果没有语法错
3、误,可以点击下图鼠标所指的按钮用来启动测试器。8.然后点击下图中鼠标所指按钮将编译连接生成的文件下载到仿真器。9.点击下图鼠标所指的按钮。仿真运行,观察结果,看程序的功能是否和预想的相同。如果发现程序的功能不对,就需要对程序进行除错,可以自己仔细分析;也可以借助CodeCruiserfor51的单步、寄存器观察、变量观察、断点等功能协助分析,有关这些功能的使用,请参看仿真器使用手册。五、实验程序#include#include#defineint8uunsignedchar#
4、defineint16uunsignedintvoidDelayms(int16ums);voidmain(void){P1=0xfe;while(1){P1=_crol_(P1,1);Delayms(500);}}voidDelayms(int16ums){int8ui,j;for(i=ms;i>0;i--)for(j=112;j>0;j--);}六、思考题1.若让流水灯反向循环,如何修改程序?2.如何改变流水灯的速度?3.如果去掉程序中的延时,结果如何?实验二数码管静态显示实验一、实验目的1.学习静态显示的工作
5、原理;2.学习静态显示的电路接口设计及程序设计。二、实验设备1.仿真器2.单片机核心卡3.数码管静态显示模块三、实验要求要求在2位数码管中显示“1、2”两个字符。四、实验原理数码管的静态输入在很多的仪表中经常见到,因为仪表用于显示的位数一般在两到三位,再加上静态显示的高亮度,因此它在现实中同样得到了很多的应用。由于静态输入,数码管的每个段都占用了一根控制线,因此,单片机不必进行不间断的扫描,就能实现数码管的稳定显示,从而减轻了CPU的工作负担。因为单片机的输出驱动电流不大,为增加数码管的亮度,在单片机输出口和数码管
6、之间常常使用接口芯片驱动。数码管中的每一段相当于一个发光二极管,8段数码管则具有8个发光二极管。对于“共阴极”的数码管,内部每个发光二极管的阴极被接在一起,成为该各段的公共端,在静态显示中,公共端是常通的;发光二极管的阳极则成为段选线。对于“共阳极”数码管,则正好相反,内部发光二极管的阳极接在一起,阴极成为段选线。这两种数码管的驱动方式是不同的。数码管的段位顺序如右图所示:如果P0口由从低位到高位的顺序连接abcdefgdp,要在一个“共阴极”数码管上要显示“1”,则b、c段需被点亮,因此在段选线中写入06H。相反
7、地,如果P0口由从高位到低位的顺序连接abcdefgdp,要在一个“共阴极”数码管上要显示“1”,则b、c段需被点亮,因此在段选线中写入60H。五、实验步骤1.用导线把数码管静态显示模块和单片机的系统核心卡的某个端口连接。例如下图:2.编制程序,该程序比较简单,只需要将希望显示的数字相应段选码送到指定端口即可。3.将程序调入仿真器进行调试,直至达到实验要求。六、实验程序#include"reg52.h"#include"stdio.h"#include"string.h"unsignedcharcodeshnum[
8、]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0};//共阴数码管,P0由低位到高位接abcdefgh显示字型为0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,fvoidm2k_03(void);//**************