1、08级智能仪器设计仿真实验实验一:单片机C51程序设计集成开发环境应用及I/O口编程一、实验目的1、了解集成开发环境Keil Vision3文件管理的特点。2、学会使用开发环境新建文件、编辑、编译程序。3、掌握开发环境程序设计相关设置及其意义。4、掌握单片机普通I/O口的程序设计技术。5、加深对单片机执行程序机制的理解。二、实验要求1、熟练操作开发环境。2、利用C51相关知识,编写简单程序,生成可执行文件。3、记录编译错误信息,总结错误原因,写出解决办法。4、完成花样流水灯程序。5、利用开发环境的仿真实验电路仿真程序,并得出仿真结果。三、实验内容1、认识Keil Vision3;新建工程、文件
2、;工程参数设置;程序编辑、编译及调试。2、编写简单流水灯以及花样流水程序,调试程序。3、仿真运行观察P1口的8个发光二极管现象, P1寄存器内容的变化,二者变化是否一致。四、实验步骤1、启动软件Keil Vision3,界面如下图:2、菜单操作ProjectNew Project,在出现的对话框中输入工程名称,设计保存路径,然后保存。3、出现CPU选择对话框,选择所用的单片机,单击确定。4、出现加入启动代码文件对话框,单击是。下图为建立完工程后的界面:5、菜单操作ProjectOptions for target “Target 1”或者直接在左侧的Target 1文件夹图标上单击右键,选择O
3、ptions for target “Target 1”,出现下图所示的Options for target “Target 1”对话框。在Target标签下设置晶振频率、编译模式、ROM大小等,在Output标签下设置目标文件路径,是否产生可执行文件及是否产生其他信息。6、点击FileNew菜单或则点击新建图标,然后保存,设置保存路径,注意保存文件格式为:文件名.C。7、在文件管理窗口中右键单击“Source Group 1”,选择“Add Files to Group Source Group 1 ”,选中刚刚新建的程序文件,点“Add”即可把文件加入到工程中。8、文件管理窗口中双击任何文
4、件名即可把该文件打开,在右边的工作区中可以编辑源程序。9、程序编辑完成后单击图标编译,编译通过后的界面下图所示。输出窗口中为编译信息,若有错误,系统提示错误类型及所在的行,根据此信息进行调试,直至程序编译正确通过。10、新建工程intprj.Prj,新建c程序源文件并加入到工程中;11、输入所编写的程序,简单流水和花样流水分别实现;12、所给的ledkey.dll文件拷贝至KeilC51BIN文件夹下13、设置工程选择project-Option for TargetTarget1,选Debug页,左侧最下面,Dialog Dll中一般是DP51.DLL,不用修改,Parameter中是-P5
5、1在其后加入-dledkey即该行看起来应该是这样的:-p51 -dledkey -simboard保存即可。14、输入所编写的程序,实现功能:定时一秒,隔一秒P1口接的8个发光二极管亮15、编译程序,若有错误,调试程序直至编译通过。16、单击按钮,进入仿真界面。点击:Peripherals,其中多出一个“键盘LED实验仿真板”选择该项即可。17、单击按钮,运行程序,观察仿真界面能否完成要求的功能。仿真试验板电路入下图所示: 18、简单流水流程图:19、简单流水代码:#include unsigned char i;unsigned char temp;unsigned char a,b;vo
6、id delay(void) unsigned char m,n,s; for(m=20;m0;m-) for(n=20;n0;n-) for(s=248;s0;s-);void main(void) while(1) temp=0xfe; P1=temp; delay(); for(i=1;i8;i+) a=temp(8-i); P1=a|b; delay(); for(i=1;ii; b=temp(8-i); P1=a|b; delay(); 20、花样流水流程图:21、花样流水参考代码:#include unsigned char code table=0xfe,0xfd,0xfb,0x
7、f7, 0xef,0xdf,0xbf,0x7f, 0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f, 0x7f,0xbf,0xdf,0xef, 0xf7,0xfb,0xfd,0xfe, 0x7f,0xbf,0xdf,0xef, 0xf7,0xfb,0xfd,0xfe, 0x00,0xff,0x00,0xff, 0x01;unsigned char i;void delay(void) unsigned char m,n,s; for(m=20;m0;m-) for(n=20;n0;n-) for(s=248;s0;s-);void main(void) whil
8、e(1) if(tablei!=0x01) P1=tablei; i+; delay(); else i=0; 实验二:中断程序设计一、实验目的1、掌握中断程序设计技术。2、加深对单片机中断机制的理解。对实时控制概念有初步的感性认识。二、实验要求1、独立完成。2、描述出中断发生时,中断资源的变化情况,也可以用显示技术表明中断的发生。三、实验内容编写中断程序,仿真运行,观察产生中断时单片机相应过程。四、实验步骤1、新建工程intprj.Prj,新建c程序源文件并加入到工程中2、输入所编写的程序,程序需为主循环中断服务程序结构3、编译程序,若有错误,调试程序直至编译通过。4、单击按钮,进入仿真界面
9、。5、菜单PeripherialsInterrupt,对话框如下图。6、单击按钮仿真运行程序,观察所选的中断资源变化情况。7、中断程序实例代码:#include #define Uchar unsigned charsbit P12=P12;Uchar IntCnt=5;void main(void) TCON=0X01;/外部中断0边沿触发 EX0=1; EA=1;/开中断 while(1);void ExInt0_isr(void) interrupt 0 TMOD=0x02;/T0。方式2 TCON=0x00; TH0=56; TL0=56; TR0=1;void T0_isr(void) interrupt 1 if(-IntCnt=0) IntCnt=5; P12=P12; 功能:利用MCS-51的计数器T0,工作于方式2 ,P3.2作为故障状输入端,当出现1次负跳变时,立即在P1.2脚输出周期2ms连续方波(晶振为12MHZ)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1