久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

凌陽SPCE061A十六位程序(通過硬件反復調試)

作者:佚名   來源:本站原創   點擊數:  更新時間:2010年06月12日   【字體:

下面這些凌陽SPCE061A十六位單片機的程序 都是我在開發板上通過硬件反復調試通過的,大家可隨便拿去用,有問題可與我聯系哦,我在51hei的id是ikedge.
第一個能用的程序:
點亮IOA的低八位

 

//新建一個***.asm文件
.include hardware.inc;   //頭文件的格式
.PUBLIC _main            //全局
.code                    //定義在代碼段
_main:

r1=0x00FF
[P_IOA_Dir]=r1          //方向輸出
r1=0x0055           
[P_IOA_Buffer]=r1       //輸出
r1=0x00FF
[P_IOA_Attrib]=r1       //同向輸出

 

 

              用4HZ的中斷閃爍led           
 
.include hardware.inc;
.PUBLIC _main
.code
_main:

r1=0x00FF
[P_IOA_Dir]=r1
r1=0x0055
[P_IOA_Buffer]=r1
r1=0x00FF
[P_IOA_Attrib]=r1

INT IRQ
r3=0x0008
[P_INT_Ctrl]=r3  //打開IRQ5中斷

//r2=0x002D
//[P_TimerA_Ctrl]=r2    //選擇2Hz的中斷

.TEXT
.public _IRQ5
_IRQ5:
r4=0x00FF
[P_IOA_Dir]=r4
r4=0x00AA
[P_IOA_Buffer]=r4
r4=0x00FF
[P_IOA_Attrib]=r4
RETI;


                 經過修改的十六位控制八位流水燈
.include hardware.inc;
.PUBLIC _main
//.PUBLIC _loop
.code
_main:

//  r1=0x00FF
// [P_IOA_Dir]=r1
// r1=0x0055
// [P_IOA_Buffer]=r1
// r1=0x00FF
// [P_IOA_Attrib]=r1
 r4=0x0001
 INT IRQ          //打開中斷開關
 r3=0x1000
 [P_INT_Ctrl]=r3  //打開IRQ1對應的timerA的中斷
 
 r2=0x0034
 [P_TimerA_Ctrl]=r2   //選擇4096Hz頻率自加溢出的中斷
 //r2=0xf000          //1second
 r2=0xfe57      //0.1second
 //r2=0xe000   //2second
 //r2=0xf800   //0.5second
 //r2=0xfffe
 [P_TimerA_Data]=r2    //置初值f800/634Loop
    
    _loop: 
 r5 = 0x0001
    [P_Watchdog_Clear] = r5
    goto _loop

.TEXT
.public _IRQ1
_IRQ1:

r1=0x00FF
[P_IOA_Dir]=r1
r1=0x00FF
[P_IOA_Attrib]=r1

r4=r4 LSL 1
r4=r4&0x00ff
CMP r4 ,0x0000
jz _loop1
jmp _loop2
_loop1:
r4=0x0001
_loop2:
[P_IOA_Data]=r4

r1=0x1000
[P_INT_Clear]=r1
//r5 = 0x0001
 //   [P_Watchdog_Clear] = r5
RETI;
                使用系統時鐘計數的流水燈
.include hardware.inc;
.PUBLIC _main
//.PUBLIC _loop
.code
_main:

//  r1=0x00FF
// [P_IOA_Dir]=r1
// r1=0x0055
// [P_IOA_Buffer]=r1
// r1=0x00FF
// [P_IOA_Attrib]=r1
 //r1=0x0073 //fosc頻率是40.96M  CPU頻率是fosc/8
 //r1=0x0033 //fosc頻率是20.48M  CPU頻率是fosc/8
 r1=0x0013 //fosc頻率是24.576M  CPU頻率是fosc/8
 //r1=0x0063 //fosc頻率是32.768M  CPU頻率是fosc/8
 //r1=0x00f3 //fosc頻率是49.152M  CPU頻率是fosc/8
 //r1=0x00f0 //fosc頻率是49.152M  CPU頻率是fosc
 [P_SystemClock]=r1
 r4=0x0001
 INT IRQ          //打開中斷開關
 r3=0x1000
 [P_INT_Ctrl]=r3  //打開IRQ1對應的timerA的中斷
 
 r2=0x0031            //選擇fosc/256的頻率自加
 [P_TimerA_Ctrl]=r2   //選擇4096Hz頻率自加溢出的中斷
 //r2=0xf000          //1second
 //r2=0xfe57      //0.1second
 //r2=0xe000   //2second
 //r2=0xf800   //0.5second
  r2=0x0000
 [P_TimerA_Data]=r2    //置初值f800/634Loop
    
    _loop: 
 r5 = 0x0001
    [P_Watchdog_Clear] = r5
    goto _loop

.TEXT
.public _IRQ1
_IRQ1:

r1=0x00FF
[P_IOA_Dir]=r1
r1=0x00FF
[P_IOA_Attrib]=r1

r4=r4 LSL 1
r4=r4&0x00ff
CMP r4 ,0x0000
jz _loop1
jmp _loop2
_loop1:
r4=0x0001
_loop2:
[P_IOA_Data]=r4

r1=0x1000
[P_INT_Clear]=r1
//r5 = 0x0001
 //   [P_Watchdog_Clear] = r5
RETI;

 

 

 

                  IOB08作為PWM輸出
.include hardware.inc;
.PUBLIC _main
//.PUBLIC _loop
.code
_main:

  r1=0xFFFF
 [P_IOB_Dir]=r1
 r1=0xFFFF
 [P_IOB_Attrib]=r1
 r1=0x0000
 [P_IOA_Buffer]=r1
 //r1=0x0073 //fosc頻率是40.96M  CPU頻率是fosc/8
 //r1=0x0033 //fosc頻率是20.48M  CPU頻率是fosc/8
 r1=0x0013 //fosc頻率是24.576M  CPU頻率是fosc/8
 //r1=0x0063 //fosc頻率是32.768M  CPU頻率是fosc/8
 //r1=0x00f3 //fosc頻率是49.152M  CPU頻率是fosc/8
 //r1=0x00f0 //fosc頻率是49.152M  CPU頻率是fosc
 [P_SystemClock]=r1
 r4=0x0001
 INT IRQ          //打開中斷開關
 r3=0x1000
 [P_INT_Ctrl]=r3  //打開IRQ1對應的timerA的中斷
 
 r2=0x0071            //選擇fosc/256的頻率自加
 [P_TimerA_Ctrl]=r2   //選擇4096Hz頻率自加溢出的中斷
 //r2=0xf000          //1second
 //r2=0xfe57      //0.1second
 //r2=0xe000   //2second
 //r2=0xf800   //0.5second
  r2=0xfff0
 [P_TimerA_Data]=r2    //置初值f800/634Loop
    
    _loop: 
 r5 = 0x0001
    [P_Watchdog_Clear] = r5
    goto _loop

.TEXT
.public _IRQ1
_IRQ1:

r1=0x00FF
[P_IOA_Dir]=r1
r1=0x00FF
[P_IOA_Attrib]=r1

r4=r4 LSL 1
r4=r4&0x00ff
CMP r4 ,0x0000
jz _loop1
jmp _loop2
_loop1:
r4=0x0001
_loop2:
[P_IOA_Data]=r4

r1=0x1000
[P_INT_Clear]=r1
//r5 = 0x0001
 //   [P_Watchdog_Clear] = r5
RETI;

 

 

//  工程名稱:ADC_LINE.scs
//  功能描述:   通過改變LINE_IN端口的模擬電壓來改變IOB口輸出的數據,
//        采用自動方式即定時器A溢出執行ADC轉換,可以通過發光
//        二極管的點亮了解轉換的數據值。
//  硬件連接:IOB口的高8位連接發光二極管  

 

//============================================================
// 文件名稱:ADC_LINE.asm   
// 實現功能: 通過改變LINE_IN端口的模擬電壓來改變IOB口輸出的數據,
//        采用自動方式即定時器A溢出執行ADC轉換,可以通過發光
//        二極管的點亮了解轉換的數據值。
//============================================================


.DEFINE  P_IOB_DATA       0x7005 
.DEFINE  P_IOB_DIR        0x7007 
.DEFINE  P_IOB_ATTRI   0x7008 
.DEFINE  P_INT_Ctrl      0x7010 
.DEFINE  P_INT_CLEAR   0x7011 
.DEFINE  P_ADC_Ctrl      0x7015 
.DEFINE  P_ADC_MUX_Ctrl  0x702b 
.DEFINE  P_ADC_MUX_DATA  0x702C
.DEFINE  P_DAC_Ctrl      0x702A 
.DEFINE     P_WATCHDOG_CLEAR    0x7012
.CODE

//============================================================= 
// 函數名稱:  _main
// 功能描述: 通過改變LINE_IN端口的模擬電壓來改變IOB口輸出的數據,
//        采用自動方式即定時器A溢出執行ADC轉換,可以通過發光
//        二極管的點亮了解轉換的數據值。
// 語法格式:  _main
//入口參數:     無
// 出口參數:    無
// 注意事項:    僅為用戶模型
//=================================================================
.PUBLIC _main
_main:  
    r1 = 0xffff 
 [P_IOB_ATTRI] = r1           //IOB口設置為同相輸出口
 [P_IOB_DIR] = r1 
 r1 = 0x0000
 [P_IOB_DATA] = r1;
 
    r1 = 0x0001                  //選擇通道LINE_IN為IOA4
 [P_ADC_MUX_Ctrl] = r1
    r1 = 0x0001                  //允許A/D轉換
    [P_ADC_Ctrl] = r1    
    
L_AD:   
    r1 = [P_ADC_MUX_Ctrl]        //讀寄存器[P_ADC_MUX_Ctrl]的B15位
    test r1,0x8000               //判斷是否轉換完畢
    jz L_AD                      //否,繼續轉換
    r1 = [P_ADC_MUX_DATA]        //是,則讀出[P_ADC_MUX_DATA]轉換結果
    [P_IOB_DATA] = r1            //同時觸發A/D重新轉換
    r1 = 0x0001
    [P_WATCHDOG_CLEAR] = r1      //清看門狗
    jmp L_AD;
    
 


            用C語言編的第一個程序
#include "hardware.h"
int main()                           
{
 unsigned int i, j=0;
 for (i=0;i<=100;i++) 
 j = j + i;       //G_Su保存果

 
 while(1)                     //程序結束循環
 {
         unsigned int ClearWatchdog =0x7012;
  ClearWatchdog = 0x0001; //清看門狗
 }
}

                       包括IOA口初始化子函數

#include "hardware.h"
#define Port_IOA_Data    0x7000        //portA data
#define Port_IOA_Buffer         0x7001        //portA buffer
#define Port_IOA_Dir            0x7002       //portAdirection
#define Port_IOA_Attrib         0x7003 

unsigned int 
_Port_IOA_Attrib ,
_Port_IOA_Dir,
_Port_IOA_Data,
_Port_IOA_Buffer;

int main()                           
     {

 IOA_Init(); 
     
             
 while(1)                            //程序結束循環
  {
  unsigned int ClearWatchdog = 0x7012;
  ClearWatchdog = 0x0001; //清看門狗
  }
 }
 
void IOA_Init()   //IOA口初始化
{

//===============================
_Port_IOA_Dir=0xFFF;
_Port_IOA_Attrib=0xFFFF;
_Port_IOA_Buffer=0xFFFF;
_Port_IOA_Data=0xFFFF;
}

                 真正意義上能用的顯示程序顯示6789。
unsigned int 
* _Port_IOA_Attrib=0x7003,
* _Port_IOA_Dir=0x7002,
* _Port_IOA_Data=0x7000,
* _Port_IOA_Buffer=0x7001,
* ClearWatchdog = 0x7012;

void IOA_Init()   //IOA口初始化
{


* _Port_IOA_Dir=0xFFFF;
* _Port_IOA_Attrib=0xFFFF;
//_Port_IOA_Buffer=0xFFFF;
//_Port_IOA_Data=0xFFFF;
}
int main()                           
 {   IOA_Init();
     while(1)                            //程序結束循環
  {
     /* _Port_IOA_Data=0x7000;
        * _Port_IOA_Buffer=0x7001;
  * _Port_IOA_Dir=0x7002;
  * _Port_IOA_Attrib=0x7003;*/
     * _Port_IOA_Data=0xfe6f;
     
     * _Port_IOA_Data=0xfd7f;
    
     * _Port_IOA_Data=0xfb07;
     
     * _Port_IOA_Data=0xf77d;
    
     //[0~9]=[3f,06]
      //0x3f,0x06,0x5b,0x4f,
        // 0x66,0x6d,0x7d,
        // 0x07,0x7f,0x6f
             
 
  
  ClearWatchdog = 0x0001; //清看門狗
  }
 }
 
void F_Delay()
{
 unsigned int i;
 for(i=0; i<500; i++)
 {
 } 
}


             顯示任意數字temp待改進
unsigned int 
* _Port_IOA_Attrib=0x7003,
* _Port_IOA_Dir=0x7002,
* _Port_IOA_Data=0x7000,
* _Port_IOA_Buffer=0x7001,
* ClearWatchdog = 0x7012;
unsigned char code_table[]=
 {
 0x3f,0x06,0x5b,0x4f,
 0x66,0x6d,0x7d,
 0x07,0x7f,0x6f
 };
void IOA_Init()   //IOA口初始化
{


* _Port_IOA_Dir=0xFFFF;
* _Port_IOA_Attrib=0xFFFF;
//_Port_IOA_Buffer=0xFFFF;
//_Port_IOA_Data=0xFFFF;
}
int main()                           
 {   IOA_Init();
     while(1)                            //程序結束循環
  {
     /* _Port_IOA_Data=0x7000;
        * _Port_IOA_Buffer=0x7001;
  * _Port_IOA_Dir=0x7002;
  * _Port_IOA_Attrib=0x7003;*/
     unsigned int aa,dd,ge,shi,bai,temp;
     //bb=0x0002;
       temp=981;
    bai=temp/100;
    shi=temp%100;
    shi=shi/10;
    ge=temp%10;
  
  aa=0xfe00;
  dd=aa + code_table[ge];
     * _Port_IOA_Data= dd;
     
     aa=0xfd00;
     dd=aa + code_table[shi];
     * _Port_IOA_Data= dd;
     aa=0xfb00;
     dd=aa + code_table[bai];
     * _Port_IOA_Data= dd;
     //* _Port_IOA_Data=0xfd7f;
    
     //* _Port_IOA_Data=0xfb07;
     
     //* _Port_IOA_Data=0xf77d;
    
     //[0~9]=[3f,06]
      //0x3f,0x06,0x5b,0x4f,
        // 0x66,0x6d,0x7d,
        // 0x07,0x7f,0x6f
             
 

 

 

 

                  C語言的中斷函數IRQ5
#include "hardware.h"
unsigned int 
* _Port_IOA_Attrib=0x7008,  /////////
* _Port_IOA_Dir=0x7007,     /////////地址賦值
* _Port_IOA_Data=0x7005,    /////////
* _Port_IOA_Buffer=0x7006,  /////////
* ClearWatchdog = 0x7012,   /////////
* P_INT_Ctrl=0x7010,        /////////
* P_INT_Clear=0x7011,       /////////
bb;
int aa;
void IOA_Init()             /////////IOA口初始化
{

* _Port_IOA_Dir=0xFFFF;
* _Port_IOA_Attrib=0xFFFF;
//_Port_IOA_Buffer=0xFFFF;
//_Port_IOA_Data=0xFFFF;
}

int main()                           
 {   
  IOA_Init();
  __asm("IRQ ON");      //打開總中斷
  
  aa=0x0001;
  * P_INT_Ctrl=0x0008;  //打開4Hz的中斷
  while(1)              //程序結束循環
  {
  
  
     
     * ClearWatchdog = 0x0001; //清看門狗
  }
 }
void IRQ5(void) __attribute__ ((ISR)); //中斷專用格式
void IRQ5(void)                         //中斷專用格式
{    
aa=aa+1;
* _Port_IOA_Data= aa;
* P_INT_Clear = 0x0008;                //清中斷 

}

void F_Delay()
{
 unsigned int i;
 for(i=0; i<500; i++)
 {
 } 
}


                         C語言的流水燈
#include "hardware.h"
unsigned int 
* _Port_IOA_Attrib=0x7008,
* _Port_IOA_Dir=0x7007,
* _Port_IOA_Data=0x7005,
* _Port_IOA_Buffer=0x7006,
* ClearWatchdog = 0x7012,
* P_INT_Ctrl=0x7010,
* P_INT_Clear=0x7011,
bb,aa;

void IOA_Init()   //IOA口初始化
{

* _Port_IOA_Dir=0xFFFF;
* _Port_IOA_Attrib=0xFFFF;
//_Port_IOA_Buffer=0xFFFF;
//_Port_IOA_Data=0xFFFF;
}

int main()                           
 {   
  IOA_Init();
  __asm("IRQ ON");
  //INT_FIQ_IRQ();
  aa=0x0001;
  * P_INT_Ctrl=0x0008;
  while(1)                            //程序結束循環
  {
  
  
     
     * ClearWatchdog = 0x0001; //清看門狗
  }
 }
void IRQ5(void) __attribute__ ((ISR)); 
void IRQ5(void)
{ * ClearWatchdog = 0x0001;  
aa=aa<<1;                         //循環左移
//bb=aa;
//bb=bb && 0x0100; 

while(aa==0x0100)
aa=0x0001;
bb=aa;                            //異或 取反
bb=bb^0xffff;
* _Port_IOA_Data= bb;
* P_INT_Clear = 0x0008; 

}


                 C語言用timea做計數的流水燈
#include "hardware.h"
unsigned int 
* _Port_IOA_Attrib=0x7008,
* _Port_IOA_Dir=0x7007,
* _Port_IOA_Data=0x7005,
* _Port_IOA_Buffer=0x7006,
* ClearWatchdog = 0x7012,
* P_INT_Ctrl=0x7010,
* P_INT_Clear=0x7011,
* P_TimerA_Ctrl=0x700B,
* P_TimerA_Data=0x700A,
bb,aa;

void IOA_Init()   //IOA口初始化
{

* _Port_IOA_Dir=0xFFFF;
* _Port_IOA_Attrib=0xFFFF;
//_Port_IOA_Buffer=0xFFFF;
//_Port_IOA_Data=0xFFFF;
}

int main()                           
 {   
  IOA_Init();
  __asm("IRQ ON");
  //INT_FIQ_IRQ();
  aa=0x0001;
  * P_INT_Ctrl=0x1000;    //設置中斷
  * P_TimerA_Ctrl=0x0034;
  * P_TimerA_Data=0xfe57;//設置計數初值
  while(1)               //程序結束循環
  {
  
  
     
     * ClearWatchdog = 0x0001; //清看門狗
  }
 }
void IRQ1(void) __attribute__ ((ISR)); 
void IRQ1(void)
{ * ClearWatchdog = 0x0001;  
aa=aa<<1;
//bb=aa;
//bb=bb && 0x0100; 

while(aa==0x0100)
aa=0x0001;
bb=aa;
bb=bb^0xffff;
* _Port_IOA_Data= bb;
* P_INT_Clear = 0x1000; 

}


           C語言的系統頻率控制的流水燈
#include "hardware.h"
unsigned int 
* _Port_IOA_Attrib=0x7008,
* _Port_IOA_Dir=0x7007,
* _Port_IOA_Data=0x7005,
* _Port_IOA_Buffer=0x7006,
* ClearWatchdog = 0x7012,
* P_INT_Ctrl=0x7010,
* P_INT_Clear=0x7011,
* P_TimerA_Ctrl=0x700B,
* P_TimerA_Data=0x700A,
* P_SystemClock=0x7013,
bb,aa;

void IOA_Init()   //IOA口初始化
{

* _Port_IOA_Dir=0xFFFF;
* _Port_IOA_Attrib=0xFFFF;
//_Port_IOA_Buffer=0xFFFF;
//_Port_IOA_Data=0xFFFF;
}

int main()                           
 {   * P_SystemClock=0x0033;
  IOA_Init();
  __asm("IRQ ON");
  //INT_FIQ_IRQ();
  aa=0x0001;
  * P_INT_Ctrl=0x1000;    //設置中斷
  * P_TimerA_Ctrl=0x0031;
  * P_TimerA_Data=0x0000;//設置計數初值
  while(1)               //程序結束循環
  {
  
  
     
     * ClearWatchdog = 0x0001; //清看門狗
  }
 }
void IRQ1(void) __attribute__ ((ISR)); 
void IRQ1(void)
{ * ClearWatchdog = 0x0001;  
aa=aa<<1;
//bb=aa;
//bb=bb && 0x0100; 

while(aa==0x0100)
aa=0x0001;
bb=aa;
bb=bb^0xffff;
* _Port_IOA_Data= bb;
* P_INT_Clear = 0x1000; 

}



#include "hardware.h"
unsigned int 
* _Port_IOA_Attrib=0x7008,
* _Port_IOA_Dir=0x7007,
* _Port_IOA_Data=0x7005,
* _Port_IOA_Buffer=0x7006,
* ClearWatchdog = 0x7012,
* P_INT_Ctrl=0x7010,
* P_INT_Clear=0x7011,
* P_TimerA_Ctrl=0x700B,
* P_TimerA_Data=0x700A,
* P_SystemClock=0x7013,
* P_ADC_Ctrl=0x7015,
* P_ADC_MUX_Ctrl=0x702b,
* P_ADC_MUX_Date=0x702c,
bb,aa;

void IOA_Init()   //IOA口初始化
{

* _Port_IOA_Dir=0x0000;
* _Port_IOA_Attrib=0xFFFF;
//_Port_IOA_Buffer=0xFFFF;
//_Port_IOA_Data=0xFFFF;
}

int main()                           
 {   
 
   
  
  * P_ADC_Ctrl=0x0001;
  * P_ADC_MUX_Ctrl=0x0001;
 
 
  * P_SystemClock=0x0033;
  IOA_Init();
  __asm("IRQ ON");
  //INT_FIQ_IRQ();
  aa=0x0001;
  * P_INT_Ctrl=0x1000;    //設置中斷
  * P_TimerA_Ctrl=0x0031;
  * P_TimerA_Data=0x0f00;//設置計數初值
  while(1)               //程序結束循環
  {
  
  
     
     * ClearWatchdog = 0x0001; //清看門狗
  }
 }
void IRQ1(void) __attribute__ ((ISR)); 
void IRQ1(void)
{ 
bb=* P_ADC_MUX_Date; 
while(P_ADC_MUX_Date=0x8000);

* _Port_IOA_Data= bb;
* P_INT_Clear = 0x1000; 

}


   C語言編的AD轉換


//#include "hardware.h"
unsigned int 
* _Port_IOB_Attrib=0x7008,
* _Port_IOB_Dir=0x7007,
* _Port_IOB_Data=0x7005,
* _Port_IOB_Buffer=0x7006,
* _Port_IOA_Attrib=0x7004,
* _Port_IOA_Dir=0x7003,
* _Port_IOA_Data=0x7000,
* _Port_IOA_Buffer=0x7001,
* ClearWatchdog = 0x7012,
* P_INT_Ctrl=0x7010,
* P_INT_Clear=0x7011,
* P_TimerA_Ctrl=0x700B,
* P_TimerA_Data=0x700A,
* P_SystemClock=0x7013,
* _P_ADC_Ctrl=0x7015,
* _P_ADC_MUX_Ctrl=0x702b,
* _P_ADC_MUX_Data=0x702c,
bb,aa;
int main()                           
 {   
 
* _Port_IOB_Attrib= 0xffff;//IOB口設置為同相輸出口 
* _Port_IOB_Dir=0xffff;


* _Port_IOA_Attrib= 0xffff;//IOA口設置為xuanfushi 口 
* _Port_IOA_Dir=0x0000;


* _P_ADC_MUX_Ctrl=0x0001;    //sheIOA0weiADshuru
* _P_ADC_Ctrl=0x0001;        //開啟AD轉換
while(1)
{ 
aa=* _P_ADC_MUX_Ctrl;
aa=aa & 0x8000;
while(aa!=0x8000);


bb =* _P_ADC_MUX_Data;
* _Port_IOB_Data=bb;
* ClearWatchdog = 0x0001; //清看門狗
}

 }
                 C語言編的數字電壓表0~3.3V精確到0.001V
unsigned int 
* _Port_IOB_Attrib=0x7008,
* _Port_IOB_Dir=0x7007,
* _Port_IOB_Data=0x7005,
* _Port_IOB_Buffer=0x7006,
* _Port_IOA_Attrib=0x7004,
* _Port_IOA_Dir=0x7003,
* _Port_IOA_Data=0x7000,
* _Port_IOA_Buffer=0x7001,
* _ClearWatchdog = 0x7012,
* _P_INT_Ctrl=0x7010,
* _P_INT_Clear=0x7011,
* _P_TimerA_Ctrl=0x700B,
* _P_TimerA_Data=0x700A,
* _P_SystemClock=0x7013,
* _P_ADC_Ctrl=0x7015,
* _P_ADC_MUX_Ctrl=0x702b,
* _P_ADC_MUX_Data=0x702c,
bb,aa
,dd,ge,shi,bai,qian,temp;
float qq;
unsigned char code_table[]=
 {
 0x3f,0x06,0x5b,0x4f,
 0x66,0x6d,0x7d,
 0x07,0x3f,0x6f
 };
void IOA_Init()   //IOA口初始化
{


* _Port_IOB_Dir=0xFFFF;
* _Port_IOB_Attrib=0xFFFF;
//_Port_IOA_Buffer=0xFFFF;
//_Port_IOA_Data=0xFFFF;
}

int main()                           
 {   
  __asm("IRQ ON");
  * _P_INT_Ctrl=0x4000;
  IOA_Init();
     * _Port_IOA_Attrib= 0xffff;//IOA口設置為xuanfushi 口 
  * _Port_IOA_Dir=0x0000;
     * _P_ADC_MUX_Ctrl=0x0001;    //sheIOA0weiADshuru
  * _P_ADC_Ctrl=0x0001;        //開啟AD轉換
     while(1)                            //程序結束循
  {
  aa=* _P_ADC_MUX_Ctrl;
  aa=aa & 0x8000;
  while(aa!=0x8000);
  temp=* _P_ADC_MUX_Data;
  
  qq=19.859090;
  temp=temp/qq;
  qian=temp/1000;
    bai=temp%1000/100;
    shi=temp%100/10;
     ge=temp%10;
        * _ClearWatchdog = 0x0001; //清看門狗
  }
}             
void IRQ0(void) __attribute__ ((ISR)); 
void IRQ0(void) 
 {  
  aa=0xfe00;
  dd=aa + code_table[ge];
     * _Port_IOB_Data= dd;
     
     aa=0xfd00;
     dd=aa + code_table[shi];
     * _Port_IOB_Data= dd;
     aa=0xfb00;
     dd=aa + code_table[bai];
     * _Port_IOB_Data= dd;
  * _P_INT_Clear = 0x4000;
  
  aa=0xf700;
  dd=aa + code_table[qian];
     * _Port_IOB_Data= dd;
 }
 

 

關閉窗口

相關文章

主站蜘蛛池模板: 久久久91精品国产一区二区三区 | 精品国产鲁一鲁一区二区张丽 | 国产欧美精品一区二区三区 | 免费视频99 | 麻豆精品国产91久久久久久 | 久久人人网 | 一区二区三区免费在线观看 | 欧美成ee人免费视频 | 在线看一区二区三区 | xxxxx黄色片 欧美一区免费 | 久热精品在线播放 | 精品视频一区二区三区在线观看 | 奇米影视77 | 国产精品日韩高清伦字幕搜索 | 岛国在线免费观看 | 超碰av人人 | 久久成人国产 | 欧区一欧区二欧区三免费 | 免费福利视频一区二区三区 | 四虎国产| 91美女在线观看 | 午夜精品久久久久久久久久久久 | 成人在线播放网站 | 色噜噜狠狠色综合中国 | 99久久久久久久 | 欧美三级电影在线播放 | 91免费在线 | 日韩国产在线 | 国产亚洲一区二区三区 | 自拍视频一区二区三区 | 超碰人人插 | 夜夜爆操| 国产亚洲网站 | 亚洲成人一区 | 国产精品中文字幕在线观看 | 成人a视频在线观看 | 性高湖久久久久久久久3小时 | 黄色毛片免费视频 | 久久福利 | 国产精品久久国产精品 | www.久久久.com |