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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 21832|回復: 109
打印 上一主題 下一主題
收起左側

一個中年人的起步之路

  [復制鏈接]
跳轉到指定樓層
樓主
1981年出生的我,年級不小了。
時間過得太快了,從我懵懵懂懂的第一次敲完printf("hello world!!!\n"); 到現在已經過去了20年了
使用C語言出身,后面寫過X86匯編,再后來C++,工作之余玩過N種各種各樣花里胡哨的編程語言

雖然現在生活穩定,吃喝無憂。但總是感覺少了點什么
也許是10幾年的拼搏磨滅了當初的激情。的確,再也不是那個熬夜敲代碼的小伙子了。
趁這次特殊情況在家靜養了一段時間,我也好好的問了下自己:“夢想還在嗎?”
得到了一個很肯定的答案,從一個新的領域繼續玩下去。
我這么琢磨的 :

1 可以找點正經事干干,不在把時間浪費在推杯換盞燈紅酒綠里面。
2 可以教孩子制作各種各樣玩具培養他的興趣愛好。
于是我選擇了單片機,順理成章的來到了51hei 。
作為一個新人我想寫個帖子,持續更新下去。就在本貼的下面,希望和新上路的你共勉!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏10 分享淘帖 頂6 踩
回復

使用道具 舉報

沙發
ID:6520 發表于 2020-3-7 19:42 | 只看該作者
加油!都是80后!
回復

使用道具 舉報

板凳
ID:698901 發表于 2020-3-8 09:28 | 只看該作者
83年的,對單片機一竅不通,但想學,也愿意學!黑51是我前幾天發現的新天地。
回復

使用道具 舉報

地板
ID:703395 發表于 2020-3-8 17:25 | 只看該作者
今天終于等到了快遞小哥,第一次摸到51單片機。
迅速接電點亮。先從最簡單的LED開始吧,雖然不明就里。但是通過4次測試
我發現我的板子是
P2 == 0       (00000000)  時全亮
P2 == 0xff   (11111111)  時全滅
P2 == 1       (00000001)  時最左面燈滅
P2 == 0X80 (10000000)  時最右面燈滅

好吧既然等了這么久,先不理會什么電路圖懂不懂的。
打開音樂找到一首土嗨,讓LED等給我HI起來吧
  1. #include "reg52.h"
  2. #include <intrins.h>

  3. typedef unsigned char u8;
  4. typedef unsigned int u16;

  5. void delay(u16 i)
  6. {
  7.         while(i--);
  8. }

  9. void power(u16 max, u16 d)
  10. {
  11.         u8 i;
  12.         for(i = 1; i <= max; i++)
  13.         {
  14.                 P2 = (0xff >> i);
  15.                 delay(d);
  16.         }
  17. }

  18. void powerlessness(u16 max, u16 d)
  19. {
  20.         u8 i;
  21.         for(i = 1; i <= max; i++)
  22.         {
  23.                 P2 = (P2 << 1) + 1;
  24.                 delay(d);
  25.         }
  26. }

  27. void main()
  28. {
  29.         u16 i;
  30.         u16 v = 0xff;
  31.         u16 n = v + 1;

  32.         power(8, 5000);
  33.        
  34.         for(i = 1; i <= 8; i++)
  35.         {
  36.                 P2 += (n >> i);
  37.                 delay(5000);
  38.         }
  39.        
  40.         delay(666666);
  41.        
  42.         while(1)
  43.         {
  44.                 power(6, 1888);
  45.                 powerlessness(3, 6666);
  46.                 delay(11111);
  47.         }
  48. }
復制代碼




回復

使用道具 舉報

5#
ID:703395 發表于 2020-3-9 14:45 | 只看該作者
昨天拿到 了51開發板興沖沖的一頓操作猛如虎。
把LED流水燈跑起來了,但隨之而來不是高興卻是困惑!
今天花了些時間各種搜索,以及論壇發帖求人解惑
http://www.zg4o1577.cn/bbs/dpj-181455-1.html

首先 sbit 這個類型是什么
sbit 位變量名=地址值

我理解如下:
例如P2 = 0xA0;
sbit led1 = 0xa0 ^ 0; 與 sbit led1 = P2 ^ 0;
效果相同,下面打一個不那么恰當的例子 :
它其實就是一個地址
P2 = 0xA0
0xA0 ^ 0 = 0xA0 | 1010 0000
0xA0 ^ 1 = 0xA1 | 1010 0001
0xA0 ^ 2 = 0xA2 | 1010 0010
0xA0 ^ 3 = 0xA3 | 1010 0011

0xA0 ^ 4 = 0xA4 | 1010 0100
0xA0 ^ 5 = 0xA5 | 1010 0101
0xA0 ^ 6 = 0xA6 | 1010 0110
0xA0 ^ 7 = 0xA7 | 1010 0111

當設置某個地址的 值 為 0 時 LED被點亮
mem addr  | value
1010 0000 | 1
1010 0001 | 1
1010 0010 | 1
1010 0011 | 1
1010 0100 | 1
1010 0101 | 1
1010 0110 | 1
1010 0111 | 1

就好像
sbit led1 = P2 ^ 0;
while(1) {
    led1 = 0;
}

第二個困惑 sfr P2    = 0xA0;
為什么 P2的地址等于0xA0,但是我修改P2為 0x80的時候依然可以控制LED燈
例如
P2 = 0x80;
其實P2是一個地址, 是一個指針.
我們在執行P2 = 0x80的時候應該是隱式的執行了下面的語句
*(char*)0xA0 = 0x80; 所以可以控制LED燈
有興趣的小伙伴們可以嘗試修改
P2 = 0xA0;
看看8個等是不是只有6個亮了,其中排布類似于 1010 0000 = 0xA0
這就充分的證明了我們只是向 地址(0xA0) 當中寫入了一個值 0xA0
等同于
mem addr | value
0xA0        | 0xA0

解決了上面兩個疑問整個人感覺都輕松了不少。


回復

使用道具 舉報

6#
ID:703395 發表于 2020-3-9 15:03 | 只看該作者
本帖最后由 錢木頭 于 2020-3-9 16:16 編輯

占樓占樓占樓占樓占樓占樓占樓占樓占樓
回復

使用道具 舉報

7#
ID:699250 發表于 2020-3-9 15:42 | 只看該作者
同LZ一樣,人到中年,總覺得少些什么,所以來這里學習學習
回復

使用道具 舉報

8#
ID:705286 發表于 2020-3-9 17:31 | 只看該作者
到了中年做技術做不動了,單位小伙子每天看書到半夜,中年人太“南”了。
回復

使用道具 舉報

9#
ID:703395 發表于 2020-3-9 20:46 | 只看該作者
今天解決了幾個困惑繼續上路,先把所有基礎的東西用源代碼跑一遍。
順便認識一下各個元器件,和很多陌生的名詞。
下面是我寫的一個數碼管顯示數字。嘗試了一下C語言的抽象, C++程序員的陋習^_^

  1. Interface.h

  2. #ifndef __INTERFACE_H__
  3. #define __INTERFACE_H__

  4. typedef unsigned char u8;
  5. typedef unsigned int u16;
  6. typedef unsigned long u32;

  7. /**
  8. *  接口說明 : 顯示一個數字
  9. *        參數 :
  10. *                x        : 顯示位置的X坐標
  11. *                y        : 顯示位置的Y坐標
  12. *                val : 具體需要顯示的內容
  13. *        返回 :
  14. *                無返回值
  15. */
  16. typedef void(*pfnDisplayNumber)(u8 x, u8 y, u8 val);

  17. /**
  18. *        接口說明 : 清除屏幕
  19. */
  20. typedef void(*pfnClearScreen)(void);

  21. /**
  22. *        結構體說明 : 負責顯示
  23. *        例如數碼管、或者液晶屏等等
  24. */
  25. typedef struct _DisplayInterface {
  26.         pfnDisplayNumber displayerNumber;        // 用于顯示一個數字的接口
  27.         pfnClearScreen clear;                                // 用于清除的一個接口
  28. }DisplayInterface;

  29. #endif

  30. ---------------------------------------------------------
  31. NixieTubeDisplay.h

  32. #ifndef __NIXIETUBEDISPLAY_H__
  33. #define __NIXIETUBEDISPLAY_H__
  34. #include "reg52.h"
  35. #include <intrins.h>
  36. #include "Interface.h"

  37. // 初始化一個數碼管,例如外部創建的一個局部 DisplayInterface
  38. // 將地址傳進來由InitNixieTube初始化.
  39. // 因為使用malloc不正常所以只設計了一個Init
  40. DisplayInterface * InitNixieTube(DisplayInterface * );

  41. #endif

  42. ---------------------------------------------------------
  43. NixieTubeDisplay.c

  44. #include "NixieTubeDisplay.h"

  45. sbit LSA = P2 ^ 2;
  46. sbit LSB = P2 ^ 3;
  47. sbit LSC = P2 ^ 4;

  48. // 0 - 9
  49. static const u8 numberHex[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};

  50. // 將一個數字顯示到數碼管
  51. void displayNumberToNixieTube(u8 x, u8 y, u8 val)
  52. {
  53.         if((val >= 0 && val < 10) && (x >= 0 && x < 8))
  54.         {
  55.                 // 設置顯示內容
  56.                 P0 = numberHex[val];
  57.                
  58.                 // 設置顯示索引
  59.                 LSA = (x >> 0 ) % 2;
  60.                 LSB = (x >> 1 ) % 2;
  61.                 LSC = (x >> 2 ) % 2;
  62.         }
  63. }

  64. // 清除顯示
  65. void clearNixieTube()
  66. {
  67.         P0 = 0;
  68. }

  69. DisplayInterface * InitNixieTube(DisplayInterface * pDisplay)
  70. {
  71.         if(pDisplay) {
  72.                 pDisplay->displayerNumber = displayNumberToNixieTube;
  73.                 pDisplay->clear = clearNixieTube;
  74.                 return pDisplay;
  75.         }
  76.         return 0;
  77. }

  78. ---------------------------------------------------------
  79. main.c

  80. #include "NixieTubeDisplay.h"

  81. typedef u8(*pfnCallback)(DisplayInterface * displayObject);

  82. void delay(u16 i)
  83. {
  84.         while(i--);
  85. }

  86. void display(u8 index, u8 number,
  87.         DisplayInterface * displayObject, pfnCallback callback)
  88. {
  89.         if(displayObject)
  90.         {
  91.                 displayObject->displayerNumber(index, 0, number);
  92.                 if(callback) { callback(displayObject); }
  93.         }
  94. }

  95. void message(DisplayInterface * displayObject)
  96. {
  97.         delay(100);
  98.         // 當接收到這個消息的時候,說明已經顯示完了
  99.         if(displayObject)
  100.         {
  101.                 displayObject->clear();
  102.         }
  103. }

  104. void main()
  105. {
  106.         u8 n = 0;
  107.         u8 i = 0;
  108.         DisplayInterface v;
  109.         InitNixieTube(&v);
  110.         while(1)
  111.         {
  112.                 for(i = 0; i < 10; i++)
  113.                 {
  114.                         display(i, i + 2, &v, message);
  115.                 }
  116.         }
  117. }
復制代碼
回復

使用道具 舉報

10#
ID:703395 發表于 2020-3-10 17:04 | 只看該作者
今天花了一天時間把中斷系統看了一遍,并且編寫了對應的代碼。獨立按鍵以及定時器都可以接收到中斷信號了
其它的外設模塊我想暫時沒必要看下去了,是時候回過頭去研究最小系統了。然后就是畫一個PCB打樣焊接了。
在這里和很多入門的新人交流一下心得,我認為按我上面這幾天的步驟學習就差不多了
以后那些外設模塊。用到了什么就查看對應芯片的手冊,以及如何設計到板子上面。
快速的畫板打樣焊接,當焊接調試通過了之后我估計在學校那些數電和模電的知識也鞏固的差不多了。就算沒學過,也學的差不多了。
后面用到什么學什么
回復

使用道具 舉報

11#
ID:611988 發表于 2020-3-16 11:05 | 只看該作者
支持樓主,八零后
回復

使用道具 舉報

12#
ID:16848 發表于 2020-3-22 10:43 | 只看該作者
有電路基礎,自己確實愛好,又想學,那就能學好。
回復

使用道具 舉報

13#
ID:611988 發表于 2020-3-23 16:05 | 只看該作者
做市場銷售、硬件 軟件 殼體 技術和管理的朋友們,大家相互照顧,若遇到有客人需要可以相互推薦下
回復

使用道具 舉報

14#
ID:117433 發表于 2020-3-24 16:36 | 只看該作者
80年,16年開始復習電子,單片機,只為充實,
回復

使用道具 舉報

15#
ID:263989 發表于 2020-3-26 14:13 | 只看該作者
標題描述了一個20年的老油條來混51了
回復

使用道具 舉報

16#
ID:603753 發表于 2020-4-2 16:37 | 只看該作者
80后業余學了兩年了,花了不少時間。太多地方還是沒明白,目前水平入門階段,簡單的都理解了,稍微變換一下就轉不過彎了,總是很難深入。
回復

使用道具 舉報

17#
ID:722677 發表于 2020-4-5 12:33 來自手機 | 只看該作者
70后默默地看
回復

使用道具 舉報

18#
ID:497780 發表于 2020-4-12 00:21 | 只看該作者
我個人認為培養一下興趣是好的,總比整天無所事事不是抽煙喝酒賭博好,還有不要讓你的興趣和愛好作為你的謀生工具就好了!
回復

使用道具 舉報

19#
ID:401564 發表于 2020-4-14 09:48 | 只看該作者
sdvic 發表于 2020-4-12 00:21
我個人認為培養一下興趣是好的,總比整天無所事事不是抽煙喝酒賭博好,還有不要讓你的興趣和愛好作為你的謀生 ...

哥們你這就錯了
有一門工作,你又喜歡它,它又能給帶來面包,對于一個中年男人來說這得是多快樂的事呢!
回復

使用道具 舉報

20#
ID:497780 發表于 2020-4-16 22:27 | 只看該作者
呵,每個人的認識和經歷都不同,沒有誰對誰錯的,適合自己就行,如果這興趣得天天要弄,不弄就沒飯吃了,這會讓人倍感壓力!我喜歡興趣偶爾拾起好了.
回復

使用道具 舉報

21#
ID:732554 發表于 2020-4-22 19:17 | 只看該作者
停更了?
回復

使用道具 舉報

22#
ID:624444 發表于 2020-5-5 11:18 | 只看該作者
這個好,頂一下
回復

使用道具 舉報

23#
ID:735148 發表于 2020-5-27 16:17 | 只看該作者
插個眼,等大叔更新
回復

使用道具 舉報

24#
ID:743654 發表于 2020-5-28 00:34 | 只看該作者
同為80后,現在還在逛論壇
回復

使用道具 舉報

25#
ID:763471 發表于 2020-5-28 15:57 | 只看該作者
俺是年級大了只能當個愛好了,俺沒基礎學也費勁
回復

使用道具 舉報

26#
ID:782419 發表于 2020-7-12 08:25 | 只看該作者
       81年,在學校的時候學PLc和單片機卻從來沒有見過實物,只有一些簡單的概念。畢業時也不知道單片機和PLC是什么樣子的。只知道能編制程序。程序?那是做什么的?根本就沒有這種概念。語言也只知道一點,估計那種編程語言早就已經淘汰了。匯編也僅僅是知道一點。
       畢業幾年后才當的電工,有機會見到曾經的嘗過的PLc,是歐姆龍的C40,看外殼已經很老了,不過能見到實物也算不容易了,可能當時的同學還有很多人到現在依然沒有見過PLC吧!在學校學的是三菱的,不過大同小異,咱也只會一些基礎的編程,什么高速計數,中斷完全沒有概念。根本沒有機會編程,車間的程序也不是沒事就讓你編的!
       剛開始編程序或者說是修改程序是用手持的編程器的,不過能接觸實際的程序就已經很高興了,后來才知道用電腦也可以編程,需要編程軟件!接著就自學相關的編程軟件,在網上找相關視頻。也學了點東西。
       直到車間進行設備改造,安裝電子制動器,制動器壞了后修不好的就被分解了,見到上面的集成電路不知道上面寫的是什么,在網上查才知道這是傳說中的單片機!說實話,這是我第一次見到單片機,可能大家覺得可笑,學過的東西居然沒有見過!不過這是真的,于是把在學校時發的書找出來看一下,唉!那是一臉茫然!真的好難!
       后來在網上找到一些視頻看才知道,單片機的編程已經開始用C了,不過對C也沒有什么概念。在學校時沒有學過,不過視頻上說這都不是問題,就看一些視頻后覺得還行,就買了開發板,巧的是開發板上的單片機與我在制動器上拆下來的居然是一個型號,長的一模一樣。
      也就是因為手上有了實例,學著才有一個大致的方向,看視頻,抄程序,然后煩了就好長時間不看,反復了幾次,視頻大概看了才兩遍,已經五六年了,通信以前的內容理解還湊合,到了通信就走的很慢,不過做為興趣也好,高興的時候再看看。
      不為別的,只為學校那幾年,說實話,學校學的東西除了單片機,PLc、機床編修的基本知識外,其余的已經記不清了!
回復

使用道具 舉報

27#
ID:587994 發表于 2020-7-21 22:23 | 只看該作者
剛要畢業的我,看到前輩都這么努力,我更要努力點!!
回復

使用道具 舉報

28#
ID:807124 發表于 2020-7-23 11:24 | 只看該作者
畢業兩年,一直在做三菱PLC的程序,電路之類的,打算撿起單片機學一下(雖然已經忘光了)
回復

使用道具 舉報

29#
ID:807124 發表于 2020-7-23 11:26 | 只看該作者
向前輩看齊,開始學習單片機,有那位大佬可以分享一下進修的過程,比方說單片機,樹莓派,linux,PYthon什么的。
回復

使用道具 舉報

30#
ID:611988 發表于 2020-7-23 17:16 | 只看該作者
有個想法歡迎大家說說可行性:做技術和業務兩撥朋友結合起來,可以成事吧
回復

使用道具 舉報

31#
ID:810376 發表于 2020-8-1 18:11 | 只看該作者
加油 ,新手路上共勉
回復

使用道具 舉報

32#
ID:454000 發表于 2020-8-1 19:39 | 只看該作者
本人60年,兒孫滿堂,愛好電子,愛動手,喜歡新知識新技術,不愛吹牛喝酒玩游戲,整電子己成了人生一大樂趣!
回復

使用道具 舉報

33#
ID:808399 發表于 2020-8-7 17:19 | 只看該作者
noble64 發表于 2020-4-2 16:37
80后業余學了兩年了,花了不少時間。太多地方還是沒明白,目前水平入門階段,簡單的都理解了,稍微變換一下 ...

和你一樣,簡單的能理解學會,深入一點就不會了,網上找了很多資料,大多是觀賞性的,一步一步教實操性的不多
回復

使用道具 舉報

34#
ID:587620 發表于 2020-10-6 22:07 | 只看該作者
您好,同為80后,做了這么多年電子行業,我和您的情況如出一轍,有機會認識一下
回復

使用道具 舉報

35#
ID:587620 發表于 2020-10-6 22:09 | 只看該作者
同為八零后,我的情況與您如出一轍,希望認識一下
回復

使用道具 舉報

36#
ID:57512 發表于 2020-10-22 22:13 | 只看該作者
看到老哥們都在努力,我也來參和幾句,小弟我93年的,但每每想到奔三了,就抑制不住心中的不舒服。諸葛曰:創業未半,而中道滿三十。其實我現在在家接單呢,家里有個沒用的三室一廳,所以把客廳擺了一張2米長桌子,用于接單做事。為什么我會這樣?細細道來
2016年畢業于二本院校機械設計制造及其自動化,在校表現中規中矩,可能因為對機械的工作環境不向往,所以大學期間一直對C語言和單片機感興趣,由于學長很好和學校需要發展,有幸渾水摸魚拿了四五次省級獎。PWM、IIC、顯示、按鍵、遙控、步進、測距、測溫啥的都會了,然而,總覺得自己是一桶水不響,半桶水響叮當的感覺。又由于我從小性格容易膨脹,讀書時候不按常理出牌,畢業后總想自己能搞點什么。即使我的第一份實習工作是我PK掉300人連升兩級,到了公司oppo項目助理位置,我也由于剛畢業的幼稚天不怕地不怕,辭職了。這一操作,導致我流浪祖國大地,首先是離開泉州,然后到了晉江,再然后到了重慶,再然后到了山東,再然后又到重慶,再然后就是今天,在貴州家里(四線城市,我們市里就沒有搞研發的,艸)。流浪期間,我要么接單,要么啃老。回到貴州前在重慶某公司呆了近2年,還算有些收獲。結婚也是重要原因。好了,現在我是真的慌的一批。第一,我是流浪工程師,技術沒有高貴的血統。第二,我家這個城市壓根幾乎沒有搞單片機的。第三,接單一個人搞真的吃不消(最近有個2萬項目,計劃40天,實際已經快3月)最后,配一張心酸.jpg  大哥們自行體會,嗚嗚嗚

回復

使用道具 舉報

37#
ID:58775 發表于 2020-11-14 00:34 | 只看該作者
樓主你好,我也是80后,小你兩歲,做硬件出身,自學51單片機,自學過程中發現自己的C語言基礎很差,C語言也是自學的,基本上是用到哪里學哪里,最近決定把C語言系統的學一遍,目前看的書是C Primer Plus。樓主的代碼很規范,抽象能力也很強,真不愧是碼農出身。

看樓主的代碼我也是一知半解,比如看到樓主用typedef定義了兩個為函數指針一個為結構體的新類型,其中結構體里的成員又包含了之前定義的函數指針類型,目前我的水平就是在51里用if,,if else和switch,基本上把51簡單的外圍跑過一遍問題不大,要是我想達到像樓主一半的水平,那樣的抽象能力,編程思維,我應該看什么書?
回復

使用道具 舉報

38#
ID:3448 發表于 2020-11-15 18:24 | 只看該作者
樓主加油!
回復

使用道具 舉報

39#
ID:462827 發表于 2021-1-12 08:12 | 只看該作者
哈哈,比我還小幾歲,我去年才開始自學51單片機的,因為有C語言基礎學起來還是很容易的,現在連51匯編也會了。
回復

使用道具 舉報

40#
ID:883031 發表于 2021-2-24 11:01 | 只看該作者
P2的寄存器地址是A0,P2=0xA0是對端口賦值,也就是將值0XA0放進了P2(0xa0)這個地址里了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 性欧美精品一区二区三区在线播放 | av乱码 | 久久伊人精品一区二区三区 | 国产成人影院 | 日韩av看片 | 四虎在线播放 | 国产精品国产三级国产aⅴ中文 | 亚洲视频中文字幕 | 日本在线中文 | 91久久国产综合久久 | 一区二区国产精品 | 国产成人免费网站 | 国精产品一品二品国精在线观看 | 欧美日韩久久 | 国产成在线观看免费视频 | 蜜臀久久| 91欧美精品成人综合在线观看 | 91在线观看 | 亚洲精品久久久蜜桃 | 国产一区二区三区欧美 | 福利视频一区 | 91精品国产综合久久久久久丝袜 | 亚洲国产成人精品女人 | 日韩一区二区福利视频 | 欧美日韩精品免费观看 | 国产在线色 | 精品91久久久 | 亚洲欧美一区二区三区1000 | 午夜丰满少妇一级毛片 | 999久久久| 日韩欧美手机在线 | 一区二区视频在线 | 在线日韩视频 | 精品中文字幕视频 | 精品美女视频在线观看免费软件 | 成人精品久久久 | 国产在线视频一区 | 欧洲免费视频 | 欧美日韩亚洲在线 | 中文精品视频 | 日本成人午夜影院 |