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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3861|回復: 1
收起左側

用iar編譯的mspg2553程序,74hc164驅動四段共陰管顯示

[復制鏈接]
ID:111475 發(fā)表于 2016-3-30 19:52 | 顯示全部樓層 |閱讀模式
74HC164數(shù)碼管顯示 msp430g2553IAR: 74HC164數(shù)碼管顯示.zip (164.57 KB, 下載次數(shù): 10)

  1. #include"io430.h"
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. #define ulong unsigned long
  5. #define CLK0  P1OUT&=~BIT6
  6. #define CLK1   P1OUT|=BIT6
  7. #define hc_sr040  P1OUT&=~BIT4
  8. #define hc_sr041   P1OUT|=BIT4
  9. #define CPU_F ((double)1000000)   //外部高頻晶振16MHZ
  10. //#define CPU_F ((double)32768)   //外部低頻晶振32.768KHZ
  11. #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
  12. #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))

  13. unsigned char const code_hex[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x39,0x79,0x0e,0x3e};//0,1,2,3,4,5,6,7,8,9,c,e,j,u
  14. uchar t;
  15. uchar hc_sr04_cishu,hc_sr04_flag;
  16. uchar xianshi_flag;
  17. float hc_sr04_time;
  18. uint xishu;
  19. uchar dis_play[4]={10,11,12,13};
  20. void extern_16m()
  21. {
  22.   WDTCTL = WDTPW + WDTHOLD;
  23.     if (CALBC1_1MHZ == 0xFF || CALDCO_1MHZ == 0xFF)
  24.         {
  25.                 while(1);                // If calibration constants erased, trap CPU!!
  26.         }
  27. DCOCTL |= DCO0 + DCO1+DCO2;                                                                   //SMCLK選擇LFXT1CLK
  28. // BCSCTL2 |= SELM_0;//MCLK采用1M的內部DCO   
  29. // BCSCTL2 |= DIVS_0;//SMCLK采用內部的時鐘


  30. }

  31. void hc164_init()
  32. {
  33.   P1DIR |=BIT6+BIT7+BIT0+BIT1+BIT2+BIT3;                            // P1.0 output
  34.   
  35. }

  36. void hc_sr04()
  37. {
  38.   P1DIR |=BIT4;
  39.   P1DIR &=~BIT5;
  40.   P1IE |=0x20;            //上升沿觸發(fā)
  41.   P1IES |=0x00;   
  42.   hc_sr04_flag=3;//默認準備發(fā)射狀態(tài)  
  43. }
  44. void sendbyte(uchar byte)
  45. {            
  46. uchar c,num;   
  47. num=byte;
  48. for(c=0;c<8;c++)        
  49. {     
  50. P1OUT&=~0x80;
  51. CLK0;   
  52. P1OUT|=num&0x80; //(0x80即十進制的128, 二進制的10000000 按位發(fā)送
  53. CLK1;         
  54. num<<=1;   
  55. }
  56. }


  57. void send_char(uchar weizhi,uchar byte)
  58. {
  59.   
  60.   P1OUT |= 0x0f;   
  61.   uchar c,send_byte;
  62.   send_byte=code_hex[byte];
  63.   if((weizhi==0)&&(xianshi_flag==0))
  64.    send_byte|=0x80;
  65.   if((weizhi==1)&&(xianshi_flag==1))
  66.    send_byte|=0x80;
  67.   sendbyte(send_byte);
  68.   c=weizhi&0x03;
  69.   P1OUT&=~(1<<c);
  70. }



  71. void init_TA()
  72. {

  73.   TACCR0 = 5000;                            //4ms中斷一次
  74.   TACTL = TASSEL_2 + MC_1;                  // SMCLK, upmode,8分頻,
  75.   TACCTL0 = CCIE;                           // TACCR0 interrupt enabled
  76. }


  77. void shumaguan()
  78. {
  79.    ++t;
  80. if(t>=4)
  81.    t=0;
  82.   send_char(t,dis_play[t]);
  83. }

  84. #pragma vector=TIMER0_A0_VECTOR  
  85. __interrupt void TIMERA0_ISR() // the interrupt source is CC0
  86. {
  87. shumaguan();
  88.   hc_sr04_cishu++;
  89.   if(( hc_sr04_flag==3)&&(hc_sr04_cishu==100))//500ms測距一次
  90.   {
  91.      hc_sr041;
  92.      P1IE |=0x20;
  93.      delay_us(10);
  94.      hc_sr040;     
  95.   }
  96.   
  97.   if(hc_sr04_flag==2)
  98. {
  99.    float juli;
  100.    uint juli1;
  101.    juli=(float)(hc_sr04_time/5.8139);
  102.    juli1=(uint)(juli);
  103.    if(juli1<10000)
  104.    {
  105.      xianshi_flag=0;
  106.      dis_play[0]=(juli1/1000);
  107.      dis_play[1]=(juli1%1000/100);
  108.      dis_play[2]=(juli1%1000%100/10);
  109.      dis_play[3]=(juli1%10);
  110.    }
  111.    else
  112.    {
  113.      xianshi_flag=1;
  114.      dis_play[0]=(juli1/10000);
  115.      dis_play[1]=(juli1%10000/1000);
  116.      dis_play[2]=(juli1%10000%1000/100);
  117.      dis_play[3]=(juli1%10000%1000%100/10);
  118.    }
  119.    hc_sr04_flag=3;
  120.    hc_sr04_cishu=0;
  121.    
  122. }
  123. }

  124. #pragma vector =PORT1_VECTOR
  125. __interrupt void Port_1(void)
  126. {
  127. switch(P1IES&0x20)
  128. {
  129.    case 0:TAR=0;P1IES=0x20;hc_sr04_flag=1;hc_sr04_cishu=0;break;
  130. case 0x20:hc_sr04_time=5000*hc_sr04_cishu+TAR;P1IES=0;hc_sr04_flag=2;P1IE &=~0x20;break;
  131. }
  132. P1IFG=0;

  133. }
復制代碼


回復

使用道具 舉報

ID:117823 發(fā)表于 2016-6-4 02:06 來自觸屏版 | 顯示全部樓層
這個和上個重復了,都是超聲波測速的。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美成人h版在线观看 | 欧美精品一二区 | 欧美日韩在线视频一区二区 | 天天干天天玩天天操 | 国产成人精品一区二区 | 夜夜草视频 | 最新伦理片 | 一道本在线 | 精品免费国产一区二区三区四区介绍 | 欧美视频三区 | 人人澡视频 | 亚洲精品久久久蜜桃 | 国产日韩欧美激情 | 中文在线一区 | 午夜精品| 黄a网 | 精品国产一区二区三区日日嗨 | 网站国产 | 日本在线免费看最新的电影 | 日本精品视频一区二区 | 欧美做暖暖视频 | 91在线视频网址 | 国产高清在线精品 | 精品日韩一区 | 欧美一二三四成人免费视频 | 成年男女免费视频网站 | 久久久www成人免费精品 | 在线视频中文字幕 | 欧美一级欧美一级在线播放 | 国产a级毛毛片 | 国产精品久久国产精品久久 | 久久精品色欧美aⅴ一区二区 | 亚洲视频www | 国产乱码久久久 | 99精品国产一区二区三区 | 色一阁| 中文字幕精品一区 | 在线观看免费av网站 | 极品的亚洲| 在线免费激情视频 | 日本福利一区 |