單片機c語言編程pdf
#include <AT89X51.h> //包含頭文件
unsigned char code dispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //定義數碼管位選碼
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};//定義數碼管段選碼
unsigned char dispbuf[8]={0,0,0,0,0,0,10,10}; //顯示碼數組,因為只用了六個數碼管,所以將最後兩位賦值為10對應與段碼0x00,表示不亮
unsigned char temp[8]; //暫存數組
unsigned char dispcount; //掃描位的記錄
unsigned char T0count; //計數次數
unsigned char timecount; //定時器5ms中斷的次數
bit flag; //定義標志位
unsigned long x; //定義變數用來存放頻率值
void main(void)
{
unsigned char i;
TMOD=0x15; //定義定時器0為計數方式,定時器1為記時方式,均工作在方式1
TH0=0; //定時器0初值高8位為0
TL0=0; //定時器0初值低8位為0
TH1=(65536-5000)/256; //定時器1初值高8位
TL1=(65536-5000)%256; //定時器1初值低8位,即定時5ms
TR1=1;//啟動定時器1
TR0=1;//啟動定時器0
ET0=1;//開定時器0中斷
ET1=1;//開定時器1中斷
EA=1; //開總中斷
while(1)
{
if(flag==1) //如果定時時間到了1s
{
flag=0; //標志位清零
x=T0count*65536+TH0*256+TL0; //獲得整型的頻率值,T0count計數器在1s內溢出的次數,每溢出一次就計數了T0count*65536次,再加上當前計數寄存器的值即為實際計數總數
for(i=0;i<8;i++)
{
temp[i]=0; //暫存緩沖區清零
}
i=0;
while(x/10) //將頻率值的每一位分離出來,存進temp數組,例如63239分離為6、3、2、3、9
{
temp[i]=x%10;
x=x/10;
i++;
}
temp[i]=x;
for(i=0;i<6;i++)
{
dispbuf[i]=temp[i]; //將暫存數組的數據賦給顯示數組
}
timecount=0; //記時清零
T0count=0; //計數清零
TH0=0; //定時器0初值清零
TL0=0; //定時器0初值清零
TR0=1; //重新啟動定時器0,其實是作為計數器來用
}
}
}
void t0(void) interrupt 1 using 0 //每個計數中斷一次
{
T0count++; //計數加一
}
void t1(void) interrupt 3 using 0 //5ms產生一次中斷
{
TH1=(65536-5000)/256; //
TL1=(65536-5000)%256; //重裝初值
timecount++;
if(timecount==200) //當timecount=200時,即為1s
{
TR0=0; //關閉定時器0,為了讀出定時器0計數個數
timecount=0; //timecount清零,重新計時
flag=1; //置標志位通知主程序1s已到
}
/**********以下為數碼管掃描部分**********/
//因為放在該中斷程序中,故每5ms掃描一位數碼管
P2=0xff; //先關閉所有數碼管
P0=dispcode[dispbuf[dispcount]]; //先確定相應數碼管的段碼,送入段碼
P2=dispbit[dispcount]; //送入位碼
dispcount++; //下一次應該掃描下一位數碼管所以要加一
if(dispcount==8) //因為共有8個數碼管
{
dispcount=0; //掃描完第7個,回頭掃描第0個
}
}
㈡ 新概念51單片機C語言教程——入門、提高、開發、拓展(附光碟) 求這本書的pdf格式和隨書光碟。謝謝~
附件中有網路網盤:
新概念51單片機C語言教程PDF
新概念51單片機C語言教程隨書光碟
㈢ 單片機c語言編程
單片機C語言程序設計入門課程,說起來容易,說起來難。學習單片機C語言,首先要了解這兩個東西是什麼。單片機入門編程主要是學習C語言,其次是電路和編程語言。單片機C語言程序設計學習中必讀的模擬電、數字電、電路三本書,為接下來的學習做鋪墊。看書的目的是因為網上教程太多,容易出現偏差。其實只要能懂電路原理,就能開發單片機軟體。簡介單片機又稱單片微控制器,不是執行某種邏輯功能的晶元,而是將一個計算機系統集成到一個晶元中。相當於一台微型計算機,與計算機相比,單片機只是缺少I/O設備。綜上所述,晶元變成了電腦。它體積小、重量輕、價格低,為研究、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理和結構的最佳選擇。單片機已經廣泛應用於智能儀器、實時工業控制、通訊設備、導航系統、家用電器等領域。自20世紀90年代以來,單片機技術得到了發展。隨著時代的進步和科技的發展,這項技術的實際應用也越來越成熟,單片機被廣泛應用於各個領域。如今,人們越來越重視單片機在智能電子技術中的發展和應用,單片機的發展進入了一個新的時期。無論是自動測量的實踐,還是智能儀器的實踐,都可以看到單片機技術的身影。在當前的產業發展過程中,電子產業是一個新興的產業。在工業生產中,人們已經成功地應用了電子信息技術,將電子信息技術與單片機技術相結合,有效地提高了單片機的應用效果。作為計算機技術的一個分支,單片機技術在電子產品領域的應用豐富了電子產品的功能,為智能電子設備的開發和應用提供了新的途徑,實現了智能電子設備的創新和發展。以上內容參考:網路-單片機
你應該先學習C語言。你可以讀譚浩強和單片機的書,循序漸進。別擔心。基礎好,什麼都能說。
如果你沒學過微機原理,建議你先學完再買本上海馬超的書,一周就能看懂了~
不認同無意義的光。《C編程》確實創造了一時的輝煌,這種輝煌很可能會延續下去,但不代表就是最好的。這本書之所以流行,是因為當時沒有辦法學習C,這本書很好理解。但是現在這本書太落後了,甚至3版還在用老標准,現在大家普遍用C99標准。老標准不能用Dev C編譯而且好像提問者應該知道C的基礎,推薦《單片機C語言編程及實例》這本書。直接搜索就能找到PDF版本的下載。-馬克·提埃洛
看譚浩強老師的。清華大學出版的《飢餓》。
㈣ 單片機教程
敏學網的單片機頻道有很多單片機視頻教程
學習網單片機資料部分列表:
《手把手教你學51單片機與Proteus從入門到精通》[壓縮包]
《單片機 視頻教程 宋老師 手把手教你學單片機 C語言 51單片機開發 嵌入式 金沙灘電子科技》
《從51單片機到ARM征服嵌入式教程 AVR篇 (持續更新)》(Professional embedded from 51 mcu to ARM)2.0[壓縮
《手把手教你學單片機之入門篇》更新完畢[RMVB]
《手把手教你學單片機之附錄篇》更新完畢[RMVB]
《手把手教你學單片機之引論篇》更新完畢[RMVB]
《51單片機到ARM征服嵌入式》更新完畢[RMVB]
《手把手教你學單片機之入門篇》更新至第04集[RMVB]
《十天學會單片機和C語言編程(更新完畢)》[MP4]
《51單片機到ARM征服嵌入式51篇 Lesson1》
《YCDZ-51&AVR 51單片機學習板 完全兼容TX-IC 手工焊接視頻》V1.0[壓縮包]
《零基礎一周學會PIC 單片機視頻教程》[壓縮包]
《單片機軟硬體設計視頻教程集》
《原創單片機和機器人技術資料》張建高整理[光碟鏡像]
《郭天祥十天學會PIC單片機》(Learning PIC MCU in 10 Days)[壓縮包]
《PIC單片機電子書》 PDF
《十天學會單片機和C語言編程》
《單片機論文資料》[PDF&NH&KDH]
《單片機系列課件》[PPT]
《單片機應用技術大全》[PDG]
㈤ 跪求《單片機C語言程序設計實訓100例——基於8051+Proteus模擬》完整pdf文檔和源代碼
http://wenku..com/view/47a19811cc7931b765ce15dd.html
站著求就行了,別跪。
這有相關學習資料:
http://wenku..com/search?word=%B5%A5%C6%AC%BB%FAC%D3%EF%D1%D4%B3%CC%D0%F2%C9%E8%BC%C6%CA%B5%D1%B5100%C0%FD%A1%AA%A1%AA%BB%F9%D3%DA8051%2BProteus%B7%C2%D5%E6&lm=0&od=0
㈥ 51單片機項目教程 C語言版 高清帶書簽(吳險峰)PDF,哪裡可以下載
《51單片機項目教程C語言版 贈單片機開發板.pdf》(選擇普通下載即可!)
1、找到這本資料,美中不足就是沒有書簽,湊合看吧;
2、手機瀏覽器網頁端登 陸 或 PC電腦端登 陸,即可查看、下載;
3、文件有時效性,若失效或下載問題,留言;
㈦ 誰有《零基礎學單片機C語言程序設計 第2版-趙建領 & 薛園園》電子書百度網盤資源下載
《零基礎學單片機C語言程序設計 第2版-趙建領 & 薛園園》網路網盤txt最新全集下載
鏈接:
style 內容包括51系列單片機開發環境和流程、程序設計基礎以及編程指南,並給出了一些常用的典型案例。
㈧ 求51單片機c語言教程 pdf
單片機學習方法:
網上單片機資料很多:
http://www.mcufan.com/scom.htm
http://www.51c51.com/cyuyan.htm
http://www.laogu.com/downtop.aspx
上面去搜搜看單片機的學習資料,都有入門級的
另外書店裡面入門級的書也很多,可以買一本(北航出版的比較好)
1.入門時先了解單片機的構造啊原理啊
2.如果沒有實驗板自己搭建單片機的最小平台是比較難的
網上有個叫proteus的軟體,可以用於單片機的模擬,就是說你編的程序可以在這個軟體里運行,效果挺逼真的,可免費下載.
3.單片機的編程軟體有keil或者wave,推薦前者,可以用c語言編寫也可以匯編語言,c語言比較好學,推薦入門學習c語言,(可以買c和匯編語言都有介紹的單片機的書)
4.然後用keil編寫程序在proteus上跑起來,如果你能點亮經典的單片機流水燈實驗,那你就已經入門了
另:單片機的開發板或者最小系統可以買,電路水平高的話也可以自己搭建起來,51單片機大概6塊左右一片自己搭建最小系統很便宜滴,學單片機一定要多做實驗,不過推薦還是從模擬入門,模擬成功了後面的就有方向了.
㈨ 單片機c語言編程
單片機的外部結構:
DIP40雙列直插;
P0,P1,P2,P3四個8位準雙向I/O引腳;(作為I/O輸入時,要先輸出高電平)
電源VCC(PIN40)和地線GND(PIN20);
高電平復位RESET(PIN9);(10uF電容接VCC與RESET,即可實現上電復位)
內置振盪電路,外部只要接晶體至X1(PIN18)和X0(PIN19);(頻率為主頻的12倍)
程序配置EA(PIN31)接高電平VCC;(運行單片機內部ROM中的程序)
P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1
單片機內部I/O部件:(所為學習單片機,實際上就是編程式控制制以下I/O部件,完成指定任務)
四個8位通用I/O埠,對應引腳P0、P1、P2和P3;
兩個16位定時計數器;(TMOD,TCON,TL0,TH0,TL1,TH1)
一個串列通信介面;(SCON,SBUF)
一個中斷控制器;(IE,IP)
針對AT89C52單片機,頭文件AT89x52.h給出了SFR特殊功能寄存器所有埠的定義。教科書的160頁給出了針對MCS51系列單片機的C語言擴展變數類型。
C語言編程基礎:
十六進製表示位元組0x5a:二進制為01011010B;0x6E為01101110。
如果將一個16位二進數賦給一個8位的位元組變數,則自動截斷為低8位,而丟掉高8位。
++var表示對變數var先增一;var—表示對變數後減一。
x |= 0x0f;表示為 x = x | 0x0f;
TMOD = ( TMOD & 0xf0 ) | 0x05;表示給變數TMOD的低四位賦值0x5,而不改變TMOD的高四位。
While( 1 ); 表示無限執行該語句,即死循環。語句後的分號表示空循環體,也就是{;}
在某引腳輸出高電平的編程方法:(比如P1.3(PIN4)引腳)
#include <AT89x52.h> //該頭文檔中有單片機內部資源的符號化定義,其中包含P1.3
void main( void ) //void 表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口
{
P1_3 = 1; //給P1_3賦值1,引腳P1.3就能輸出高電平VCC
While( 1 ); //死循環,相當 LOOP: goto LOOP;
}
注意:P0的每個引腳要輸出高電平時,必須外接上拉電阻(如4K7)至VCC電源。
在某引腳輸出低電平的編程方法:(比如P2.7引腳)
#include <AT89x52.h> //該頭文檔中有單片機內部資源的符號化定義,其中包含P2.7
void main( void ) //void 表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口。
{
P2_7 = 0; //給P2_7賦值0,引腳P2.7就能輸出低電平GND
While( 1 ); //死循環,相當 LOOP: goto LOOP;
}
在某引腳輸出方波編程方法:(比如P3.1引腳)
#include <AT89x52.h> //該頭文檔中有單片機內部資源的符號化定義,其中包含P3.1
void main( void ) //void 表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口
{
While( 1 ) //非零表示真,如果為真則執行下面循環體的語句
{
P3_1 = 1; //給P3_1賦值1,引腳P3.1就能輸出高電平VCC
P3_1 = 0; //給P3_1賦值0,引腳P3.1就能輸出低電平GND
} //由於一直為真,所以不斷輸出高、低、高、低……,從而形成方波
}
將某引腳的輸入電平取反後,從另一個引腳輸出:( 比如 P0.4 = NOT( P1.1) )
#include <AT89x52.h> //該頭文檔中有單片機內部資源的符號化定義,其中包含P0.4和P1.1
void main( void ) //void 表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口
{
P1_1 = 1; //初始化。P1.1作為輸入,必須輸出高電平
While( 1 ) //非零表示真,如果為真則執行下面循環體的語句
{
if( P1_1 == 1 ) //讀取P1.1,就是認為P1.1為輸入,如果P1.1輸入高電平VCC
{ P0_4 = 0; } //給P0_4賦值0,引腳P0.4就能輸出低電平GND
else //否則P1.1輸入為低電平GND
//{ P0_4 = 0; } //給P0_4賦值0,引腳P0.4就能輸出低電平GND
{ P0_4 = 1; } //給P0_4賦值1,引腳P0.4就能輸出高電平VCC
} //由於一直為真,所以不斷根據P1.1的輸入情況,改變P0.4的輸出電平
}
將某埠8個引腳輸入電平,低四位取反後,從另一個埠8個引腳輸出:( 比如 P2 = NOT( P3 ) )
#include <AT89x52.h> //該頭文檔中有單片機內部資源的符號化定義,其中包含P2和P3
void main( void ) //void 表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口
{
P3 = 0xff; //初始化。P3作為輸入,必須輸出高電平,同時給P3口的8個引腳輸出高電平
While( 1 ) //非零表示真,如果為真則執行下面循環體的語句
{ //取反的方法是異或1,而不取反的方法則是異或0
P2 = P3^0x0f //讀取P3,就是認為P3為輸入,低四位異或者1,即取反,然後輸出
} //由於一直為真,所以不斷將P3取反輸出到P2
}
注意:一個位元組的8位D7、D6至D0,分別輸出到P3.7、P3.6至P3.0,比如P3=0x0f,則P3.7、P3.6、P3.5、P3.4四個引腳都輸出低電平,而P3.3、P3.2、P3.1、P3.0四個引腳都輸出高電平。同樣,輸入一個埠P2,即是將P2.7、P2.6至P2.0,讀入到一個位元組的8位D7、D6至D0。
㈩ 《零基礎學單片機C語言程序設計》epub下載在線閱讀全文,求百度網盤雲資源
《零基礎學單片機C語言程序設計》電子書網盤下載免費在線閱讀
鏈接:https://pan..com/s/11HzXgEX91f_f9PxykWMhBQ
書名:零基礎學單片機C語言程序設計
出版年份:2012-3
頁數:506
內容簡介:
《零基礎學單片機C語言程序設計(第2版》內容簡介:單片機C51語言是目前最流行的單片機程序設計語言。《零基礎學單片機C語言程序設計(第2版》由淺入深、循序漸進地講解了C51語言的方方面面。《零基礎學單片機C語言程序設計(第2版》知識點覆蓋全面、結構安排緊湊、講解詳細、通俗易懂、實例豐富。內容包括51系列單片機開發環境和流程、程序設計基礎以及編程指南,並給出了一些常用的典型案例。《零基礎學單片機C語言程序設計(第2版》分為四篇,共21章,全面詳細地講述了單片機的程序設計基礎、編程指南及應用案例。首先介紹了51系列單片機的基本結構以及單片機的開發概述,其次詳細介紹了單片機程序設計的C51語言,隨後結合單片機的硬體資源細致講解了如何應用C51語言進行編程操作,最後結合實際應用,重點分析了在各個領域中常用到的一些典型案例,使讀者更加融會貫通地掌握C51語言,以供讀者在學習和工作中進行參考。在第21章中還介紹了部分常見的面試題及解答,方便讀者做好入職前的准備工作。