可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。
创新互联建站是专业的大悟网站建设公司,大悟接单;提供网站设计、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行大悟网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
void main(void)//主函数 { uchar i;P1=0xfe;//将P1口的八个管脚拉电平11111110,即P0为低,其他为高,点亮流水灯。
题主应该是初学单片机吧,各个按键的功能实现函数,其实可以更精简一些,通过使用_crol_和_cror_函数来实现会更简单。
首先要写入单片机的头函数,定义单片机P1口的8个管脚,让他们分别代表流水灯的8个led。写一个大约一小时的延时函数,为了清楚的看到流水灯的、效果。
aa=_crol_(aa,1); //左移一位 aa=_cror_(aa,1); //右移一位 可以打开:intrins.h,查看。
循环右移 就是 _cror_和这个类似的。你这个是单片机里面的吧 除了单片机,很少有这么用的。
void main(void)//主函数 { uchar i;P1=0xfe;//将P1口的八个管脚拉电平11111110,即P0为低,其他为高,点亮流水灯。
_crol_不好实现,我用_irol_实现的。延时部分自己修改。
可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。
crol()是循环左移,在汇编相当于多个 RL A,的组合。
首先要写入单片机的头函数,定义单片机P1口的8个管脚,让他们分别代表流水灯的8个led。写一个大约一小时的延时函数,为了清楚的看到流水灯的、效果。
void main(){ uchar i = 0; while(1) { P1 = ~(1 i++); delays(200); i %= 8; } }因为_crol_这个函数在其他的平台上可能没有,会有移植性的问题。
_crol_ (temp,1) 是带进位位左移一位,相当汇编里的RLC A 而1 是不带进位位的左移一位,相当汇编里的RL A。
C51单片机的循环左移函数是,_crol_(变量名,n),循环右移函数是,_cror_(变量名,n),函数中的“循环”是指变量的8位二进制数依次向左移一位,或向右移一位。
1、再发一个10个灯的,不过函数是IROL / _crol_不好实现,我用_irol_实现的。
2、_crol_不好实现,我用_irol_实现的。延时部分自己修改。
3、可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。
4、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。#include reg5h首先写出单片机的头函数。#include intrins.h输入位移函数。unsigned int count=0,led;定义函数。
5、单片机C语言实现循环8个流水灯左移三次,后右移三次。
6、函数函数:主函数(C语言规则必须有且只能有一个主函数)。***/空白主要(空白){ 而(1)//无限循环。{ P0=0xfe;//P1=11111110B,P0.0输出低电平。延迟();//推迟一段时间。
循环左移时,用从左边移出的位填充字的右端,而循环右移时,用从右边移出的位填充字的左侧。这种情况在系统程序中时有使用,在一些控制程序中用得也不少。
加入一个头文件INTRINS.H使用里面的循环左移、循环右移函数就可以了。这两个函数分别是_crol_()和_cror_()如A=10100000即0xA0。
你的led灯是共阳的,从你给的条件可以判断。p1=0xfe,即最低位为‘0’,故点亮的是p0引脚所对应的led灯,也就是你所谓的c0。所以你的程序没有问题啊。
1、crol是character to rotate left的缩写,也就是字符循环左移的意思,教你怎么找KEIL自带的库函数吧,里面有所有库函数的调用说明和例子。
2、_crol_是字符循环左移,就是只左移低8位,高位舍掉,且左移出的第7位会移到第0位,是循环的。而只是纯粹地左移。
3、第一个c是circle的第一个字母,循环的意思。第二个字母是roll的字母缩写,滚动、移动的意思。第三个是of的缩写。第四个l是left,向左的意思,第四个是r,就是right,向右的意思。