×
嵌入式 > 技术百科 > 详情

c语言对HT单片机硬件操作说明

发布时间:2020-06-10 发布时间:
|
1、C语言中变量的定义方法

 -C语言中变量定义语法为:

   #pragma rambank0                       ;即以关键词#pragma开始,rambank0指明资料区块为第0块。

  unsigned char m_acc;                ;定义一个无符号字符型变量m_acc。

  unsigned char m_ststus;             ;定义一个无符号字符型变量m_status。

  .............

 #pragma norambank                       ;norambank关键词表示变量在数据区块0的定义结束。

 

 -如果要指明某个变量的具体地址,那么定义方法如下:

  #pragma rambank0                        ;即以关键词#pragma开始,rambank0指明资料区块为第0块。

  unsigned char m_Flag0  @  0x4f   ;此行定义了一个无符号字符型变量m_Glag0,它的地址位于区块0的0x4f单元

  #pragma norambank                       ;norambank关键词表示变量在数据区块0的定义结束。

 

 -数组变量定义如下:

   #pragma rambank0                        ;即以关键词#pragma开始,rambank0指明资料区块为第0块。

   unsigned long g_RfRef[12]  @  0x50   ;定义一个无符号长整形数组变量g_RfRef[12],其首地址为0x50。

   unsigned long g_RfSs[12]  @  0x68     ;定义一个无符号长整形数组变量g_RfSs[12],其首地址为0x68。

  #pragma norambank                       ;norambank关键词表示变量在数据区块0的定义结束。

 

2、C语言中旗标定义和操作方法

   unsigned char _status  @  0x0a     ;定义了一个_status变量。

   #degine  _c     0a_0                        ;C指向status的bit0。

   #define   _ac    0a_1                       ;ac指向status的bit1。

   #define   _z      0a_2                        ;z指向status的bit2。

   #define   _ov    0a_3                        ;ov指向status的bit3。

   #define   _pdf   0a_4                        ;pdf指向status的bit4。

   #degine   _to    0a_5                        ;to指向status的bit5。

若需将status之bit0设为1,操作方法如下:

       _c=1;

若需将status之bit0设为0,操作方法如下:

       _c=0;

若需判断status之bit0位是否为1,操作方法如下:

       If(_c=1)

         {
           ...........

           };

 

3、C语言中宏定义的方法

     以下定义了push和pop两个宏指令,如果宏定义语句在一行内无法写完,那么在一行未要加上反叙杠(\)。

    #define   push   { m_acc=_acc;\

                               m_status=_status;\

                               m_mp0=_mp0;\

                               m_mp1=mp1;}

   #define   pop   {_mp1=m_mp1;\

                            mp0=m_mp0;\

                            status=m_status;\

                            acc-m_acc;}

 宏调用方法如下:

                              push;

                               ...........

                                pop;

 

4、C语言常数的定义方法

      常数定义是给一个字符串赋一个值,常数定义也是宏定义,也是用#define来定义。

      #define  c_TimeMode  0x80

     #define   c_TimeOn      0x10

 

5、C语言I/O口操作方法

 -I/O口地址定义如下:

   unsigned   char  pa  @0x12   ;PA口地址定义。

   unsigned   char  pac  @0x13  ;PA口控制缓存器地址定义。

 -I/O口操作方法:

   pac=0x00                                 ;PA口设为输出口。

   pa=0xff                                     ;PA口全输出1。

 

6、C语言定时器操作方法

   -定时器地址的设定:

    unsingned   char   _tmr  @0x0d  ;

    unsigned    char    _tmrc  @0x0e;

   -定时器控制缓冲器和定时器初值的设定:

     tmrc=0x22                        ;设置控制缓冲器初值。

    tmr=0x55                           ;设置定时器。

 

7、C语言中断处理方法

   -中断控制缓冲器地址定义:

   unsigned   cahr   intcl   @0x1e                 ;

    -中断控制缓冲器设定:

    intc0=0x01;

    intc1=0x01;

   -中断向量地址定义:

    #pragma  vector  isr_timer1   @   0x10  ;此语句定义了Timer  A中断向量位址。ist_timer1()是一个函数,当定

       时器发生中断时,转入执行此函数。

 

8、C语言Reset程序入口地址

      上现讲述了Timer  A产生中断以后,执行的是iar_timer1()函数,当Reset以后,mian()函数是程序的入口,这里 不需要定义main()函数的向量地址。

 

9、C语言查表处理方法

      C语言数据表的建立是建立一个数组,并给此数组赋上初值,并且要用Const加以标识。如下所示,

      Const  unsigned   char   T_Data_Value[12]={0x7f, 0x08, 0x08, 0x7f, 0x00, 0x3e, 0x41, 0x41, 0x3e,   0x00};

     以上建立了一个含12个数据的T_Data-Value数据表。

 

10、C语言嵌入汇编语言,其语法规则如下:

        #asm

        [labl1:]    opcode    [operands]

        ...............

        #endasm

       #asm和#endasm是内嵌式汇编语言的预处理伙指令,其间的代码可用汇编语言直接书写。

 

11、C语言中数据类型说明

        在利用C语言完成控制类软件书定时,我们常用到的数据类型有三种,即:

      -bit对应汇编中的位(1bit)操作

      -unsigned  char 对应汇编中的单字节(8bit) 操作

      -unsigned   long 对应汇编中的双字节(16bit)操作

   以上是如何使用C语言对HTMCU的资源进行操作。




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
物联传感与Atmel强强联手 达成智能家居战略合作协议