螀实验一I/O口实验芆一、实验内容蚃1、,点亮LED。蒃2、P1口做输入口,接八只发光二极管,编写程序,使发光二极管循环点亮。袈二、实验目的蚆l、学习P1口的使用方法。莄2、学习延时子程序的编写和使用。蒄三、有关说明芀P1口为准双向口,P1的每一位都能独立地定义为输出线或输入线,作输入的口线,必须首先向锁存器相应位写入“l”,该位才能作为输入。8031中所有口锁存器在复位时均置为“l”,如果后来在口锁存器写入过“0”,在需要时应写入一个“1”使它再成为一个输入。荿可以用第二个实验做一下试验。先按要求做好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1作输入口,会有什么结果。肄再来看一下延时程序的实现。现常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。,则一个机器周期为12÷÷。,可大致写出如下:蝿MOVR7,#200(1)袄DE1:MOVR6,#X(2)莃DE2:DJNZR6,DE2(3)蚁DJNZR7,DE1(4),所以每执行一条指令需1÷,现求出X值:薅(x×1÷+1÷+1÷)×200+1÷=×106蒄指令(3)(2)(4)(1)袀所需时间需时间需时间需时间蚇指出X=126。。莅比较C程序芁voiddelay(unsignedchartmp) //延时子函数膂{肇 unsignedchari,j;肆 i=tmp;芃 while(i){芀 i--;薆 j=255;袆 while(j){莄 j--;荿}腿薆四、连线方法膂执行程序2时:——L8螁五、实验电路虿莇电路图膃衿肈六、参考程序螃程序一、芄/***************************************************************节功能:点亮一个发光二极管蒈作者:txl薃时间:2009-04肂版本:***************************************************************/羇#include<>芄sbitD2=P1^2;肃unsignedinta;葿voidmain()莆{肄D2=0;膄/* for(a=0;a<=100;a++){};袁 D2=1;螆 for(a=0;a<=100;a++){};*/螅}羂罿程序二、葿#include<>薅#include<>肃莂袈voiddelay(unsignedchartmp);//延时子函数芅codeunsignedchartmpled[50]={0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80,0X81,0X82,袁 0X84,0X88,0X90,0XA0,0XC0,0XC1,0XC2,0XC4,0XC8,0XD0,蒀 0XE0,0XE1,0XE2,0XE4,0XE8,0XF0,0XF1,0XF2,0XF4,0XF8,莈 0XF9,0XFA
单片机实验教案 IO口实验 来自淘豆网m.daumloan.com转载请标明出处.