1、可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。
2、具体实现方法可以参考如下程序:
拓展资料:
1、单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
2、单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。
3、单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。
参考资料:百度百科:单片机
#include
unsigned int LED
unsigned int a,i,m
void yiwei()
void delay(unsigned int b)
void main()
TMOD=0x01 //T0为方式1
TH0=(65536-50000)/256
TL0=(65536-50000)%256 //初值
EA=1 //允许中断
ET0=1
while(1)
P2=0x00
delay(2000)
LED = 0x7f
m
=0
for (i = 0 i <8 i++)
{
a=0
TR0=1
delay(100)
while(m)
delay(2000)
P2=0x00
delay(2000)
LED = 0xfe
m=0
for (i = 0 i <8 i++)
a=1
TR0=1
delay(100)
while(m)
}
delay(2000)
}
}
void t0() interrupt 1 using 1
{
TH0=(65536-50000)/256
TL0=(65536-50000)%256
m++
if(m==20)
{
m=0
yiwei()
}
}
void yiwei()
{
if(a==0)
{
P2=LED
LED = LED>>1 // 右移
LED = LED|0x80
}
else
{
P2 = LED
LED = LED <<1 // 左移
LED = LED | 0x01
}
}
void delay(unsigned int b)
{
unsigned char j
for(bb >0b--) //机器在这里执行需要一段时间 也就达到了延时效果
for(j = 255j >0j--)
}
自己调试过,我12晶振
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)