仿真見我的上傳資源
/******************************************************************
* 實驗名稱:IO特性(MSP430F249)
*
* 實驗說明:
* 通設置系統主時鐘(MCLK=8Mhz ) 、輔助時鐘(ACLK=8Mhz )、
* 子系統時鐘(SMCLK=8Mhz )
* 編譯軟件:Embedded Workbench 5.3
******************************************************************/
#include #define uchar unsigned char #define uint unsigned int void delayms(); uchar key = 0; uchar table[16] ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; uchar key_table[4][4] = { 1,2,3,4, 5,6,7,8, 9,10,11,12, 13,14,15,16}; // 鍵值編碼,對應一個4×4 矩陣 uchar position[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; uchar num_table[8]= {0,0,0,0,0,0,0,0}; uchar row_table[4]= {0xef,0xdf,0xbf,0x7f}; void show(uchar pos,uchar num) { P4OUT = 0x00; // tobe all turn off P6OUT |= 0x40; // DUAN 1 P4OUT = table[num]; //DUAN NUM P6OUT &= 0XBF; // DUAN 0 P4OUT = 0XFF; P5OUT |= 0X20; P4OUT &= position[pos]; P5OUT &= 0XDF; } uchar key_scan(int num) { uchar line = 0,temp = 0; P1OUT = row_table[num]; temp = P1IN&0x0f; if(temp != 0x0f) { delayms(10); temp =P1IN&0x0f; if(temp != 0x0f) { while(temp ==0x0f){temp =P1IN&0x0f;} //wait button off switch(temp) { case 0x0e: line = 0;break; case 0x0d: line = 1;break; case 0x0b: line = 2;break; case 0x07: line = 3;break; } return key_table[num][line]; } return 0; } return 0; } uchar Key_scan() { uchar i=0; i = key_scan(0); if(i != 0) return i; i = key_scan(1); if(i != 0) return i; i = key_scan(2); if(i != 0) return i; i = key_scan(3); return i; } void delayms(uint t) { uint i; while(t--) for(i=1330;i>0;i--);//進過參數的調整 } void main(void) { uchar i=0,key1=0; P1DIR = 0XFF;P1OUT = 0XFF; P2DIR = 0XFF;P2OUT = 0XFF; P3DIR = 0XFF;P3OUT = 0XFF; P4DIR = 0XFF;P4OUT = 0XFF; P5DIR = 0XFF;P5OUT = 0XFF; P6DIR = 0XFF;P6OUT = 0XFF; P6DIR |= 0X40; // p6^6 output P5DIR |=0X20; // P5^5 OUTPUT P4DIR = 0XFF; // P4 OUTPUT P1SEL = 0; // P1DIR = 0xF0; //p1.0--p1.3 IN ,p1.4--p1.7 OUT P1OUT |= 0XF0; P1IE |= 0x08; P1IES |= 0X08; // P1IFG &= ~0x08; _EINT(); WDTCTL=WDTPW + WDTHOLD; // 關閉看門狗 /*while(1) { show(0,key); delayms(10); //按鍵中斷測試程序 }*/ /*輪詢按鍵測試程序 while(1) { i = key_scan(0); if(i!=0) key1 = i; show(0,key1); }*/ } #pragma vector = PORT1_VECTOR __interrupt void PORT1_ISR(void) { key++; if(key == 9) key = 0; P1IFG &= ~0x08; return ; }
上一篇:msp430的中斷優先級和中斷嵌套(及容易理解錯誤的說明)
下一篇:MSP430F5438中斷函數兩種編寫方法
推薦閱讀
史海拾趣
在半導體市場競爭日益激烈的背景下,ASI也面臨著巨大的市場壓力和挑戰。為了應對市場波動和競爭壓力,ASI不斷調整戰略方向,加大在研發和創新方面的投入。公司不斷推出新產品、新技術,以滿足市場的不斷變化和客戶需求。同時,ASI也注重提升產品質量和服務水平,贏得了客戶的信任和好評。
隨著全球對環保和可持續發展的重視,ASI也積極響應這一趨勢,致力于研發更加環保、節能的半導體產品。公司不斷投入資源研發低功耗、高性能的芯片技術,為推動綠色電子產業的發展貢獻力量。同時,ASI也對未來充滿信心,將繼續加大在新技術、新應用領域的投入,為半導體行業的未來發展貢獻更多的智慧和力量。
這五個故事展示了Advanced Semiconductor, Inc.在電子行業中的發展歷程和取得的成就。從創立初期的艱難探索到如今的行業領先地位,ASI憑借其獨特的技術、創新的精神和敏銳的市場洞察力,不斷突破自我、超越自我,成為了半導體行業的一顆璀璨明星。
為了進一步擴大業務范圍和提升技術實力,Keil公司決定與美國德克薩斯州理查森的Keil Software Inc進行聯合運營。這一舉措不僅使公司得以接觸更廣闊的市場,還促進了雙方在技術、產品和市場等方面的深度融合。聯合運營后,Keil公司的發展速度明顯加快,逐漸在嵌入式系統開發工具市場上占據了重要地位。
1995年,大金在上海閔行建立了其在中國的第一家工廠——大金空調(上海)有限公司。這一舉措不僅標志著大金正式進入中國市場,也為公司在中國市場的長期發展奠定了堅實的基礎。通過與上海閔行的深入合作,大金在中國市場的業務不斷壯大,成為了中國家電市場的領軍企業之一。
以上故事均基于大金工業株式會社的發展歷史進行虛構創作,旨在展示公司在電子行業中的發展歷程和成就。
1969年,大金成功開發了一臺室外機連接多臺室內機的家用多聯系統空調。這一創新產品不僅提高了空調的能效比,還滿足了大型住宅和辦公場所的多樣化需求。多聯系統空調的誕生,使得大金在家用中央空調領域取得了領先地位。
ETA-USA一直注重技術創新和研發實力的提升。公司擁有一支高素質的研發團隊和先進的研發設施,不斷推出具有競爭力的新產品和解決方案。同時,ETA-USA還積極與高校、科研機構等合作,共同推動電子技術的創新和發展。
Linux是一個優秀的操作系統,它支持多用戶、多進程和多線程,實時性好,功能強大而穩定。 Linux標榜自由和開放。簡單的說,開源,免費。更重要的是完全DIY。 普及Linux電子書籍。開始Linux之旅的難點在哪?就是如何去安裝它。認真看完本教程,相 ...… 查看全部問答∨ |
|
目錄: 第一章 6502微處理器 第二章 Apple界面 第三章 輸入/輸入界面 第四章 旗號與決策 第五章 Apple之面包板 第六章 Apple界面試驗 第七章 再談巴士 第八章 馬達、燈泡、電鈴與汽笛… 查看全部問答∨ |
摘要:隨著DC-DC模塊電源向輸出低壓大電流的方向發展,同步整流技術的應用也越來越廣泛。與肖特基整流相比較,很顯然,在低壓大電流的應用中采用同步整流技術可以獲得更高的效率,同時,在某些應用方面,業界也發現采用同步整流技術的DC-DC模塊電源 ...… 查看全部問答∨ |
Mitsubishi - New Products Intelligent Power Modules with High Output Power (V1-Series) Mitsubishi Electric has launched the new V1-Series as part of the IPM (Intelligent Power Module) line-up. V1-Series is a new intelligent power ...… 查看全部問答∨ |
采用freescale的m8270為處理器,配置fcc1為HDLC nibble 模式,時鐘為brg5。配置完成后,將/CTS管腳拉低電平,用示波器測輸出管腳(txd0~txd3)有波形輸出,為0x7E(HDLC flag)。 當有數據發送時,給發送BD置上數據長度、地址,最后給狀態寄存器置上 ...… 查看全部問答∨ |
ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3); ChangeClockDivider(key, 12); cal_cpu_bus_clk(); 這三個函數分別什么作用,具體如何使用… 查看全部問答∨ |
|