//------------------------------------------------------------------------------------//此程序為ADC轉換程序,可以選擇向ADC0BUSY寫1或用定時器0,1,2,3作為ADC的啟動信號。////------------------------------------------------------------------------------------//頭文件定義//------------------------------------------------------------------------------------//#include <c8051f330.h> #include <stdio.h> //-----------------------------------------------------------------------------// 定義16位特殊功能寄存器//----------------------------------------------------------------------------- sfr16 ADC0 = 0xbd; sfr16 TMR0RL = 0xca; sfr16 TMR1RL = 0xca; sfr16 TMR2RL =0xca; sfr16 TMR3RL =0xca; sfr16 TMR0 = 0xCC; sfr16 TMR1 = 0xCC; sfr16 TMR2 = 0xcc; sfr16 TMR3 = 0xcc; //-----------------------------------------------------------------------------// 全局變量定義//-----------------------------------------------------------------------------char i;int result; //-----------------------------------------------------------------------------//定義常量//-----------------------------------------------------------------------------#define SYSCLK 49000000 #define SAMPLE_RATE 50000 //------------------------------------------------------------------------------------// 定義函數//------------------------------------------------------------------------------------void SYSCLK_Init (void);void PORT_Init (void);void Timer0_Init (int counts);void Timer1_Init (int counts);void Timer2_Init (int counts);void Timer3_Init (int counts);void ADC0_Init(void);void ADC0_ISR (void);void ADC0_CNVS_ADC0h(void);//------------------------------------------------------------------------------------// 主程序//------------------------------------------------------------------------------------ void main (void) { int ADCRESULT[50] ; int k; PCA0MD &= ~0x40; // 禁止看門狗 SYSCLK_Init (); PORT_Init (); Timer0_Init (SYSCLK/SAMPLE_RATE); //Timer1_Init (SYSCLK/SAMPLE_RATE); //選擇相應的啟動方式 //Timer2_Init (SYSCLK/SAMPLE_RATE); //Timer3_Init (SYSCLK/SAMPLE_RATE); ADC0_Init(); EA=1; while(1) { //ADC0_CNVS_ADC0h(); k=ADC0; ADCRESULT[i]=result; //此處設斷點,觀察ADCRESULT的結果 } }
上傳時間: 2013-10-13
上傳用戶:SimonQQ
X9241概述X9241是XICOR公司生產的、把4個E2POT數字電位器集成在單片的CMOS集成電路上的一種數字電位器。它包含4個電阻陣列,每個陣列包含63個電阻單元,在每個單元之間和2個端點之間都有被滑動單元訪問的抽頭點。滑動單元在陣列中的位置由用戶通過2線串行總線接口控制。每個電阻陣列與1個滑動端計數寄存器(WCR)和4個8位數據寄存器聯系在一起。這4個數據寄存器可由用戶直接寫入和讀出。WCR的內容控制滑動端在電阻陣列中的位置,其功能框圖如圖1所示。X9241工作原理 X9241支持雙向總線的定向規約,是一個從屬器件。它的高4位地址為0101(器件類型辨識符),低4位地址由A3~A0輸入端狀態決定。在SDA線上的數據只有在SCL為低期間才能改變狀態。當SCL為高時,SDA狀態的改變用來表示開始和終止條件(開始條件:SCL為高時,SDA由高至低的跳變;終止條件:SCL為高時,SDA由低至高的跳變)。送給X9241的所有命令都由開始條件引導,在其后輸出X9241從器件的地址。X9241把串行數據流與該器件的地址比較,若地址比較成功,則作出一個應答響應。送到X9241的下一個字節包括指令及寄存器指針的信息,高4位為指令,低4位用來指出4個電位器中的1個及4個輔助寄存器中的1個。
上傳時間: 2014-01-18
上傳用戶:黃酒配奶茶
直線、圓等圖形函數的匯編語言實現 本例所用的繪圖函數均采用堆棧的方法傳遞參數,可以和C語言接口。畫點的函數采用直接寫顯存的方法。為了直接由CPU數據確定像素顏色,而不使用位屏蔽寄存器或置位/重置寄存器,采用了VGA的寫模式2方式。直線和圓的算法均采用Bresenham算法實現,其實現過程及堆棧狀態均有較詳細的說明。最后,將繪圖函數用宏封裝了起來,便于主程序中調用。當然,主程序中也可直接將參數壓入堆棧。其實在較高版本的編譯程序中,可以用PROTO偽指令定義函數原型,再用INVOKE偽指令調用。
上傳時間: 2013-12-20
上傳用戶:hgy9473
//串行驅動led顯示, //一個74hc595位移寄存器驅動三極管驅動led位, //兩個74hc595驅動led段,方式位5位x8段x2=10個數碼管 //5分頻,每次掃描時間位1.25ms //定義特殊符號
上傳時間: 2015-03-30
上傳用戶:海陸空653
交通燈: 1. 因為本設計是交通燈的控制,所以要先了解實際交通燈的變化規律。假設一個十字路口為東西南北走向。初始狀態0為東西紅燈,南北紅燈。然后轉狀態1南北綠燈通車,東西紅燈。過一段時間轉狀態2,南北綠燈閃幾次轉亮黃燈,延時幾秒,東西仍然紅燈。再轉狀態3,東西綠燈通車,南北紅燈。過一段時間轉狀態4,東西綠燈閃幾次轉亮黃燈,延時幾秒,南北依然紅燈。最后循環至狀態1。 2. 雙色LED是由一個紅色LED管芯和一個綠色管芯封裝在一起,公用負端。當紅色正端加高電平,綠色正端加低電平,紅燈亮;紅色正端加低電平,綠色正端加高電平,綠燈亮;兩端都加高電平,黃燈亮。 急救車和交通燈: 中斷服務程序的關鍵是:1. 保護進入中斷時的狀態,并在推出中斷之前恢復進入時的狀態;2. 必須在中斷程序中設定是否允許中斷重入,即設置EX0位。 本設計使用了INT0中斷,一般中斷程序進入時應保護 PSW,ACC以及中斷程序使用但非其專用的寄存器。本設計中的INT0程序保護了PSW,ACC,2等三個寄存器并且在退出前恢復了這三個寄存器。另外中斷程序中涉及到關鍵數據的設置時應關中斷,及設置時不允許重入。本設計中沒有涉及這種情況。 name:trled1.asm trled2.asm
上傳時間: 2014-01-05
上傳用戶:凌云御清風
CAN的調試程序。CAN的初始化重要包括下面幾個方面。RXB0SIDH,RXB0SIDL,RXB0MIDH,RXB0MIDL。這是接收過濾器。TXB0SIDH,TXB0SIDL,TXB0DLC,這是發送標志位。還有波特率寄存器。操作模式為 正常模式。
上傳時間: 2013-12-22
上傳用戶:dsgkjgkjg
該程序實現的是n位全加器,首先用與非門實現一位全家器,最后實現n位的全加器。
上傳時間: 2015-04-18
上傳用戶:fandeshun
利用8031串行口,和并行輸出串行移位寄存器74LS164,擴展一位數碼顯示在數碼顯示器上循環顯示0-9這10個數字
上傳時間: 2014-01-20
上傳用戶:三人用菜
ATmega128L單片機 數據手冊 ATmega128L微控制器,它是采用低功耗COMS工藝生產的基于RISC結構的8位微控制器,是目前AVR系列中功能最強大的單片機。AVR核將32個工作寄存器和豐富的指令集聯結在一起,所有的工作寄存器都與ALU直接相連,實現了在一個時鐘周期內執行單條指令的同時訪問兩個獨立寄存器的操作,具有良好的性價比。
上傳時間: 2013-12-26
上傳用戶:skhlm
【經典設計】VHDL源代碼下載~~ 其中經典的設計有:【自動售貨機】、【電子鐘】、【紅綠燈交通信號系統】、【步進電機定位控制系統】、【直流電機速度控制系統】、【計算器】、【點陣列LED顯示控制系統】 基本數字邏輯設計有:【鎖存器】、【多路選擇器】、【三態門】、【雙向輸入|輸出端口】、【內部(緩沖)信號】、【編碼轉換】、【加法器】、【編碼器/譯碼器】、【4位乘法器】、【只讀存儲器】、【RSFF觸發器】、【DFF觸發器】、【JKFF觸發器】、【計數器】、【分頻器】、【寄存器】、【狀態機】
上傳時間: 2015-06-16
上傳用戶:chenxichenyue