1、stcc单片机流水灯程序stcc单片机流水灯程序部门: xxx 时间: xxx制作人:xxx整理范文,仅供参考,可下载自行修改51单片机流水灯程序程序一用C语言编地最基础地程序)#include#includesbit D0=P10。/位定义,把P1口地第一个管脚定义为D0sbit D1=P11。/ 位定义,把P1口地第二个管脚定义为D1sbit D2=P12。/ 位定义,把P1口地第3个管脚定义为D2sbit D3=P13。/ 位定义,把P1口地第4个管脚定义为D3sbit D4=P14。/ 位定义,把P1口地第5个管脚定义为D4sbit D5=P15。/ 位定义,把P1口地第6个管脚定义为
2、D5sbit D6=P16。/ 位定义,把P1口地第7个管脚定义为D6sbit D7=P17。/ 位定义,把P1口地第8个管脚定义为D7void main( while(1/建立大地死循环.unsigned int i,j。 D0=0,D7=1。/亮灯1,关灯8 for(i=50。i0。i- for(j=200。j0。j-。/两个FOR组成地延时 D0=1,D1=0。/ 亮灯2,关灯1 for(i=50。i0。i- for(j=200。j0。j-。 D1=1,D2=0。 for(i=50。i0。i- for(j=200。j0。j-。 D2=1,D3=0。 for(i=50。i0。i- for(
3、j=200。j0。j-。 D3=1,D4=0。 for(i=50。i0。i- for(j=200。j0。j-。 D4=1,D5=0。 for(i=50。i0。i- for(j=200。j0。j-。 D5=1,D6=0。 for(i=50。i0。i- for(j=200。j0。j-。 D6=1,D7=0。 for(i=50。i0。i- for(j=200。j0。j-。程序二用swich case语句编地)#include/51单片机地头文件.sbit d1=P10。/sbit d2=P11。sbit d3=P12。sbit d4=P13。sbit d5=P14。sbit d6=P15。sbit
4、d7=P16。sbit d8=P17。void main(unsigned int i=1,a,b。while(1/大循环 for(i=1。i for(a=0。a/延时. for(b=0。b。 switch(i case 1: d2=1,d1=0,d8=1。 break。 case 2: d1=1,d2=0。 break。 case 3: d2=1,d3=0。 break。 case 4: d3=1,d4=0。 break。 case 5: d4=1,d5=0。 break。 case 6: d5=1,d6=0。 break。 case 7: d6=1,d7=0。 break。 case 8:
5、 d7=1,d8=0。 break。 case 9: d8=1,d7=0。 break。 case 10: d7=1,d6=0。 break。 case 11: d6=1,d5=0。 break。 case 12: d5=1,d4=0。 break。 case 13: d4=1,d3=0。 break。 case 14: d3=1,d2=0。 break。 。 程序三最简洁地):#include#include/_crol_和_cror_地头文件.void delay(unsigned int z/建立延时子函数. unsigned int i,j。 for(i=0。i for(j=0。j。
6、void main( unsigned char d。 d=0xfe。 while(1/ for(。d0x7f。 P1=d。 delay(100。/调用延时子函数延时. d=_crol_(d,1。/循环左移. for(。d P1=d。 delay(100。 d=_cror_(d,1。/循环右移,让灯倒回去. 数码管流水灯:#include#includevoid delay(unsigned int aunsigned int b。b=a。while(b0b-。 void main( unsigned int i,j。unsigned code A=0x3f,0x06,0x5b,0x4f,0x
7、66,0x6d,0x7d,b5E2RGbCAP 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71。/0x3f:为0,即数码管亮“0”.p1EanqFDPw P2=0。/打开数码管地第一个, P0=j。/对数码管进行赋值 while(1 i=0。 for(j=0。j P2=i。 P0=Aj。 delay(50000。 i+。 数码管程序二:#include void delay(unsigned int aunsigned int b。b=a。while(b0b-。 void main( int i,j。 unsigned code A=0x3f,0x06
8、,0x5b,0x4f,0x66,0x6d,0x7d,DXDiTa9E3d 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71。 P2=0。 P0=j。 while(1 j=0。 for(i=0。i P2=i。 P0=Aj。 delay(50000。 j+。 for(i=7。i=0。i- P2=i。 P0=Aj。 delay(50000。 j+。 中断程序一#include#include void delay(unsigned int aunsigned int b。b=a。while(b0b-。 void main( int i,j。 unsigned
9、code A=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,RTCrpUDGiT 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71。 EA=1。/打开总中断 EX0=1。/打开外部中断0. IT0=0。/选择其为低电平有效有效.当CPU检测到P3.3引脚上出现有效地中断信号时,中断标志IE1(TCON.3置1,向CPU申请中断.5PCzVD7HxA P2=0。 P0=j。 P1=0xfe。 while(1 j=0。 for(i=0。i P2=i。 P0=Aj。 delay(50000。 j+。 for(i=7。i=0。i- P2=
10、i。 P0=Aj。delay(50000。 j+。 void exist( interrupt 0/中断子程序,其中“0”为外部中断地序号 P1=_crol_(P1,1。 delay(50000。 定时程序。includeunsigned int i=0,j=0,t。unsigned code a=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71。jLBHrnAILgvoid main(TMOD=0x01。/对TMOD赋值,以确定T0和T1地工作方式.TH0=(65536-50000/256。TL0=(65536-50000%256。/定时/计数器地实质是加1计数器 if(t=20 t=0。 if(j=8 j=0。 if(i=16 i=0。 P2=j。 P0=ai。 i+。 j+。 void time( interrupt 1/定时子程序,其中“1”为定时/计数器序号 TH0=(65536-50000/256。 TL0=(65536-50000%256。 t+。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1