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

標(biāo)題: 51單片機(jī)C#上位機(jī)+下位機(jī)各種程序(經(jīng)典) [打印本頁]

作者: Jinsheng    時間: 2017-12-27 10:21
標(biāo)題: 51單片機(jī)C#上位機(jī)+下位機(jī)各種程序(經(jīng)典)
C#上位機(jī)源碼

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


單片機(jī)下位機(jī)源程序如下:
  1.                          #include<reg51.h>
  2. #include<intrins.h>                //因?yàn)橐玫阶笥乙坪瘮?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)         //位選,選擇點(diǎn)亮的數(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è)置計(jì)數(shù)器工作方式2
  121.         PCON=0X80;                        //波特率加倍
  122.         TH1=0XF3;                                //計(jì)數(shù)器初始值設(shè)置,注意波特率是4800的
  123.         TL1=0XF3;
  124.         ES=1;                                                //打開接收中斷
  125.         EA=1;                                                //打開總中斷
  126.         TR1=1;                                        //打開計(jì)數(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)



作者: DMC    時間: 2018-1-3 08:31
已下載 謝謝  胡老師是誰

作者: wuxishun    時間: 2018-1-3 18:46
很好的資料,對學(xué)習(xí)中的我應(yīng)該很有用
作者: tianli38    時間: 2018-3-15 10:00
很好的資料,學(xué)習(xí)中;
作者: tianli38    時間: 2018-3-15 10:01
很好的資料,學(xué)習(xí)中;
作者: douhun    時間: 2018-4-4 11:01
在這里發(fā)布能得黑幣嗎,新手剛來的
作者: fin    時間: 2018-7-11 09:15
謝謝,正在學(xué)習(xí)上位機(jī)
作者: olivier    時間: 2018-7-17 13:42
感謝樓主,請問胡老師是誰
作者: wo3788065521    時間: 2018-7-18 18:38
學(xué)習(xí)了
作者: lzhiaohiua    時間: 2018-8-1 12:55

已下載 謝謝樓主的分享
作者: qq35404085    時間: 2018-8-28 23:13
有沒有易語言的啊
作者: fcg99999999    時間: 2018-10-12 10:24
不錯不錯!
作者: xuexi1980    時間: 2018-11-6 22:09
學(xué)習(xí)學(xué)習(xí)學(xué)習(xí)
作者: jasonyush    時間: 2018-12-15 22:42
正好需要 可以下載不了
作者: 663613431    時間: 2018-12-17 10:12
新手學(xué)習(xí),多謝
作者: showrock    時間: 2019-1-11 13:52
不錯不錯,支持一下了!
作者: huaxin22    時間: 2019-4-2 19:07
已下載 謝謝  高手胡老師是誰
作者: huaxin22    時間: 2019-4-2 19:26
我的電腦為啥打不開呢,用什么軟件打開 的呢

作者: 老婆當(dāng)家    時間: 2019-10-7 00:26
不錯 好資料要果斷收藏學(xué)習(xí)
作者: berlin235    時間: 2019-10-7 08:06
感謝樓主分享,正好要學(xué)習(xí)
作者: 追封    時間: 2020-2-22 21:48
感謝大佬,下載學(xué)些學(xué)習(xí)
作者: T禮物X    時間: 2020-3-25 12:01
先謝謝樓主
作者: wov    時間: 2020-3-25 15:22
好資料要果斷收藏學(xué)習(xí)
作者: 348281001    時間: 2020-3-26 12:54

很好的資料,學(xué)習(xí)中;
作者: buck    時間: 2021-12-5 23:18
51單片機(jī)C#上位機(jī)+下位機(jī)各種程序(經(jīng)典),帥
作者: chscn    時間: 2023-12-8 11:47
謝謝分享,厲害了,再次感謝




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 我要看一级黄色片 | 国产欧美日韩一区 | 国产浮力第一页 | 天天色网站 | 黄色草逼视频 | 亚洲精品久久 | 日韩成人免费 | 一级黄色a | 午夜在线观看免费视频 | 欧美午夜精品一区二区三区 | 色伊人网 | 三a毛片 | 国产一区二区视频在线观看 | 欧美又大粗又爽又黄大片视频 | 欧美片网站免费 | 91免费福利视频 | 看免费毛片 | 人人干人人爱 | 欧洲精品一区 | 午夜影院免费观看 | 亚洲国产精品一区二区三区 | 国产三级精品三级在线观看 | 黄色免费视频网站 | 国产视频在线观看视频 | 九九九久久久 | 亚洲伊人av | 久久精品一区二区 | 色播av| 亚洲色网址 | 国产tv | 吃奶动态图 | 国产美女精品 | 成人免费毛片嘿嘿连载视频 | 国产一区二区三区在线视频 | 国产高清一区二区 | www.av在线播放| 蜜臀av性久久久久av蜜臀妖精 | 18国产免费视频动漫 | 日韩国产一区二区 | www.四虎影视 | 中文字幕亚洲欧美 |