单片机的跑马灯程序 求注释 尽量每行都注释 我几乎看不懂啊! 谢谢= =!!明天就要答辩啦!!快的话加分加

单片机的跑马灯程序 求注释 尽量每行都注释 我几乎看不懂啊! 谢谢= =!!明天就要答辩啦!!快的话加分加,第1张

哈哈 这不难啊!!!!…………单片机的跑马灯程序主要用到了延时子程序,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、数控车床编程循环程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10165854.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存