作业帮 > 综合 > 作业

求高手帮忙解释下面每一句程序的意思?详细点,谢谢

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/05 04:08:44
求高手帮忙解释下面每一句程序的意思?详细点,谢谢
求高手帮忙解释下面每一句程序的意思?详细点,谢谢
#include // 是c51(用于单片机开发的一种c语言)的头文件
/*般情况下,为了软件的编译器无关性,定义类似的数据类型,
如 typedef unsigned char UINT8; typedef unsigned short UINT16等等,因为在不同的平台下,short,int 等所占字节数不尽相同,
如某些单片机下int为16位,但在ARM和x86下则为32位,所以定义如上的数据类型.当程序移植到其他平台上时,只须更改这些定义即可.*/
typedef unsigned char uint8; //定义char类型为 8位,
typedef unsigned int uint16; //定义int类型为16位
void delay(uint16 x) //自定义的delay函数
{
uint16 i,j;
for(i = x; i > 0; i --)
for(j = 114; j > 0; j --); //函数的作用是,让程序执行x*114次操作,即等待这么长时间
}
void main()
{
uint8 j = 0; //变量声明
while(1) //循环执行
{
P0 = (0x80 >> j++); //P0是单片机里面的P0.7的值,这里通过改变j的值,使其值变化
delay(200); //延迟函数
if(j == 8)
{
j = 0; //改变j的值
}
}
}
再问: 高手,这是个流水灯右移程序,能告诉我,哪句是开始执行,哪句是开始循环,通俗点
再答: P0 = ~(0x80 >> j++); 这里控制灯的位值,外面有一个while(1) 所以每一次循环j++,会给不同的灯代表的位数赋值为1 if(j == 8) { j = 0; 每次循环到j=8,复位,重新开始,8个灯依次亮起来!