c语言单片机编程之头文件编写.doc

c语言单片机编程之头文件编写.doc

ID:51117261

大小:21.63 KB

页数:20页

时间:2020-03-18

c语言单片机编程之头文件编写.doc_第1页
c语言单片机编程之头文件编写.doc_第2页
c语言单片机编程之头文件编写.doc_第3页
c语言单片机编程之头文件编写.doc_第4页
c语言单片机编程之头文件编写.doc_第5页
资源描述:

《c语言单片机编程之头文件编写.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、如何高效编程之头文件在网上查了很长时间关于头文件的资料,但是发现很难找到适合我的。学单片机的朋友知道,很多程序经常要调用相同的函数,如果每写一个程序都把这些函数重新写一遍或者复制过来,那是很浪费时间的,现在我通过学习总结以及别人的经验,跟大家分享,欢迎大家转载学习。      写程序最好是结构化编程,因为这样的程序看起来就不那么长了,一目了然,可以很快就知道这个程序实现什么功能,而且排错也非常简单。把常用的函数声明、自定义类型、外部变量的声明等写进头文件,与之配对的扩展名为.c的文件就写常用的函数,main.c最好就写一个主函数。之前学的51单片机,现在玩430单片机,就以430单片机为

2、例,其他编程软件道理与这个相同。在IAR下新建工程,包含了main.c、mydefine.c和mydefine.h(mydefine.c和mydefine.h是一对)三个文件(注:可包含多个配对的头文件和C文件)。先把程序贴出来,再详解其中缘由。main.c内容:#include"mydefine.h"voidmain(void){ //Stopwatchdogtimertopreventtimeoutreset WDTCTL=WDTPW+WDTHOLD;   SegInitial();   //数码管控制引脚初始化   longm=0; while(1) {     disp(m); 

3、     //显示m的值  delay(10);  m++;  if(m==1000000)   m=0; }}  mydefine.h的内容 #ifndef_MYDEFINE_H#define_MYDEFINE_H#include"msp430x14x.h"typedef unsignedintuint;typedefunsignedcharuchar;voidwrite_595(uchardat);voidSegInitial(void);voiddisp(longnum);voiddelays(uintx);voiddelay(uintx);#endif mydefine.c的内容

4、 #include"mydefine.h"#include"msp430x14x.h"/*********************************   流水灯74hc595各引脚定义*********************************/#defineCLK0P2OUT&=~BIT4#defineCLK1P2OUT

5、=BIT4#defineSTB0P2OUT&=~BIT2#defineSTB1P2OUT

6、=BIT2#defineDS0 P2OUT&=~BIT5#defineDS1 P2OUT

7、=BIT5#defineLEDOFFP5OUT=0x00uchardis_n

8、um[]={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

9、>0;a--)  for(b=10000;b>0;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;}/*****************************************      数码管显示初始化函数*************************************

10、****/voidSegInitial(void){ P5DIR=0XFF; P4DIR=0XFF; P5OUT=0X00; P4OUT=0X00;}/****************************************     数码管防重影延时函数*****************************************/voiddelays(uintx){ for(;x>0;x--);}/**********

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。