预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

西华大学实验报告(理工类) 开课学院及实验室:机械学院机械工程专业实验中心 实验时间:年月日至月日 学生姓名非常繁华的5舍514学号成绩学生所在学院机械工程学院年级/专业/班课程名称微机测控实验课程代码106003659实验项目名称微机测控综合实验项目代码指导教师韦兴平项目学分1.实验目的 (1)学习Keil编译软件的使用、调试、程序下载的方法; (2)掌握PWM调节LED指示灯亮度的原理及编程方法; (3)掌握STC89C52单片机I/O端口的控制和使用方法; (4)掌握单片机与上位机串口通讯的原理及程序实现; (5)掌握AD转换、LCD显示的编程实现; (6)对单片机的串口通讯、PWM控制、AD转换、LED指示灯、LED数码管,及按键、定时器/计数器进行综合应用。 2.实验设备 PC机、keil编译软件、proteus仿真软件,单片机实验板、STC_ISP_V479 3.实验内容 在上位机界面设计八个按钮(或者复选框)及指示灯,当按下按钮(或者选中复选框)时,下位机P1口对应的八个指示灯变亮,同时上位机界面上对应的指示灯也变亮;关闭时类似。 4.实验电路 图4.1STC89C52主控芯片 图4.2LED流水灯 图4.3USB转串口 5.实验程序 #include"reg52.h" #defineucharunsignedchar #defineuintunsignedint uchardate;//存储串行口数据 voidint_t1()//初始化程序 { SCON=0x50;//设置串行口为工作方式1,并允许接收数据 TMOD=0x20;//设置计数器为方式2 PCON=0X00;//SMOD=0,32分频 TH1=0xFD;//设置波特率为9600 TL1=0xFD; ES=1;//打开接收中断 EA=1;//打开总中断 TR1=1;//打开计数器T1 } voidmain() {P1=0xff;//P1口灯全灭 int_t1();//初始化程序 while(1) {//当接收到字符1时,对应第一个灯(0xfe=11111110)亮 if(date=='1'){P1=0xfe;} if(date=='2'){P1=0Xfd;} if(date=='3'){P1=0Xfb;} if(date=='4'){P1=0Xf7;} if(date=='5'){P1=0Xef;} if(date=='6'){P1=0Xdf;} if(date=='7'){P1=0Xbf;} if(date=='8'){P1=0X7f;} } } voidmov_t1()interrupt4 { date=SBUF;//取出接收到的数据 RI=0;//清除接收中断标志位 } 6.实验结果 上位机输入字符5,如图6.1所示,则下位机第5个灯亮,如图6.2所示。 图6.1上位机界面 图6.2下位机界面 7.实验步骤 在Proteus画出实验原理图或者使用实验板,用Keil编写程序并进行编译,如未通过,修改程序,直至通过; 运行程序,观看运行结果,如果不符合要求,改写程序,直至成功。 8.思考题 (1)串口控制寄存器SCON各位表示含义? (2)如何计算串口通讯的波特率? (3)简述PWM调节的工作原理,并说明在工业中主要应用在哪些方面。 (4)在设计中选择A/D转换器时的主要考虑哪些参数? (5)如何计算单片机定时器的初值? 附录:西华大学51单片机原理图