utilities.h#ifndefUTILITIES_H_INCLUDED#defineUTILITIES_H_INCLUDEDtypedefunsignedcharuchar,BYTE,uint8;typedefunsignedintuint,WORD,uint16;typedefunsignedlongulong,DWORD,uint32;typedefcharint8;typedefint
此程序模擬普通的電子表的功能,實(shí)現(xiàn)了時(shí),分,秒的顯示,并有調(diào)表功能.程序簡(jiǎn)單,好多地方并沒(méi)有注意細(xì)節(jié),只是實(shí)現(xiàn)了部分功能./************************************************************************//*程序:?jiǎn)纹?/p>
電路原理圖 EEPROM為ATMEL公司的AT24C01A。單片機(jī)為ATMEL公司的AT89C51。軟件說(shuō)明C語(yǔ)言為Franklin C V3.2。將源程序另存為testi2c.c,用命令C51 testi2c.cL51 TESTI2C.OBJOHS51 TESTI2C編譯,連接,得到TESTI2C.HEX
采用移位減法的算法。源碼如下:1 ;//////////////////////////////////////////////////////////////////////////////2 ;函數(shù): div_u24_u83 ;描述: 無(wú)符號(hào)雙字節(jié)除以單字節(jié)4 ;入口: (R5,R6,R7)/(R0)5 ;出口: (R
百度ds1302 寫道DS1302 是美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信
LED數(shù)碼管是單片機(jī)外圍接口設(shè)備中常用的顯示設(shè)備,有七段管和米字管兩種,實(shí)驗(yàn)室中常用的是七段管。其工作方式有兩種:共陰極和共陽(yáng)極。所謂共陰極是把LED的com端都接地,而共陽(yáng)極就是把com端都接高電平。其驅(qū)動(dòng)顯示
位清0指令CLR C ;使CY=0CLR bit ;使指令的位地址等于0。例:CLR P1.0 ;即使P1.0變?yōu)?位置1指令SETB C ;使CY=1SETB bit ;使指定的位地址等于1。例:SETB P1.0 ;使P.0變?yōu)?位取反指令CPL C ;使CY等于原來(lái)的相反的值,由
1.定義的變量不要太多。低128位為用戶定義變量的存放區(qū)域(默認(rèn)時(shí)),也可以把變量放在高128位,但容易出錯(cuò),盡量少放,最好不放。通過(guò)M51可以查看內(nèi)存變量的存放,最好不要超過(guò)110個(gè)字節(jié),否則程序無(wú)法運(yùn)行或出錯(cuò)
8個(gè)發(fā)光管由上至下間隔1s流動(dòng),其中每個(gè)管亮500ms,滅500ms,亮?xí)r蜂鳴器響,滅時(shí)關(guān)閉蜂鳴器,一直重復(fù)下去。C++ Code12345678910111213141516171819202122232425262728293031323334#include#include#defineucharunsign
1 //晶振的頻率2 #define OSC_FREQ (11059200UL)34 //每個(gè)指令的振蕩周期數(shù)(4,6,12),注意,這里一定要仔細(xì)查看芯片手冊(cè)5 //*12 - 早期的8051、8052及當(dāng)前的絕大部分51單片機(jī)6 //*6 - Philips 的芯片7 //*4 - Dall
TX-1C板操作并行模式的1602液晶液晶第1,2腳是gnd和vcc第3腳是對(duì)比度調(diào)節(jié)第4腳是數(shù)據(jù)/指令選擇端RS第5腳是讀寫選擇端R/W,我們這次只寫不讀,故直接接地第6腳是讀寫使能EN第7到14腳是數(shù)據(jù)口,我們接STC89C52RC的P0口第15
這個(gè)小項(xiàng)目自己做了5天,小有成就感。。。感謝前輩們多多提意見。。12864液晶、DS12C887時(shí)鐘芯片、DS18B20溫度傳感器。。。#define uchar unsigned char#define uint unsigned intuint temp;float f_temp;sbit Ds=P2
這個(gè)指令的作用是把累加器A的8位無(wú)符號(hào)整數(shù)除以寄存器B中的8位無(wú)符號(hào)整數(shù),所得到的商存在累加器A,而余數(shù)存在寄存器B中。除法運(yùn)算總是使OV和進(jìn)位標(biāo)志位CY等于0。如果OV=1,表明寄存器B中的內(nèi)容為00H,那么執(zhí)行結(jié)果為
看到很多在做電子工程設(shè)計(jì)的朋友在討論:51單片機(jī)轉(zhuǎn)到ARM該怎樣學(xué)習(xí)?《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》小編為大家找到了這樣一位工程師,談?wù)勊膶?shí)際經(jīng)驗(yàn)~ 我以前一直用的是51,不過(guò)一直是C51,對(duì)C語(yǔ)言已經(jīng)有10多年的
有個(gè)出租車計(jì)價(jià)器的題目,給出了匯編的程序,要求改為 C 語(yǔ)言的程序。這匯編的程序,編寫的很復(fù)雜,實(shí)現(xiàn)的功能卻還是很簡(jiǎn)陋。在硬件方面,顯示金額的位數(shù)也不足。做而論道用 C 重新編寫了一個(gè)程序,如下:#i
近來(lái),看到好幾個(gè)要求用 51 單片機(jī)和數(shù)碼管來(lái)設(shè)計(jì)計(jì)算器的題目51 單片機(jī),本質(zhì)上是微控制器,以邏輯運(yùn)算見長(zhǎng)。用它來(lái)設(shè)計(jì)計(jì)算器 ?不知道誰(shuí)想出來(lái)的這樣的題目,思路明顯就是跑偏了,呵呵特別是后一個(gè)的題目
51?系列單片機(jī)是高電平復(fù)位。如果在?AT89S52?的?9?號(hào)引腳(RST)加上寬度大于?2?個(gè)機(jī)器周期的高電平,該單片機(jī)芯片就將處于復(fù)位狀態(tài)。復(fù)位時(shí):PC?=?0000H,SP?=?07H,P0~
利用?51?單片機(jī)構(gòu)成計(jì)數(shù)器,計(jì)數(shù)的上限,做的大一些,也不難,幾千幾萬(wàn)都可以。下面的電路,小了一點(diǎn),是個(gè)兩路兩位的計(jì)數(shù)器。用來(lái)記錄乒乓球比賽,還算可以,用于籃球比賽,分?jǐn)?shù)超過(guò)?99,這個(gè)電路就不夠用了
利用 2 個(gè)實(shí)驗(yàn)系統(tǒng)通過(guò) 232 通信,實(shí)現(xiàn)雙機(jī)串行通信功能。用匯編或 C 語(yǔ)言編寫一個(gè) 51 單片機(jī)程序,用本側(cè)的 K0~K3 能控制對(duì)側(cè)的 L0~L3,用對(duì)側(cè)的 K0~K3 能控制本側(cè)的 L0~L
//實(shí)例6:使用P0口流水點(diǎn)亮8位LED#include //包含單片機(jī)寄存器的頭文件 /**************************************** 函數(shù)功能:延時(shí)一段時(shí)間 *****************************************/void delay(void) {