c语言单片机编程之头文件编写Word文档格式.docx

上传人:b****2 文档编号:316134 上传时间:2023-04-28 格式:DOCX 页数:14 大小:16.67KB
下载 相关 举报
c语言单片机编程之头文件编写Word文档格式.docx_第1页
第1页 / 共14页
c语言单片机编程之头文件编写Word文档格式.docx_第2页
第2页 / 共14页
c语言单片机编程之头文件编写Word文档格式.docx_第3页
第3页 / 共14页
c语言单片机编程之头文件编写Word文档格式.docx_第4页
第4页 / 共14页
c语言单片机编程之头文件编写Word文档格式.docx_第5页
第5页 / 共14页
c语言单片机编程之头文件编写Word文档格式.docx_第6页
第6页 / 共14页
c语言单片机编程之头文件编写Word文档格式.docx_第7页
第7页 / 共14页
c语言单片机编程之头文件编写Word文档格式.docx_第8页
第8页 / 共14页
c语言单片机编程之头文件编写Word文档格式.docx_第9页
第9页 / 共14页
c语言单片机编程之头文件编写Word文档格式.docx_第10页
第10页 / 共14页
c语言单片机编程之头文件编写Word文档格式.docx_第11页
第11页 / 共14页
c语言单片机编程之头文件编写Word文档格式.docx_第12页
第12页 / 共14页
c语言单片机编程之头文件编写Word文档格式.docx_第13页
第13页 / 共14页
c语言单片机编程之头文件编写Word文档格式.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c语言单片机编程之头文件编写Word文档格式.docx

《c语言单片机编程之头文件编写Word文档格式.docx》由会员分享,可在线阅读,更多相关《c语言单片机编程之头文件编写Word文档格式.docx(14页珍藏版)》请在冰点文库上搜索。

c语言单片机编程之头文件编写Word文档格式.docx

mydefine.h"

voidmain(void)

{

//Stopwatchdogtimertopreventtimeoutreset

WDTCTL=WDTPW+WDTHOLD;

SegInitial();

//数码管控制引脚初始化

longm=0;

while

(1)

{?

disp(m);

//显示m的值

delay(10);

m++;

if(m==1000000)

m=0;

}

}

mydefine.h的内容

#ifndef_MYDEFINE_H

#define_MYDEFINE_H

msp430x14x.h"

typedef?

unsignedintuint;

typedefunsignedcharuchar;

voidwrite_595(uchardat);

voidSegInitial(void);

voiddisp(longnum);

voiddelays(uintx);

voiddelay(uintx);

#endif

mydefine.c的内容

/*********************************

流水灯74hc595各引脚定义

*********************************/

#defineCLK0P2OUT&

=~BIT4

#defineCLK1P2OUT|=BIT4

#defineSTB0P2OUT&

=~BIT2

#defineSTB1P2OUT|=BIT2

#defineDS0?

P2OUT&

=~BIT5

#defineDS1?

P2OUT|=BIT5

#defineLEDOFFP5OUT=0x00

uchardis_num[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

//数码管0~F共阳编码

ucharbitnum[]={0x01,0x02,0x04,0x08,0x10,0x20};

//数码管位选

uchardispbuf[6];

//数码管显示缓冲区

//以下是延时函数

voiddelay(uintx)

uinta,b;

for(a=x;

a>

0;

a--)

for(b=10000;

b>

b--);

//控制流水灯,使用P2.2(STB),P2.4(CLK),P2.5(DS)

voidwrite_595(uchardat)

uintn;

for(n=0;

n<

8;

n++)

{

if((dat&

0x80)==0x80)

DS1;

else

DS0;

dat<

<

=1;

CLK0;

CLK1;

STB1;

STB0;

/*****************************************

数码管显示初始化函数

*****************************************/

voidSegInitial(void)

P5DIR=0XFF;

P4DIR=0XFF;

P5OUT=0X00;

P4OUT=0X00;

/****************************************

数码管防重影延时函数

voiddelays(uintx)

for(;

x>

x--);

数码管显示函数

位选P5.0~P5.5

段选P4

voiddisp(longnum)

uinti;

dispbuf[0]=num%10;

dispbuf[1]=num/10%10;

dispbuf[2]=num/100%10;

dispbuf[3]=num/1000%10;

dispbuf[4]=num/10000%10;

dispbuf[5]=num/100000%10;

for(i=0;

i<

6;

i++)

P4OUT=dis_num[dispbuf[i]];

P5OUT=bitnum[i];

delays(400);

P5OUT=0X00;

首先看main.c里面就写了一个主函数,它告诉读者该程序的主要功能。

mydefine.h里面包含了一些函数的声明,如果使用到外部变量(或函数),则需要在该变量(或函数)前写extern加以说明其为外部变量(或函数)。

写头文件一定要注意:

#ifndefXXXX

#defineXXXX

.

其中XXXX习惯大写,名称不要与关键字相同,习惯写法请参照上面的程序,#ifndefXXXX?

#define?

XXXX?

.....?

#endif的作用是有些头文件已经在其他文件里包含过了,但是你在这个文件也包含了,如果没有上面那一句,则编译器会报错:

重复定义!

mydefine.c中用到了mydefine.h中的定义,则需要把mydefine包含进来,包含mydefine.h的意思是mydefine.h替换为mydefine.h的内容,即mydefine.c的完整内容为:

数码管延时函数

}?

下面讲一下mydefine.c的功能,一些常用函数都写在里面,一般情况下我们写好头文件后不必对函数的原型进行深究,只需知道函数的功能即可,即头文件里的函数声明,多个C文件编译链接的时候,相当于主函数放在前面,其他函数放在后面,调用函数的时候就必须先对这些函数进行声明,否则编译器不知道你的函数原型是什么,而这些头文件就起到了函数声明的作用,所谓头文件就可以理解为在main函数前面事先要处理的程序(即声明和定义)。

下面把这个结构化编程的等效程序贴出来,以方便大家理解:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2