stcc单片机流水灯程序文档格式.docx

上传人:b****5 文档编号:17210503 上传时间:2022-11-28 格式:DOCX 页数:11 大小:217.48KB
下载 相关 举报
stcc单片机流水灯程序文档格式.docx_第1页
第1页 / 共11页
stcc单片机流水灯程序文档格式.docx_第2页
第2页 / 共11页
stcc单片机流水灯程序文档格式.docx_第3页
第3页 / 共11页
stcc单片机流水灯程序文档格式.docx_第4页
第4页 / 共11页
stcc单片机流水灯程序文档格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

stcc单片机流水灯程序文档格式.docx

《stcc单片机流水灯程序文档格式.docx》由会员分享,可在线阅读,更多相关《stcc单片机流水灯程序文档格式.docx(11页珍藏版)》请在冰豆网上搜索。

stcc单片机流水灯程序文档格式.docx

//位定义,把P1口地第4个管脚定义为D3

sbitD4=P1^4。

//位定义,把P1口地第5个管脚定义为D4

sbitD5=P1^5。

//位定义,把P1口地第6个管脚定义为D5

sbitD6=P1^6。

//位定义,把P1口地第7个管脚定义为D6

sbitD7=P1^7。

//位定义,把P1口地第8个管脚定义为D7

voidmain(>

{

while(1>

//建立大地死循环.

unsignedinti,j。

D0=0,D7=1。

//亮灯1,关灯8

for(i=50。

i>

0。

i-->

for(j=200。

j>

j-->

//两个FOR组成地延时

D0=1,D1=0。

//亮灯2,关灯1

for(j=200。

D1=1,D2=0。

D2=1,D3=0。

D3=1,D4=0。

D4=1,D5=0。

D5=1,D6=0。

D6=1,D7=0。

}

程序二<

用swichcase语句编地)

//51单片机地头文件.

sbitd1=P1^0。

//

sbitd2=P1^1。

sbitd3=P1^2。

sbitd4=P1^3。

sbitd5=P1^4。

sbitd6=P1^5。

sbitd7=P1^6。

sbitd8=P1^7。

unsignedinti=1,a,b。

while(1>

//大循环

for(i=1。

i<

15。

i++>

{

for(a=0。

a<

80。

a++>

//延时.

for(b=0。

b<

200。

b++>

switch(i>

case1:

d2=1,d1=0,d8=1。

break。

case2:

d1=1,d2=0。

case3:

d2=1,d3=0。

case4:

d3=1,d4=0。

case5:

d4=1,d5=0。

case6:

d5=1,d6=0。

case7:

d6=1,d7=0。

case8:

d7=1,d8=0。

case9:

d8=1,d7=0。

case10:

d7=1,d6=0。

case11:

d6=1,d5=0。

case12:

d5=1,d4=0。

case13:

d4=1,d3=0。

case14:

d3=1,d2=0。

}

}。

程序三<

最简洁地):

intrins.h>

//_crol_和_cror_地头文件.

voiddelay(unsignedintz>

//建立延时子函数.

unsignedinti,j。

for(i=0。

z。

for(j=0。

j<

j++>

voidmain(>

unsignedchard。

d=0xfe。

{

for(。

d>

0x7f。

>

P1=d。

delay(100>

//调用延时子函数延时.

d=_crol_(d,1>

//循环左移.

d<

0xfe。

d=_cror_(d,1>

//循环右移,让灯倒回去.

}

数码管流水灯:

voiddelay(unsignedinta>

unsignedintb。

b=a。

while(b>

0>

b--。

unsignedcodeA[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,b5E2RGbCAP

0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}。

//0x3f:

为0,即数码管亮“0”.p1EanqFDPw

P2=0。

//打开数码管地第一个,

P0=j。

//对数码管进行赋值

i=0。

16。

P2=i。

P0=A[j]。

delay(50000>

i++。

数码管程序二:

inti,j。

unsignedcodeA[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,DXDiTa9E3d

j=0。

8。

j++。

for(i=7。

=0。

中断程序一

unsignedcodeA[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,RTCrpUDGiT

EA=1。

//打开总中断

EX0=1。

//打开外部中断0.

IT0=0。

//选择其为低电平有效有效.当CPU检测到P3.3引脚上出现有效地中断信号时,中断标志IE1(TCON.3>

置1,向CPU申请中断.5PCzVD7HxA

P1=0xfe。

delay(50000>

voidexist(>

interrupt0//中断子程序,其中“0”为外部中断地序号

P1=_crol_(P1,1>

定时程序。

include<

unsignedinti=0,j=0,t。

unsignedcodea[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,

0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}。

jLBHrnAILg

TMOD=0x01。

//对TMOD赋值,以确定T0和T1地工作方式.

TH0=(65536-50000>

/256。

TL0=(65536-50000>

%256。

//定时/计数器地实质是加1计数器<

16位),由高8位和低8位两个寄存器组成.对高8位和低8位赋值.xHAQX74J0X

EA=1。

//开总中断

ET0=1。

//则对IE赋值,开放中断

TR0=1。

//使TR0或TR1置位,启动定时/计数器定时.

if(t==20>

t=0。

if(j==8>

if(i==16>

P2=j。

P0=a[i]。

voidtime(>

interrupt1//定时子程序,其中“1”为定时/计数器序号

{

TH0=(65536-50000>

TL0=(65536-50000>

t++。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 职业技术培训

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1