哈哈 这不难啊!!!!…………单片机的跑马灯程序主要用到了延时子程序,clr,lcall,ajmp 指令, 通过轮流点亮p10 …P17 实现效果。你可以通过此程序的学习, 进一步掌握单片机的IO端口 *** 作。
汇编语言参考程序:
org 0000h ;开始
ajmp loop
org 0080h ;到0030h处避开00-30的敏感地址
loop:
mov p1,#0ffh ;关闭所有灯
clr p10 ;点亮灯p10
lcall delay ;延时一段时间
clr p11 ;点亮灯p11
lcall delay
clr p12 ;点亮灯p12
lcall delay
clr p13 ;点亮灯p13
lcall delay
clr p14 ;点亮灯p14
lcall delay
clr p15 ;点亮灯p15
lcall delay
clr p16 ;点亮灯p16
lcall delay
clr p17 ;点亮灯p17
lcall delay
AJMP LOOP ;到最开始loop处重新运行
delay: mov r5,#20 ;延时。
d1: mov r6,#40
d2: mov r7,#248
djnz r7,$
djnz r6,d2
djnz r5,d1
ret
end
c语言参考程序:
#include<reg51h> //头文件
#define uchar unsigned char //宏定义,为方便编程
#define uint unsigned int
#define LED P1 //宏定义,将P1口定义为LED
uchar led_value[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x00}; //定义一数组,内存放跑马灯数据
uchar p=led_value; //定义指针,指向跑马灯数组首地址
void delay() //延迟函数,与跑马灯跳动频率有关
{
uchar ii,jj;
for(ii=0;ii<200;ii++)
for(jj=0;jj<200;jj++);
}
void run_led() //跑马灯运行函数
{
while(p!=0x00)
{
LED=p; //将数组中数据取出赋给P1口
p++; //预取下一数据
delay(); //延迟
}
p=led_value;
}
char code SST516[3] _at_ 0x003b; //仿真器保留
main() //主函数
{
while(1)
run_led(); //上电即运行跑马灯程序
}
哈哈 !!!哈哈哈!!!!打字 打得手都是痛的 …………希望对你有所帮助……
viod main()
{struct student head,stu;//声明学生结构体
long del_num;
printf("input records:\n");
head=creat();//初始化结构体
print(head);//结果输出
printf("\n input the deleted number:");
scanf("%ld",&del_num);
while(del_num!=0)//查找del的值并删除,如果del=0则程序结束
{head=del(head,del_num);
printf(head);
printf("input the deleted number:");//输入查找下一个要删的数字,现在进入循环状态
scanf("%ld",&del_num);}
printf("\n input the inserted record:");//下面是插入输入的数字
stu=(struct student )malloc(LEN);
scanf("%ld,%f",&stu->num,&stu->score);
while(stu->num!=0)//进入插入循环程序
{head=insert(head,stu);
printf(head);
printf("input the inserted record:");
stu=(stiuct student )malloc(LEN);//动态申请内存
scanf("%ld,%f",&stu->num,&stu->score);
}
}
注释完毕,这个程序写的真烂,不会用几个函数分开写么
G71 的U是X轴的进刀量 R是退刀量 G71P1Q2U (是X轴精车余量)W(是Z轴精车余量)
G73U(X轴总退刀量)R(重复加工次数) G73P1Q2U00W005这就是跟G71是一个意思。
1——
do-while至少执行一次
2——
i--是先使用后减1,--i
是先减1后使用
3——
i,i--最后的结果是i--进行判断,真的条件是i--是否非0
4——
安全的做法
for(int
i
=
0;
i
<
x;
i++)
{
a+=1;
}
或者:
while(x--)
{
a+=1;
}
或者
do
{
a+=1;
}
while(--x);
这个方法至少执行一次循环体,要看你的需要去了,因为你的
x
初始化为1,肯定执行1次,所以可以使用这个方案。
或者
do
{
a+=1;
}
while(i--,i);
这个同前面的do-while,但先把while的内容与你原来代码的顺序调换了,起到了先减1后使用的效果。
以上就是关于单片机的跑马灯程序 求注释 尽量每行都注释 我几乎看不懂啊! 谢谢= =!!明天就要答辩啦!!快的话加分加全部的内容,包括:单片机的跑马灯程序 求注释 尽量每行都注释 我几乎看不懂啊! 谢谢= =!!明天就要答辩啦!!快的话加分加、c语言求注释!1、数控车床编程循环程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)