C51入门1,跑马灯和LED实验
刚开始接触的是C51,自己以前写的程序,在自己的实验板上实现的,现在整理一下留做纪念哈!!! 实验一:一个LED灯闪烁 //一个LED灯闪烁实验 #define uchar unsigned char #define uint unsigned int #define ulong unsigned long //头文件 #include <reg52.h> //端口设置 sbit P10=P1^0; char code dx516[3] _at_ 0x003b; //主函数 void main(void) { uint i; P10=0; while(1) { P10=~P10; //取反 for (i=0;i<20000;i++);//延时 } } 实验二:跑马灯实验 //跑马灯实验 #define uchar unsigned char #define uint unsigned int #define ulong unsigned long #include <reg52.h> //端口设置 sbit P10=P1^0; sbit P11=P1^1; sbit P12=P1^2; sbit P13=P1^3; char code dx516[3] _at_ 0x003b; //主函数 void main(void) { uint i; while(1) { P13=1;P10=0; //相邻端口取反 for (i=0;i<40000;i++); //延时 P10=1;P11=0; for (i=0;i<40000;i++); P11=1;P12=0; for (i=0;i<40000;i++); P12=1;P13=0; for (i=0;i<40000;i++); } } 实验三:一个按键控制一个LED的亮和灭 //一个按键控制LED #define uchar unsigned char #define uint unsigned int #define ulong unsigned long #include <reg52.h> //端口设置 sbit P10=P1^0; sbit K1=P3^2; sbit K2=P3^5; char code dx516[3] _at_ 0x003b; //主函数 void main(void) { while(1) { if (!K1) //按一下 { P10=0; //亮 } if (!K2) //再按一下 { P10=1; //灭 } } } 带有去抖动的程序: //去抖动的按键控制LED灯实验 #define uchar unsigned char #define uint unsigned int #define ulong unsigned long #include <reg52.h> //端口设置 sbit P10=P1^0; //LED灯 sbit K1=P3^2; //按键 char code dx516[3] _at_ 0x003b; //主函数 void main(void) { bit light; uint i; while(1) { if (!K1) //确认按键按下 { for (i=0;i<1000;i++); //延时 light=~light; //灯取反 while(!K1); //去抖动的作用 for (i=0;i<1000;i++); } P10=light; } }