找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機(jī)C#上位機(jī)+下位機(jī)各種程序(經(jīng)典)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:267537 發(fā)表于 2017-12-27 10:21 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
C#上位機(jī)源碼

上位機(jī)程序與源碼


單片機(jī)下位機(jī)源程序如下:
  1.                          #include<reg51.h>
  2. #include<intrins.h>                //因為要用到左右移函數(shù),所以加入這個頭文件       
  3. #define GPIO_DIG P0
  4. #define GPIO_LED P0                //將P2口另外取名為GPIO_LED
  5. #define GPIO_PLACE P2        //1111-1101
  6. bit cmdArrived = 0;   //命令到達(dá)標(biāo)志,即接收到上位機(jī)下發(fā)的命令
  7. unsigned char cmdIndex;
  8. unsigned char n;
  9. unsigned int i;
  10. unsigned char code DIG_PLACE[8]={
  11. 0xfd,0xbf,0xfd,0xf7,0xef,0x7f,0xfd,0xfb};//學(xué)號16130712
  12. unsigned char code DIG_CODE[3]={
  13. 0x6d,0x5b,0x3f};
  14. //520的顯示
  15. unsigned char DisplayData[8];//用來存放要顯示的8位數(shù)的值
  16. sbit Beep =  P1^5 ;
  17. sbit LSA=P2^2;
  18. sbit LSB=P2^3;
  19. sbit LSC=P2^4;
  20. sbit RELAY = P1^4;  //定義繼電器使用的IO口
  21. sbit K1    = P0^0;  //定義按鍵使用的IO口

  22. //520子程序
  23. void Delay10ms(unsigned int c)   //誤差 0us
  24. {unsigned char a, b;
  25.     for (;c>0;c--)
  26.         {
  27.                 for (b=38;b>0;b--)
  28.                 {
  29.                         for (a=130;a>0;a--);
  30.                 }         
  31.         }      
  32. }
  33. void smg()
  34. {
  35.         unsigned char i = 0;

  36.         while(1)
  37.         {
  38.                 GPIO_DIG = ~DIG_CODE[i];
  39.                 i++;
  40.                 if(i == 3)
  41.                 {
  42.                         i = 0;
  43.                 }
  44.                 Delay10ms(50);
  45.         }                               
  46. }
  47. //0-7
  48. void DigDisplay()
  49. {
  50.         unsigned char i;
  51.         unsigned int j;
  52.         for(i=0;i<8;i++)
  53.         {switch(i)         //位選,選擇點亮的數(shù)碼管,
  54.                 {
  55.                         case(0):
  56.                                 LSA=0;LSB=0;LSC=0; break;//顯示第0位
  57.                         case(1):
  58.                                 LSA=1;LSB=0;LSC=0; break;//顯示第1位
  59.                         case(2):
  60.                                 LSA=0;LSB=1;LSC=0; break;//顯示第2位
  61.                         case(3):
  62.                                 LSA=1;LSB=1;LSC=0; break;//顯示第3位
  63.                         case(4):
  64.                                 LSA=0;LSB=0;LSC=1; break;//顯示第4位
  65.                         case(5):
  66.                                 LSA=1;LSB=0;LSC=1; break;//顯示第5位
  67.                         case(6):
  68.                                 LSA=0;LSB=1;LSC=1; break;//顯示第6位
  69.                         case(7):
  70.                                 LSA=1;LSB=1;LSC=1; break;//顯示第7位       
  71.                 }
  72.                 GPIO_DIG=DisplayData[i];//發(fā)送段碼
  73.                 j=10;                                                 //掃描間隔時間設(shè)定
  74.                 while(j--);       
  75.                 GPIO_DIG=0x00;//消隱
  76.         }
  77.         }
  78. void dsmg()
  79. {
  80.         unsigned char i;
  81.         for(i=0;i<8;i++)
  82.         {
  83.                 DisplayData[i]=DIG_CODE[i];       
  84.         }
  85.         while(1)
  86.         {
  87.                 DigDisplay();
  88.         }                               
  89. }
  90. //SHANSHUO
  91.                           void shanshuo(void)
  92. {
  93.         unsigned char LED;

  94.         LED = 0xFE;

  95.         while(1)
  96.         {
  97.                 P0 = LED;

  98.                 Delay10ms(50);

  99.                 LED = _crol_(LED,1);
  100.         }
  101. }
  102. //
  103. void jidianqi()
  104. {
  105.         while(1)
  106.         {
  107.                 if(K1 == 0)        //如果按鍵按下
  108.                 {
  109.                         RELAY = 0; //繼電器閉合
  110.                 }
  111.                 else
  112.                 {
  113.                         RELAY = 1;
  114.                 }
  115.         }
  116. }

  117. void UsartConfiguration()
  118. {
  119.         SCON=0X50;                        //設(shè)置為工作方式1
  120.         TMOD=0X20;                        //設(shè)置計數(shù)器工作方式2
  121.         PCON=0X80;                        //波特率加倍
  122.         TH1=0XF3;                                //計數(shù)器初始值設(shè)置,注意波特率是4800的
  123.         TL1=0XF3;
  124.         ES=1;                                                //打開接收中斷
  125.         EA=1;                                                //打開總中斷
  126.         TR1=1;                                        //打開計數(shù)器
  127. }

  128. void Usart() interrupt 4
  129. {
  130.        

  131.     if (RI)  //接收到字節(jié)
  132.     {                                                                                                                                                   
  133.                 cmdIndex = SBUF;
  134.                 RI = 0;  //清零接收中斷標(biāo)志位
  135.                 SBUF = cmdIndex;//將接收到的數(shù)據(jù)放入到發(fā)送寄存器
  136.                 cmdArrived = 1;  
  137.     }
  138.     if (TI)      //字節(jié)發(fā)送完
  139.     {  TI = 0;  //清零發(fā)送中斷標(biāo)志位
  140.     }
  141.                                          //清除發(fā)送完成標(biāo)志位
  142. }
  143. void main()
  144. {
  145.         UsartConfiguration();
  146.         while(1)
  147.         {
  148.                 if(cmdArrived)                          //進(jìn)入中斷,接受完數(shù)據(jù)且使得cmdIndex = SBUF后才執(zhí)行,假如SBUF=0x01
  149.                 {
  150.                 cmdArrived = 0;
  151.                         if(cmdIndex==0x33)       
  152.                         {                       
  153.                                         GPIO_LED=0x01;//0000 0010
  154.                                         while(1)
  155.                                         {
  156.                                         for(n=0;n<7;n++)                                                 //左移7次,這樣子就會到達(dá)最左邊
  157. ……………………

  158. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
所有作業(yè).rar (4.15 MB, 下載次數(shù): 481)


評分

參與人數(shù) 2黑幣 +10 收起 理由
abc000111 + 5 共享資料的黑幣獎勵!
morghuils + 5

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:269794 發(fā)表于 2018-1-3 08:31 | 只看該作者
已下載 謝謝  胡老師是誰
回復(fù)

使用道具 舉報

板凳
ID:243748 發(fā)表于 2018-1-3 18:46 來自手機(jī) | 只看該作者
很好的資料,對學(xué)習(xí)中的我應(yīng)該很有用
回復(fù)

使用道具 舉報

地板
ID:271559 發(fā)表于 2018-3-15 10:00 | 只看該作者
很好的資料,學(xué)習(xí)中;
回復(fù)

使用道具 舉報

5#
ID:271559 發(fā)表于 2018-3-15 10:01 | 只看該作者
很好的資料,學(xué)習(xí)中;
回復(fù)

使用道具 舉報

6#
ID:301917 發(fā)表于 2018-4-4 11:01 | 只看該作者
在這里發(fā)布能得黑幣嗎,新手剛來的
回復(fù)

使用道具 舉報

7#
ID:222106 發(fā)表于 2018-7-11 09:15 | 只看該作者
謝謝,正在學(xué)習(xí)上位機(jī)
回復(fù)

使用道具 舉報

8#
ID:373241 發(fā)表于 2018-7-17 13:42 | 只看該作者
感謝樓主,請問胡老師是誰
回復(fù)

使用道具 舉報

9#
ID:144356 發(fā)表于 2018-7-18 18:38 | 只看該作者
學(xué)習(xí)了
回復(fù)

使用道具 舉報

10#
ID:365673 發(fā)表于 2018-8-1 12:55 | 只看該作者

已下載 謝謝樓主的分享
回復(fù)

使用道具 舉報

11#
ID:387700 發(fā)表于 2018-8-28 23:13 | 只看該作者
有沒有易語言的啊
回復(fù)

使用道具 舉報

12#
ID:394574 發(fā)表于 2018-10-12 10:24 | 只看該作者
不錯不錯!
回復(fù)

使用道具 舉報

13#
ID:422038 發(fā)表于 2018-11-6 22:09 來自手機(jī) | 只看該作者
學(xué)習(xí)學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報

14#
ID:447010 發(fā)表于 2018-12-15 22:42 | 只看該作者
正好需要 可以下載不了
回復(fù)

使用道具 舉報

15#
ID:397455 發(fā)表于 2018-12-17 10:12 | 只看該作者
新手學(xué)習(xí),多謝
回復(fù)

使用道具 舉報

16#
ID:466445 發(fā)表于 2019-1-11 13:52 | 只看該作者
不錯不錯,支持一下了!
回復(fù)

使用道具 舉報

17#
ID:268886 發(fā)表于 2019-4-2 19:07 | 只看該作者
已下載 謝謝  高手胡老師是誰
回復(fù)

使用道具 舉報

18#
ID:268886 發(fā)表于 2019-4-2 19:26 | 只看該作者
我的電腦為啥打不開呢,用什么軟件打開 的呢
回復(fù)

使用道具 舉報

19#
ID:138918 發(fā)表于 2019-10-7 00:26 | 只看該作者
不錯 好資料要果斷收藏學(xué)習(xí)
回復(fù)

使用道具 舉報

20#
ID:278096 發(fā)表于 2019-10-7 08:06 | 只看該作者
感謝樓主分享,正好要學(xué)習(xí)
回復(fù)

使用道具 舉報

21#
ID:264765 發(fā)表于 2020-2-22 21:48 | 只看該作者
感謝大佬,下載學(xué)些學(xué)習(xí)
回復(fù)

使用道具 舉報

22#
ID:405264 發(fā)表于 2020-3-25 12:01 | 只看該作者
先謝謝樓主
回復(fù)

使用道具 舉報

23#
ID:427885 發(fā)表于 2020-3-25 15:22 | 只看該作者
好資料要果斷收藏學(xué)習(xí)
回復(fù)

使用道具 舉報

24#
ID:716126 發(fā)表于 2020-3-26 12:54 | 只看該作者

很好的資料,學(xué)習(xí)中;
回復(fù)

使用道具 舉報

25#
ID:478238 發(fā)表于 2021-12-5 23:18 | 只看該作者
51單片機(jī)C#上位機(jī)+下位機(jī)各種程序(經(jīng)典),帥
回復(fù)

使用道具 舉報

26#
ID:435636 發(fā)表于 2023-12-8 11:47 | 只看該作者
謝謝分享,厲害了,再次感謝
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表