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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3748|回復: 1
打印 上一主題 下一主題
收起左側

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

[復制鏈接]
跳轉到指定樓層
樓主
ID:111475 發表于 2016-3-30 19:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
74HC164數碼管顯示 msp430g2553IAR: 74HC164數碼管顯示.zip (164.57 KB, 下載次數: 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;            //上升沿觸發
  41.   P1IES |=0x00;   
  42.   hc_sr04_flag=3;//默認準備發射狀態  
  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 按位發送
  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. }
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:117823 發表于 2016-6-4 02:06 來自手機 | 只看該作者
這個和上個重復了,都是超聲波測速的。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91亚洲欧美 | 国产精品不卡一区 | 精品久久久久香蕉网 | 亚洲欧美在线视频 | 污污的网站在线观看 | 一区二区三区四区免费在线观看 | 日韩欧美专区 | 情侣黄网站免费看 | 亚洲综合一区二区三区 | 日韩视频在线观看中文字幕 | 美女午夜影院 | 99精品一区二区三区 | 国产三级大片 | 久久久久久亚洲精品 | 欧美日韩国产精品一区二区 | 97色在线观看免费视频 | 欧美黑人又粗大 | 一区二区精品视频 | 久久久久久999 | 亚洲国产精品成人 | 欧美一级片在线观看 | 国产亚洲成av人在线观看导航 | 农夫在线精品视频免费观看 | 国产欧美日韩视频 | 在线观看视频91 | a级在线免费视频 | 亚洲性人人天天夜夜摸 | 欧美综合久久 | 久久久久国产精品午夜一区 | 亚洲精选久久 | 国产精品久久久久久高潮 | 亚洲三区视频 | 手机在线一区二区三区 | 亚洲国产成人精品久久久国产成人一区 | 久久久久久蜜桃一区二区 | 免费三级黄| 日韩在线一区二区三区 | 国产精品视频导航 | 激情一区| 99久久精品免费看国产小宝寻花 | 国产综合精品 |