注釋: (1)TempStoragel是AD中斷服務(wù)程序存放AD采到數(shù)據(jù)(512字節(jié))的變量?! ?2)voidPage_Erase(BYTE*Page—Address)small//flash擦函數(shù)模塊;在主程序main中為“page_erase(2000h)”,在LED
(1)AD數(shù)據(jù)采集程序說明 1)過程簡單說明 使用C8051F32X片內(nèi)10位AD進(jìn)行256個數(shù)據(jù)(每個數(shù)據(jù)為10位,占2個字節(jié))512字節(jié)的數(shù)據(jù)采集?! 〔捎肨IME2定時溢出觸發(fā)啟動AD轉(zhuǎn)換方式。 在AD數(shù)
(1)硬件電路 利用4位LED數(shù)碼管顯示電路,可以制成24小時或12小時循環(huán)顯示的時鐘電路,且該時鐘可以由人工預(yù)置起始時刻,即電路插上電源后,可根據(jù)當(dāng)時的實時時刻,如手機或電視屏上顯示的時
前面的例子中,串口的收發(fā)采用中斷模式,雖然在一定程度上解放了CPU,但每個字節(jié)都要中斷一次,在115200波特率下,約8.7uS就要中斷一次,CPU仍然很累。直接存儲器訪問(DMA)方式可以進(jìn)一步解放CPU,本
一般教科書上提供的UART收發(fā)的程序往往是一段采用輪循(Polling)方式完成收發(fā)的簡單代碼。但對于高速的AVR來講,采用這種方式大大降低了 MUC的效率。在使用AVR時,應(yīng)根據(jù)芯片本身的特點(片內(nèi)大容量數(shù)據(jù)存
現(xiàn)在大部分的儀器設(shè)備都要求能過通過上位機軟件來操作,這樣方便調(diào)試,利于操作。其中就涉及到通信的過程。在實際制作的幾個設(shè)備中,筆者總結(jié)出了通信程序的通用寫法,包括上位機端和下位機端等 1.
設(shè)計采用高性能單片機C8051F020為控制芯片,監(jiān)控示波器面板上40個按鍵、3個編碼開關(guān)及4個電位器的狀態(tài)。分別介紹了鍵盤、編碼開關(guān)和電位器的工作原理,以及其與單片機連接的硬件電路及軟件編程的實現(xiàn)
看到網(wǎng)上有一些STC單片機免斷電下載程序的例子。但是都是要用串口中斷來完成。以下是一個程序片斷 拿來說明 在調(diào)試程序中加入串口初始化代碼,串口中斷代碼即可實現(xiàn)不斷電下載程序 TMOD|=0x20; S
//******************************************************************//@FileName: UART51.C//@Controller AT89S52//@Compiler Keil//@Hardware: 一個普通的I/O,一個定時器T0;和TXD//Descripti
#define __JUZHENJIANPAN_H extern u8 KeysCAN(void); extern void GPIO_Config(void); #endif #include "stm32f10x.h" #include"juzhenjianpan.h" #include"gpiobitmap.h" #define PC0 PCo_0
/*--------------------------------- 延時模塊函數(shù) 說明:只需在工程中加入delay.c和delay.h 文件,即可用 Delayms(__IO uint32_t nTime); Delayus(__IO uint32_t nTime) --------------------
#ifndef __AT24C02_H__ #define __AT24C02_H__ #include"stm32f10x.h" void iICinit(void); void iicwrite(u8 add,u8 Achar); u8 iicread(u8 add); #endif #include"stm32f10x.h" #include"a
標(biāo) 注:用到了 PD_0—7,給PO口(單片機板液晶數(shù)據(jù)口),PA0_2; 已在函數(shù)中將他們以寄存器形式配置,注踏出再次配置PD時 不應(yīng)在配置這些口; 在主函數(shù)中需將PD,PA使能。 頭函數(shù):#include"1602.h" 函
/*該程序用于使CCP1模塊產(chǎn)生分辨率為10位的PWM波形,占空比為50%*/ #include "p18f458.h" /*CCP1模塊的PWM工作方式初始化子程序*/ void CCP1INIT() { CCPR1L=0X7F; CCP1CON=0X3C; /*設(shè)置CCP1模
1、時鐘部分,TIMER2的時鐘頻率,我是初始化為36M. RCC_PCLK1Config(RCC_HCLK_Div2); //設(shè)置低速AHB時鐘=系統(tǒng)時鐘/2 RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); //倍頻系數(shù)為9 PLLCLK=