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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 9459|回復(fù): 31
收起左側(cè)

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

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

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

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

回復(fù)

使用道具 舉報(bào)

ID:108573 發(fā)表于 2020-9-9 10:15 | 顯示全部樓層
這個(gè)作者真的好偉大。要是有目錄就完美了
回復(fù)

使用道具 舉報(bào)

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

/*
*****************************************************
* 文件名: main.c
* 備注: 主函數(shù)
* 測(cè)試功能 :C語(yǔ)言學(xué)習(xí)程序 P15發(fā)送數(shù)據(jù)
   UART0 串口發(fā)送數(shù)據(jù)后,占小部分data,其它IO資源釋放
     //--sc92f8003.h--
          //P1PH |= 0x20; // P15 上拉使能(測(cè)試上拉可用可不用)
                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)先級(jí) 使能
                //EA = 1; //使能總中斷
                //EUART = 0; //串口中斷 使能               
          //TI = 0;       

//--注銷部分開(kāi)始---
* 測(cè)試功能:UART0串口功能 IO輸入(P17 P00 P01) 輸出(P12 P13 P14)
* 功能說(shuō)明:
* 硬件資源:
//芯片設(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語(yǔ)言學(xué)習(xí)區(qū)域的開(kāi)始。-----------------------------------------------*/
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語(yǔ)言學(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[]={"開(kāi)始..."};
                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 芯片 不能開(kāi)啟
        //ES = 0;
        //TI = 0;
       
    //--sc92f8003.h--
          //P1PH |= 0x20; // P15 上拉使能(測(cè)試上拉可用可不用)
                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)先級(jí) 使能
                //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)

ID:448556 發(fā)表于 2020-9-9 11:00 | 顯示全部樓層
有目錄版的 在他群文件里
回復(fù)

使用道具 舉報(bào)

ID:540927 發(fā)表于 2020-9-11 16:23 | 顯示全部樓層
yygdzjs 發(fā)表于 2020-9-9 10:49
講的比較仔細(xì),初學(xué)者有可能說(shuō)教程單片機(jī)比較老了.我們學(xué)習(xí)的是思路.
國(guó)產(chǎn)的51單片機(jī) 增強(qiáng)型51比較多些.  ...

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

使用道具 舉報(bào)

ID:797195 發(fā)表于 2020-9-13 10:12 | 顯示全部樓層
很好的學(xué)習(xí)資料,感謝作者
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

ID:164385 發(fā)表于 2020-9-15 19:53 | 顯示全部樓層
偉大的作者!
回復(fù)

使用道具 舉報(bào)

ID:253767 發(fā)表于 2020-9-16 07:56 | 顯示全部樓層
吳堅(jiān)鴻先生奉獻(xiàn)社會(huì)!!!
回復(fù)

使用道具 舉報(bào)

ID:540927 發(fā)表于 2020-9-29 13:19 | 顯示全部樓層
希望不要沉啊,讓更多需要的人看到
回復(fù)

使用道具 舉報(bào)

ID:83634 發(fā)表于 2020-9-29 21:36 | 顯示全部樓層
不可多得神作
回復(fù)

使用道具 舉報(bào)

ID:540927 發(fā)表于 2020-10-27 11:18 | 顯示全部樓層
這么好的東西竟然沉了,大家需要的趕緊下啊
回復(fù)

使用道具 舉報(bào)

ID:246635 發(fā)表于 2020-10-27 21:42 | 顯示全部樓層
還能下載吧?謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:517691 發(fā)表于 2022-6-22 22:23 | 顯示全部樓層
很好的資料
回復(fù)

使用道具 舉報(bào)

ID:299910 發(fā)表于 2022-9-3 16:51 | 顯示全部樓層
看了第一頁(yè) 捐權(quán)聲明 我就感受到了作者胸懷的寬廣。瀏覽了一下內(nèi)容,圖片標(biāo)注的很認(rèn)真詳細(xì),應(yīng)該對(duì)我們很有幫助。感謝作者,感謝樓主分享!
回復(fù)

使用道具 舉報(bào)

ID:690831 發(fā)表于 2022-9-4 00:52 | 顯示全部樓層
這本書(shū)看過(guò)好幾次,每次都有新的啟發(fā)
回復(fù)

使用道具 舉報(bào)

ID:765334 發(fā)表于 2022-9-5 17:40 來(lái)自手機(jī) | 顯示全部樓層
佩服,佩服,下載來(lái)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:949074 發(fā)表于 2022-9-5 23:04 | 顯示全部樓層
正在無(wú)頭緒的學(xué)習(xí)單片機(jī),謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:970790 發(fā)表于 2022-9-6 00:08 | 顯示全部樓層
佩服,佩服,下載來(lái)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:248392 發(fā)表于 2022-9-6 08:55 | 顯示全部樓層
感謝吳老師!
回復(fù)

使用道具 舉報(bào)

ID:15745 發(fā)表于 2022-11-30 16:28 | 顯示全部樓層
還沒(méi)入門,學(xué)習(xí)看看
回復(fù)

使用道具 舉報(bào)

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


回復(fù)

使用道具 舉報(bào)

ID:15745 發(fā)表于 2023-4-20 16:28 | 顯示全部樓層
正好在學(xué)習(xí)51單片機(jī),學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:1064915 發(fā)表于 2023-4-21 17:35 | 顯示全部樓層
已下載,拜讀中
回復(fù)

使用道具 舉報(bào)

ID:1108782 發(fā)表于 2024-1-16 09:26 | 顯示全部樓層
wwh2382 發(fā)表于 2022-12-1 12:50
傳一個(gè)帶目錄的,方便查看

U are hero!
回復(fù)

使用道具 舉報(bào)

ID:149799 發(fā)表于 2024-4-6 11:01 | 顯示全部樓層
多謝樓主,仔細(xì)看看資料確實(shí)有幫助的。
回復(fù)

使用道具 舉報(bào)

ID:934176 發(fā)表于 2025-4-13 16:09 | 顯示全部樓層
講的比較仔細(xì),初學(xué)者有可能說(shuō)教程單片機(jī)比較老了.我們學(xué)習(xí)的是思路. 國(guó)產(chǎn)的51單片機(jī) 增強(qiáng)型51比較多些. 模塊功能的寄存器稍作修改就可以.
回復(fù)

使用道具 舉報(bào)

ID:889188 發(fā)表于 2025-4-14 13:08 | 顯示全部樓層
這個(gè)作者真的好偉大。
回復(fù)

使用道具 舉報(bào)

ID:1148523 發(fā)表于 2025-4-20 14:23 | 顯示全部樓層
TKS
回復(fù)

使用道具 舉報(bào)

ID:91165 發(fā)表于 2025-4-21 10:57 | 顯示全部樓層
內(nèi)容詳細(xì),適合初學(xué)者
回復(fù)

使用道具 舉報(bào)

ID:1148769 發(fā)表于 2025-4-23 15:22 | 顯示全部樓層
cayboy1988 發(fā)表于 2025-4-13 16:09
講的比較仔細(xì),初學(xué)者有可能說(shuō)教程單片機(jī)比較老了.我們學(xué)習(xí)的是思路. 國(guó)產(chǎn)的51單片機(jī) 增強(qiáng)型51比較多些. 模 ...

有沒(méi)有教程集 樓主
回復(fù)

使用道具 舉報(bào)

ID:18253 發(fā)表于 2025-4-24 16:51 | 顯示全部樓層
真不錯(cuò)!資料老了一些,但核心的東西真不過(guò)時(shí)。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一区二区在线观看av | 日韩综合在线 | 久久久久国 | jizz18国产 | 一级黄色片日本 | 天堂影院av | 欧美日韩1区 | 夜夜草| 国产一区精品在线 | 国产精品久久久久久吹潮 | 日日夜夜狠狠操 | 综合二区| 国产一区视频在线 | 亚洲一级淫片 | 91看片免费 | 黄色毛片在线看 | 一区二区三区四区在线 | 国产精品免费大片 | 亚洲一区二区三区高清 | 免费午夜视频 | 亚洲一区二区三区免费在线观看 | 免费国产黄 | 国产91av视频| 国产一区中文字幕 | 国产精品久久久亚洲 | 国产精品一区二区av | 国产精品欧美一区二区三区不卡 | 中文字幕av一区二区三区 | 一区二区在线免费观看视频 | 中国大陆高清aⅴ毛片 | 日韩一区二区黄色片 | 亚洲一区二区三区在线视频 | 日韩视频中文字幕 | 久久蜜桃av | 伊人免费视频二 | 日本不卡视频在线播放 | 中日av | 日韩1区 | 国产欧美日韩精品一区 | 欧美在线一区二区三区 | 亚洲一区二区三区免费观看 |