以AT89C51為主器件.I2C總線上連接4個(gè)PCF8591芯片,芯片地址分別為(OOOb、OlOb、020b、400b),89C51的P3.6作為SCL信號(hào).P3.7做為SDA信號(hào),每個(gè)芯片的模擬輸入采用單端方式輸入,參考電壓VREF選用4.
學(xué)過(guò)C語(yǔ)言的人都知道,main函數(shù)是程序啟動(dòng)的入口函數(shù),每一個(gè)C語(yǔ)言程序里有一個(gè)main函數(shù),在程序里它是唯獨(dú)一個(gè)不能被其他函數(shù)調(diào)用的特殊函數(shù)。在眾多的單片機(jī)C語(yǔ)言編譯器里對(duì)main函數(shù)的寫法都沒(méi)有明
我們通過(guò)對(duì)一個(gè)自動(dòng)演奏延遲程序電路及配套程序的介紹,來(lái)講解“置位”、“清位”等指令和延時(shí)程序的編制原理?! ∫?、發(fā)聲原理 由圖可知,如果我們要使B2發(fā)出一定頻率的聲音,只要改變
該電路連接見下圖所示:89C51的P31腳(TXD)與24C01的SCL腳相連,作為時(shí)鐘輸入端。89C51的P30腳(RXD)與24C01的SDA腳相連,作為數(shù)據(jù)讀寫端。兩者都通過(guò)上拉電阻接5V電源。單片機(jī)其余連線照常,在此圖中
該系統(tǒng)的程序設(shè)計(jì)主要包括兩大部分,分別是USB接口部分固件程序和計(jì)算機(jī)端的CH372驅(qū)動(dòng)程序。前者主要包括了單片機(jī)和CH372的初始化、讀寫接口程序和中斷服務(wù)程序;后者包括了USB設(shè)備的驅(qū)動(dòng)程序和相關(guān)
uIP其主要是為8位和16位系統(tǒng)設(shè)計(jì)的,程序在編寫時(shí)就考慮到了移植問(wèn)題。uIP的主要文件包括uip.c和uip_arp.c。 (1)移植的基本過(guò)程。 針對(duì)所用編譯器的類型更改定義數(shù)據(jù)類型,底層RTL80
volatile的意思是易變的、可變的,作用是限制編譯器優(yōu)化某些變量。首先看一段C51程序: Keil在優(yōu)化級(jí)別是為8時(shí)得到如下匯編代碼(部分未列出): 可以看到,變量d的值賦給x,y,z時(shí),只有x中
Keil C51編譯器是一個(gè)完全支持ANSI標(biāo)準(zhǔn)的C語(yǔ)言編譯器,除少數(shù)關(guān)鍵地方外,KEILC和標(biāo)準(zhǔn)ANSI C語(yǔ)言是基本類似的;但是由于51單片機(jī)結(jié)構(gòu)的特殊性,KEIL C進(jìn)行了一些擴(kuò)展?! EIL C51的擴(kuò)展類型如
USB固件分為通用枚舉配置部分和類協(xié)議部分。以利用CH375主機(jī)端協(xié)議與大容量存儲(chǔ)設(shè)備(例如U盤等)通信為例,介紹固件編程中重要的函數(shù)及其實(shí)現(xiàn)方法?! ≈鳈C(jī)要想識(shí)別USB設(shè)備,必須獲得設(shè)備的各
FFT算法是計(jì)算離散傅里葉變換的方法,它大大地減少了運(yùn)算量,縮短了運(yùn)算時(shí)間,使實(shí)時(shí)分析成為可能?! “磿r(shí)間抽取的FFT算法通常將原始的數(shù)據(jù)倒位序存儲(chǔ),最后按照正常順序輸出結(jié)果X 下面是128點(diǎn)
單片機(jī)的一個(gè)浮點(diǎn)數(shù)一般在KeilC51中是以4字節(jié)形式存儲(chǔ)的,格式嚴(yán)格遵循IEEE-754標(biāo)準(zhǔn)。在單片機(jī)二進(jìn)制數(shù)據(jù)中,浮點(diǎn)數(shù)用兩個(gè)部分來(lái)表示,基C為2,E為階碼,M為尾數(shù),E的保存形式是一個(gè)0~255的8位值,
為了更好的與實(shí)際銜接,有三個(gè)方面要考慮:發(fā)送FSK信號(hào)的形式和參數(shù),解調(diào)器的抗干擾性能,即差錯(cuò)率與輸入信號(hào)比的關(guān)系,技術(shù)的可行性及設(shè)備成本等。從抗干擾性能上考慮我們采用相干解調(diào)法最好,但
我們可以用數(shù)字濾波方法的C語(yǔ)言程序代碼子函數(shù),來(lái)完成軟件濾波功能。我們假定,從8位AD中讀取數(shù)據(jù),如果是更高位的AD可以定義數(shù)據(jù)類型為int,子程序定義為get_ad()。 (1)算術(shù)平均濾波程序,
串行A/D轉(zhuǎn)換器轉(zhuǎn)換后的結(jié)果是以串行方式輸出,數(shù)字量以串行方式輸出可簡(jiǎn)化系統(tǒng)的連線,縮小電路板的面積,節(jié)省系統(tǒng)的資源。下面以TLC2543為例,介紹串行A/D驅(qū)動(dòng)程序的設(shè)計(jì)?! ?9C51單片機(jī)與T
AVR單片機(jī)問(wèn)世以來(lái),獲得廣泛關(guān)注。它是一種采用精簡(jiǎn)指令集、以時(shí)鐘周期為機(jī)器周期的高速單片機(jī)。它采用快速寄存器文件(共有32個(gè)寄存器 R0~R31,其中R16~R31具有較強(qiáng)通用功能)、快速單周期指令。另外