欢迎来到天天文库
浏览记录
ID:35620507
大小:164.00 KB
页数:9页
时间:2019-04-03
《单片机并行口实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验二并行口实验报告班级:学号:姓名:教师:一、实验目的通过实验了解8051并行口输入方式和输出方式的工作原理及编程方法。二、实验内容1、输出实验如图4-1所示。以8031的P2口为输出口。通过程序控制发光二极管的亮灭。2、输入实验如图4-1所示。以8031的P1口为输入口。用开关向P1.0~P1.3输入不同的状态,控制P2口P2.4~P2.7发光二极管的亮灭。3、查询输入输出实验如图1-1所示。以8051的P1.6或P1.0为输入位,以P2口为输出,二进制计数记录按键的次数。图1-1三、编程提示1、输出实验程序(1)设计一组显示花样,编程使得P2口按照设计的花样重复显示
2、。(2)为了便于观察,每一状态加入延时程序。2、输入实验程序开关打开,则输入为1;开关闭合,则输入为0。读取P1.0~P1.3的状态,并将它们输出到P2.4~P2.7,驱动发光二极管。所以发光二极管L1~L4的亮灭应与开关P1.0~P1.3的设置相吻合。3、查询输入输出程序(1)编程计数P1.0按键次数,按键不去抖动。(2)编程计数P1.6按键次数,按键不去抖动。(3)编程计数P1.0按键次数,按键软件延时去抖动。观察(1)、(2)、(3)、的结果。四、实验器材计算机,目标系统实验板五、实验步骤1、在KEILC中按要求编好程序,编译,软件调试,生成.HEX文件。2、断开电
3、源,按图1-1所示,连好开关及发光二极管电路。3、下载程序。4、调试运行程序,观察发光二极管状态。六、C源程序清单1、#include#defineucharunsignedchar#defineON0#defineOFF1sbitled1=P2^0;sbitled2=P2^1;sbitled3=P2^2;sbitled4=P2^3;sbitled5=P2^4;sbitled6=P2^5;sbitled7=P2^6;sbitled8=P2^7;voiddelay1(void);voidmain(void){led1=led2=led3=le
4、d4=led5=led6=led7=led8=OFF;while(1){led1=led8=ON;delay1();led2=led7=ON;delay1();led3=led6=ON;delay1();led4=led5=ON;delay1();led1=led8=OFF;delay1();led2=led7=OFF;delay1();led3=led6=OFF;delay1();led4=led5=OFF;delay1();}}voiddelay1(void){uchari,j,k;for(i=0;i<10;i++)for(j=0;j<100;j++)for(k=0;
5、k<255;k++);}2、#include#defineucharunsignedcharsbitk8=P1^0;sbitk7=P1^1;sbitk6=P1^2;sbitk5=P1^3;sbitled5=P2^4;sbitled6=P2^5;sbitled7=P2^6;sbitled8=P2^7;voidmain(void){while(1){if(!k8)led5=0;if(!k7)led6=0;if(!k6)led7=0;if(!k5)led8=0;if(k8)led5=1;if(k7)led6=1;if(k6)led7=1;if(k
6、5)led8=1;}}3、(1)和(2)#include#defineucharunsignedcharsbitk8=P1^0;sbitk2=P1^6;voidmain(void){ucharnum1,num2;num1=0;num2=0;while(1){if(!k8){num1++;P2=~num1;}if(!k2){num2++;P2=~num2;}}}3、(3)#include#defineucharunsignedcharvoiddelay(uchar);sbitk8=P1^0;sbitk7=P1^
7、1;sbitk6=P1^2;sbitk5=P1^3;sbitk4=P1^4;sbitk3=P1^5;sbitk2=P1^6;sbitk1=P1^7;voidmain(void){ucharnum;num=0;while(1){if(!k3
8、
9、!k4
10、
11、!k5
12、
13、!k6
14、
15、!k7){num++;P2=~num;delay(100);}if(!k8){num=0;P2=~num;delay(100);}}}voiddelay(uchark){ucharx,y,z;for(x=k;x>0;x--)for(y=20;y>0;y--)f
此文档下载收益归作者所有