久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10075|回復(fù): 32
打印 上一主題 下一主題
收起左側(cè)

從單片機(jī)基礎(chǔ)到程序框架(全集PDF)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:540927 發(fā)表于 2020-9-8 13:52 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
吳堅(jiān)鴻先生在21ic論壇上連載的帖子最終整理成的書,前期內(nèi)容是C語言基礎(chǔ),后面是51單片機(jī)的基礎(chǔ),文章很有思想深度,不同于市場上所賣的單片機(jī)書籍,它從項(xiàng)目開發(fā)的角度來寫,有很多內(nèi)容是一般書籍上沒有的,值得推廣學(xué)習(xí)。吳堅(jiān)鴻先生免費(fèi)把書籍分享給社會(huì),在此感謝他的付出。

從單片機(jī)基礎(chǔ)到程序框架(全集 2019pdf版).pdf

4.21 MB, 下載次數(shù): 728, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏22 分享淘帖 頂5 踩
回復(fù)

使用道具 舉報(bào)

無效樓層,該帖已經(jīng)被刪除
板凳
ID:108573 發(fā)表于 2020-9-9 10:15 | 只看該作者
這個(gè)作者真的好偉大。要是有目錄就完美了
回復(fù)

使用道具 舉報(bào)

地板
ID:59830 發(fā)表于 2020-9-9 10:49 | 只看該作者
講的比較仔細(xì),初學(xué)者有可能說教程單片機(jī)比較老了.我們學(xué)習(xí)的是思路.
國產(chǎn)的51單片機(jī) 增強(qiáng)型51比較多些. 模塊功能的寄存器稍作修改就可以.
例如:賽元的SC92F8003

/*
*****************************************************
* 文件名: main.c
* 備注: 主函數(shù)
* 測試功能 :C語言學(xué)習(xí)程序 P15發(fā)送數(shù)據(jù)
   UART0 串口發(fā)送數(shù)據(jù)后,占小部分data,其它IO資源釋放
     //--sc92f8003.h--
          //P1PH |= 0x20; // P15 上拉使能(測試上拉可用可不用)
                SCON |= 0x50; //模式1 10位全雙工;允許接收     
                tmp = 16000000L / 9600; //
                   //--使用定時(shí)器1--
                //T2CON &= 0xCF; //選擇定時(shí)器1(默認(rèn))
                TH1 = (u8)(tmp >> 8); //定時(shí)器1計(jì)數(shù)器的 高8位
                TL1 = (u8) tmp; //        //定時(shí)器1計(jì)數(shù)器的 低8位
          //IPUART = 1; // 串口高優(yōu)先級 使能
                //EA = 1; //使能總中斷
                //EUART = 0; //串口中斷 使能               
          //TI = 0;       

//--注銷部分開始---
* 測試功能:UART0串口功能 IO輸入(P17 P00 P01) 輸出(P12 P13 P14)
* 功能說明:
* 硬件資源:
//芯片設(shè)置內(nèi)部時(shí)鐘 16MHZ ,看門狗除能 低電壓2.9V  復(fù)位腳做 P17IO
//                sbit LED1 = P1^2; // LED口
//                sbit LED2 = P1^3; //
//                sbit LED3 = P1^4; //
//                sbit KEY_INPUT1 = P1^7; // 按鍵口
//                sbit KEY_INPUT2 = P0^0; //
//                sbit KEY_INPUT3 = P0^1; //
//                UART0 串口
//                ConfigUART0(0,9600); //-串口配置參數(shù)-引腳 P15(TX0) P16(RX0)
//                // ConfigUART0(1,9600); //串口配置參數(shù)-引腳 P20(TX0A) P11(RX0A)
//--注銷部分結(jié)束---
*
*****************************************************
*/
  //#include "REG52.H"
#include "sc92f8003.h"
void View(unsigned long u32ViewData);
void to_BufferData(unsigned long u32Data,unsigned char *pu8Buffer,unsigned char u8Type);
void SendString(unsigned char *pu8String);
/*---C語言學(xué)習(xí)區(qū)域的開始。-----------------------------------------------*/
void main() //主函數(shù)
{
                unsigned char a; //定義一個(gè)變量 a。
                unsigned int b; //定義一個(gè)變量 b。
                unsigned long c; //定義一個(gè)變量 c。
                a=100; //給變量 a 賦值。
                b=10000; //給變量 b 賦值。
                c=1000000000; //給變量 c 賦值。
                View(a); //在電腦串口端查看第 1個(gè)數(shù) a。
                View(b); //在電腦串口端查看第 2個(gè)數(shù) b。
                View(c); //在電腦串口端查看第 3個(gè)數(shù) c。
       
                while(1)
                {
                }
}
/*---C語言學(xué)習(xí)區(qū)域的結(jié)束。-----------------------------------------------*/
void View(unsigned long u32ViewData)
{
                static unsigned char Su8ViewBuffer[43];
                code unsigned char Cu8_0D_0A[]={0x0d,0x0a,0x00};
                code unsigned char Cu8Start[]={"開始..."};
                static unsigned char Su8FirstFlag=0;
                static unsigned int Su16FirstDelay;
                if(0==Su8FirstFlag)
                {
                        Su8FirstFlag=1;
                        for(Su16FirstDelay=0;Su16FirstDelay<10000;Su16FirstDelay++);
                        SendString(Cu8Start);
                        SendString(Cu8_0D_0A);
                        SendString(Cu8_0D_0A);
                }
                to_BufferData(u32ViewData,Su8ViewBuffer,1);
                SendString(Su8ViewBuffer);
                to_BufferData(u32ViewData,Su8ViewBuffer,2);
                SendString(Su8ViewBuffer);
                to_BufferData(u32ViewData,Su8ViewBuffer,3);
                SendString(Su8ViewBuffer);
                to_BufferData(u32ViewData,Su8ViewBuffer,4);
                SendString(Su8ViewBuffer);
                SendString(Cu8_0D_0A);
}


void to_BufferData(unsigned long u32Data,unsigned char *pu8Buffer,unsigned char u8Type)
{
                code unsigned char Cu8Array1[]={0xB5,0xDA,0x4E,0xB8,0xF6,0xCA,0xFD,0x00};
                code unsigned char Cu8Array2[]="十進(jìn)制:";
                code unsigned char Cu8Array3[]="十六進(jìn)制:";
                code unsigned char Cu8Array4[]="二進(jìn)制:";
                static unsigned char Su8SerialNumber=1;
                static unsigned int Su16BufferCnt;
                static unsigned int Su16TempCnt;
                static unsigned int Su16TempSet;
                static unsigned long Su32Temp1;
                static unsigned long Su32Temp2;
                static unsigned long Su32Temp3;
                static unsigned char Su8ViewFlag;
               
                if(1==u8Type)
                {
                        for(Su16BufferCnt=0;Su16BufferCnt<7;Su16BufferCnt++)
                        {
                                pu8Buffer[Su16BufferCnt]=Cu8Array1[Su16BufferCnt];
                        }
                        pu8Buffer[2]=Su8SerialNumber+'0';
                        pu8Buffer[Su16BufferCnt]=0x0d;
                        pu8Buffer[Su16BufferCnt+1]=0x0a;
                        pu8Buffer[Su16BufferCnt+2]=0;
                        Su8SerialNumber++;
                        return;
                }
                else if(2==u8Type)
                {
                        for(Su16BufferCnt=0;Su16BufferCnt<7;Su16BufferCnt++)
                        {
                                pu8Buffer[Su16BufferCnt]=Cu8Array2[Su16BufferCnt];
                        }
                        Su32Temp1=1000000000;
                        Su32Temp2=10;
                        Su16TempSet=10;
                }
                else if(3==u8Type)
                {
                        for(Su16BufferCnt=0;Su16BufferCnt<9;Su16BufferCnt++)
                        {
                                pu8Buffer[Su16BufferCnt]=Cu8Array3[Su16BufferCnt];
                        }
                        Su32Temp1=0x10000000;
                        Su32Temp2=0x00000010;
                        Su16TempSet=8;
                }
                else
                {
                        for(Su16BufferCnt=0;Su16BufferCnt<7;Su16BufferCnt++)
                        {
                                pu8Buffer[Su16BufferCnt]=Cu8Array4[Su16BufferCnt];
                        }
                        Su32Temp1=0x80000000;
                        Su32Temp2=0x00000002;
                        Su16TempSet=32;
                }

          Su8ViewFlag=0;
                for(Su16TempCnt=0;Su16TempCnt<Su16TempSet;Su16TempCnt++)
                {
                                Su32Temp3=u32Data/Su32Temp1%Su32Temp2;
                                if(Su32Temp3<10)
                                {
                                        pu8Buffer[Su16BufferCnt]=Su32Temp3+'0';
                                }
                                else
                                {
                                        pu8Buffer[Su16BufferCnt]=Su32Temp3-10+'A';
                                }

                                if(0==u32Data)
                                {
                                        Su16BufferCnt++;
                                        break;
                                }
                                else if(0==Su8ViewFlag)
                                {
                                        if('0'!=pu8Buffer[Su16BufferCnt])
                                        {
                                                Su8ViewFlag=1;
                                                Su16BufferCnt++;
                                        }
                                }
                                else
                                {
                                        Su16BufferCnt++;
                                }       
                                Su32Temp1=Su32Temp1/Su32Temp2;
                }
                pu8Buffer[Su16BufferCnt]=0x0d;
                pu8Buffer[Su16BufferCnt+1]=0x0a;
                pu8Buffer[Su16BufferCnt+2]=0;
}


void SendString(unsigned char *pu8String)
{
        static unsigned int Su16SendCnt;
        static unsigned int Su16Delay;
        u32 tmp; //
         //-REG52.H-
        //SCON=0x50;
        //TMOD=0X21;
        //TH1=TL1=256-(11059200L/12/32/9600);
        //TR1=1; //sc92f8003 芯片 不能開啟
        //ES = 0;
        //TI = 0;
       
    //--sc92f8003.h--
          //P1PH |= 0x20; // P15 上拉使能(測試上拉可用可不用)
                SCON |= 0x50; //模式1 10位全雙工;允許接收     
                tmp = 16000000L / 9600; //
                   //--使用定時(shí)器1--
                //T2CON &= 0xCF; //選擇定時(shí)器1(默認(rèn))
                TH1 = (u8)(tmp >> 8); //定時(shí)器1計(jì)數(shù)器的 高8位
                TL1 = (u8) tmp; //        //定時(shí)器1計(jì)數(shù)器的 低8位
          //IPUART = 1; // 串口高優(yōu)先級 使能
                //EA = 0; //使能總中斷
                EUART = 0; //串口中斷 使能               
          TI = 0;       
       
        for(Su16SendCnt=0;Su16SendCnt<43;Su16SendCnt++)
        {
                if(0==pu8String[Su16SendCnt])
                {
                        break;
                }
                else
                {
                        SBUF =pu8String[Su16SendCnt];
                        //for(Su16Delay=0;Su16Delay<800;Su16Delay++);//-REG52.H-延時(shí)
                        for(Su16Delay=0;Su16Delay<2400;Su16Delay++);//-sc92f8003.h-延時(shí)
                        TI = 0;
                }
        }
}
回復(fù)

使用道具 舉報(bào)

5#
ID:448556 發(fā)表于 2020-9-9 11:00 | 只看該作者
有目錄版的 在他群文件里
回復(fù)

使用道具 舉報(bào)

6#
無效樓層,該帖已經(jīng)被刪除
7#
ID:540927 發(fā)表于 2020-9-11 16:23 | 只看該作者
yygdzjs 發(fā)表于 2020-9-9 10:49
講的比較仔細(xì),初學(xué)者有可能說教程單片機(jī)比較老了.我們學(xué)習(xí)的是思路.
國產(chǎn)的51單片機(jī) 增強(qiáng)型51比較多些.  ...

謝謝您的回復(fù)呢,真的覺得這本書很不錯(cuò),一般的單片機(jī)書籍講解的沒有這么仔細(xì),而且單片機(jī)部分也只涉及最基本的,這本書中單片機(jī)部分把項(xiàng)目中能用到的知識也做了深入講解,真希望有更多的人能夠看到
回復(fù)

使用道具 舉報(bào)

8#
ID:797195 發(fā)表于 2020-9-13 10:12 | 只看該作者
很好的學(xué)習(xí)資料,感謝作者
回復(fù)

使用道具 舉報(bào)

9#
ID:292876 發(fā)表于 2020-9-13 14:40 來自觸屏版 | 只看該作者
中間水準(zhǔn)的設(shè)計(jì)開發(fā)人員,看吳師傅的教程,也會(huì)有很多的啟發(fā),這本書不會(huì)教你太多如何寫代碼,而是教你單片機(jī)思路。是不可多得神作。我看了好多遍,每一次都有所啟發(fā),特別是在不注意的邊邊角角,總有些許收獲。神作
回復(fù)

使用道具 舉報(bào)

10#
ID:164385 發(fā)表于 2020-9-15 19:53 | 只看該作者
偉大的作者!
回復(fù)

使用道具 舉報(bào)

11#
ID:253767 發(fā)表于 2020-9-16 07:56 | 只看該作者
吳堅(jiān)鴻先生奉獻(xiàn)社會(huì)!!!
回復(fù)

使用道具 舉報(bào)

12#
ID:540927 發(fā)表于 2020-9-29 13:19 | 只看該作者
希望不要沉啊,讓更多需要的人看到
回復(fù)

使用道具 舉報(bào)

13#
無效樓層,該帖已經(jīng)被刪除
14#
ID:83634 發(fā)表于 2020-9-29 21:36 | 只看該作者
不可多得神作
回復(fù)

使用道具 舉報(bào)

15#
無效樓層,該帖已經(jīng)被刪除
16#
無效樓層,該帖已經(jīng)被刪除
17#
ID:540927 發(fā)表于 2020-10-27 11:18 | 只看該作者
這么好的東西竟然沉了,大家需要的趕緊下啊
回復(fù)

使用道具 舉報(bào)

18#
ID:246635 發(fā)表于 2020-10-27 21:42 | 只看該作者
還能下載吧?謝謝分享
回復(fù)

使用道具 舉報(bào)

19#
無效樓層,該帖已經(jīng)被刪除
20#
ID:517691 發(fā)表于 2022-6-22 22:23 | 只看該作者
很好的資料
回復(fù)

使用道具 舉報(bào)

21#
無效樓層,該帖已經(jīng)被刪除
22#
無效樓層,該帖已經(jīng)被刪除
23#
無效樓層,該帖已經(jīng)被刪除
24#
無效樓層,該帖已經(jīng)被刪除
25#
無效樓層,該帖已經(jīng)被刪除
26#
ID:299910 發(fā)表于 2022-9-3 16:51 | 只看該作者
看了第一頁 捐權(quán)聲明 我就感受到了作者胸懷的寬廣。瀏覽了一下內(nèi)容,圖片標(biāo)注的很認(rèn)真詳細(xì),應(yīng)該對我們很有幫助。感謝作者,感謝樓主分享!
回復(fù)

使用道具 舉報(bào)

27#
ID:690831 發(fā)表于 2022-9-4 00:52 | 只看該作者
這本書看過好幾次,每次都有新的啟發(fā)
回復(fù)

使用道具 舉報(bào)

28#
ID:765334 發(fā)表于 2022-9-5 17:40 來自觸屏版 | 只看該作者
佩服,佩服,下載來學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

29#
ID:949074 發(fā)表于 2022-9-5 23:04 | 只看該作者
正在無頭緒的學(xué)習(xí)單片機(jī),謝謝分享
回復(fù)

使用道具 舉報(bào)

30#
ID:970790 發(fā)表于 2022-9-6 00:08 | 只看該作者
佩服,佩服,下載來學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

31#
ID:248392 發(fā)表于 2022-9-6 08:55 | 只看該作者
感謝吳老師!
回復(fù)

使用道具 舉報(bào)

32#
ID:15745 發(fā)表于 2022-11-30 16:28 | 只看該作者
還沒入門,學(xué)習(xí)看看
回復(fù)

使用道具 舉報(bào)

33#
ID:748788 發(fā)表于 2022-12-1 12:50 | 只看該作者
傳一個(gè)帶目錄的,方便查看 手把手教你單片機(jī)程序框架—吳堅(jiān)鴻(共1209頁pdf下載).pdf (3.96 MB, 下載次數(shù): 57)


回復(fù)

使用道具 舉報(bào)

34#
ID:15745 發(fā)表于 2023-4-20 16:28 | 只看該作者
正好在學(xué)習(xí)51單片機(jī),學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

35#
無效樓層,該帖已經(jīng)被刪除
36#
ID:1064915 發(fā)表于 2023-4-21 17:35 | 只看該作者
已下載,拜讀中
回復(fù)

使用道具 舉報(bào)

37#
無效樓層,該帖已經(jīng)被刪除
38#
ID:1108782 發(fā)表于 2024-1-16 09:26 | 只看該作者
wwh2382 發(fā)表于 2022-12-1 12:50
傳一個(gè)帶目錄的,方便查看

U are hero!
回復(fù)

使用道具 舉報(bào)

39#
ID:149799 發(fā)表于 2024-4-6 11:01 | 只看該作者
多謝樓主,仔細(xì)看看資料確實(shí)有幫助的。
回復(fù)

使用道具 舉報(bào)

40#
無效樓層,該帖已經(jīng)被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲免费在线 | 草久在线| 欧产日产国产精品国产 | 国产精品久久久久久久免费大片 | aaa国产大片 | 在线中文字幕国产 | 91麻豆产精品久久久久久 | 欧美精品影院 | 91看片在线| 久久精品a级毛片 | 午夜精品久久久 | 91青青草视频 | 男女一区二区三区 | 久久综合一区 | 亚洲精品久久久久久久久久久 | 欧美日韩久久久久 | 亚洲看片| 亚洲一区二区三区在线免费 | 欧美一区二区三区四区五区无卡码 | 日韩国产专区 | 91 在线| 一区二区三区欧美在线观看 | 久久99精品久久久久久国产越南 | 天天草天天干天天 | 国产美女在线免费观看 | 羞羞视频在线观看 | 国产成人在线视频 | 精品久久久久久国产 | 中文字幕91av | 欧美日韩福利视频 | 国产丝袜一区二区三区免费视频 | 成人免费激情视频 | 日韩中文字幕在线视频 | 男女羞羞视频免费 | 狠狠av| 久久6视频 | 亚洲一区二区在线电影 | 三级av在线 | 国产91在线观看 | 99视频在线免费观看 | 亚洲在线一区 |