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

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

QQ登錄

只需一步,快速開始

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

基于單片機(jī)+VB的溫度曲線上位機(jī)程序設(shè)計(jì)教程與源碼

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
資料包內(nèi)容:


基于VB6.0的上位機(jī)程序設(shè)計(jì)
內(nèi)部培訓(xùn)資料(不得轉(zhuǎn)載)
隨著嵌入式系統(tǒng)在電子領(lǐng)域應(yīng)用的不斷深入,可視化的單片機(jī)控制與檢測(cè)系統(tǒng)越來越成為單片機(jī)技術(shù)的應(yīng)用熱點(diǎn)。廣泛應(yīng)用到工業(yè)自動(dòng)化生產(chǎn)、交通、醫(yī)療、教育和各種自動(dòng)控制等領(lǐng)域,如心電監(jiān)護(hù)、全方位視頻跟蹤監(jiān)視。在這些復(fù)雜的數(shù)字系統(tǒng)中,計(jì)算機(jī)被稱為上位機(jī),通過上位機(jī)和相關(guān)的軟件實(shí)現(xiàn)傳感信號(hào)的檢測(cè)和對(duì)外部設(shè)備的控制。利用計(jì)算機(jī)實(shí)現(xiàn)可視化的控制系統(tǒng)包括上位機(jī)程序設(shè)計(jì)、接口設(shè)計(jì)和單片機(jī)系統(tǒng)設(shè)計(jì)。
單片機(jī)相比較計(jì)算機(jī)而言又叫下位機(jī),是直接對(duì)檢測(cè)對(duì)象測(cè)量和控制的系統(tǒng),有時(shí)也把接口與下位機(jī)設(shè)計(jì)在在一個(gè)系統(tǒng)中統(tǒng)稱接口電路。基于計(jì)算機(jī)基礎(chǔ)的上位機(jī)程序可以提高復(fù)雜的單片機(jī)控制系統(tǒng)的人機(jī)交互功能。
本項(xiàng)目設(shè)計(jì)的內(nèi)容是一個(gè)簡(jiǎn)單的溫度檢測(cè)系統(tǒng),上位機(jī)程序用來檢測(cè)和顯示單片機(jī)系統(tǒng)發(fā)送的數(shù)據(jù),下位機(jī)是一個(gè)簡(jiǎn)單的溫度檢測(cè)系統(tǒng),通過USB接口虛擬一個(gè)串口傳輸數(shù)據(jù),上位機(jī)程序?qū)崟r(shí)顯示溫度,并通過曲線的形式描繪出溫度的變化過程。上位機(jī)程序VB6.0設(shè)計(jì),程序執(zhí)行后,上位機(jī)程序要定時(shí)向下位機(jī)即單片機(jī)系統(tǒng)發(fā)送指令,下位機(jī)在接到命令后就開始發(fā)送溫度信息。上位機(jī)顯示的溫度曲線要能準(zhǔn)確的表示當(dāng)時(shí)的溫度,誤差不能超過5%,能過顯示的溫度范圍在20攝氏度到80攝氏度之間。上位機(jī)程序兩次接收的溫度數(shù)據(jù)間隔控制在在1秒鐘左右,能夠顯示的溫度曲線的總時(shí)間在2分鐘左右。
3.1 VB簡(jiǎn)單認(rèn)識(shí)
VB是Visual Basic的簡(jiǎn)稱,是由美國微軟公司于1991年開發(fā)的一種可視化的、面向?qū)ο蠛筒捎檬录?qū)動(dòng)方式的結(jié)構(gòu)化高級(jí)程序設(shè)計(jì)語言,可用于開發(fā) Windows 環(huán)境下的各類應(yīng)用程序。今天我們以VB6.0為基礎(chǔ),簡(jiǎn)單的認(rèn)識(shí)VB,然后我們就可以利用VB這個(gè)強(qiáng)大的開發(fā)工具去開發(fā)我們需要的各類程序。
3.1.1VB6.0基本操作
在Visual Basic安裝成功之后,安裝程序自動(dòng)在【開始】菜單中建立Visual Basic 6.0的程序組和程序項(xiàng)。單擊【開始】按扭,指向【所有程序】選項(xiàng),再指向【Microsoft Visual Basic 6.0中文版】程序組,單擊【Microsoft Visual Basic 6.0中文版】選項(xiàng)即可啟動(dòng)Visual Basic6.0中文版。
在VB6.0啟動(dòng)后,屏幕上將出現(xiàn)如圖3-1所示的啟動(dòng)界面,在啟動(dòng)界面中會(huì)出現(xiàn)一個(gè)【新建工程】對(duì)話框。
圖3-1 VB6.0啟動(dòng)界面
    一、創(chuàng)建工程
在VB6.0啟動(dòng)界面中的【新建工程】對(duì)話框中選擇一個(gè)合適的工程類型,然后單擊【打開】按鈕,就可以新建一個(gè)工程,新工程打開后的用戶界面如圖3-2所示。
圖3-2 VB6.0的用戶界面
    二、放置控件和設(shè)置控件屬性
在用戶界面的左側(cè)是VB6.0的【工具箱】,在【工具箱】中有我們常用的各類控件,在設(shè)計(jì)窗體時(shí)我們可以直接從工具箱中選擇控件,然后在中間的【對(duì)象窗口】中按住鼠標(biāo)左鍵拖出一個(gè)矩形后,相應(yīng)的控件就放置到了用戶的編輯窗口中,對(duì)于控件的各個(gè)屬性,我們可以通過VB界面右面的【屬性窗口】設(shè)置各個(gè)控件的各種屬性,放置并調(diào)整好控件的各個(gè)屬性的【對(duì)象窗口】如圖3-3所示。
圖3-3 添加控件后的對(duì)象窗口
    三、添加代碼
雙擊【對(duì)象窗口】的空白處或者某個(gè)控件,就會(huì)出現(xiàn)【代碼窗口】,代碼窗口如圖3-4所示。
圖3-4 代碼窗口
在代碼窗口中為各個(gè)事件添加相應(yīng)的代碼,在程序運(yùn)行的時(shí)候一旦某個(gè)事件發(fā)生,就會(huì)執(zhí)行相應(yīng)的代碼段,這里以Form_Load()事件為例,簡(jiǎn)單的設(shè)計(jì)一個(gè)實(shí)例程序。Form_Load()事件是在程序啟動(dòng)時(shí)調(diào)用的,這里我們添加如下代碼:
Private Sub Form_Load()
    Form1.Caption = "示例程序"   '設(shè)置窗體的標(biāo)題為“示例程序”
    Text1.Text = "文本框"        '設(shè)置文本框的文本為“文本框”
    Command1.Caption = "按鈕"   '設(shè)置按鈕的標(biāo)題為“按鈕”
    Combo1.Text = "下拉列表框"  '設(shè)置下拉列表框的文本為“下拉列表框”
End Sub
   五、程序運(yùn)行
添加好代碼后,我們可以通過單擊工具欄上的【啟動(dòng)】按鈕,或者單擊菜單欄的【運(yùn)行啟動(dòng)】菜單項(xiàng),也可以直接按F5鍵運(yùn)行程序,程序運(yùn)行時(shí)的界面如圖3-5所示。
圖3-5 程序運(yùn)行界面
3.2上位機(jī)程序設(shè)計(jì)
上位機(jī)程序設(shè)計(jì)不但要求界面簡(jiǎn)單,而且操作人性化,本項(xiàng)目上位機(jī)程序運(yùn)行后的界面如圖6-1-6所示。界面包括串口設(shè)置選擇窗口,串口控制按鍵、溫度顯示窗口等。
3-6 上位機(jī)程序運(yùn)行界面
3.2.1新建工程并添加控件
根據(jù)前面介紹,先建立一個(gè)【標(biāo)準(zhǔn)EXE】工程。然后添加MSComm控件。過程如下:
(1)單擊【工程→部件】菜單項(xiàng),打開部件對(duì)話框,如圖3-7所示,選中【控件】選項(xiàng)卡里面的【Microsoft Comm Control 6.0】控件列表項(xiàng),單擊【確定】按鈕。
           
          圖3-7  添加MSComm控件            3-8  添加控件后的工具箱
添加過MSComm控件后,就可以看到在工具箱中增加了一個(gè)像電話的圖標(biāo),如圖3-8右下角的電話圖標(biāo)就是VB串口通信所用的標(biāo)準(zhǔn)控件(MSComm控件)。
(2)單擊【MSComm】控件,并在窗體Form1上拖出一個(gè)矩形,如圖3-9所示,這時(shí)MSComm控件就被添加到了該工程中。
圖3-9  添加MSComm控件
3.2.2添加其他控件設(shè)置屬性
在VB的編輯窗口中依次添加下列控件:一個(gè)下拉列表框,一個(gè)按鈕,一個(gè)定時(shí)器,一個(gè)圖片框和30個(gè)靜態(tài)文本框,所有的屬性設(shè)置如表3-1所示。添加完控件后的VB編輯界面如圖3-9所示。
表3-1  控件屬性表
控件類別
控件名稱
控件屬性
Caption
Top
Left
Height
Width
MSComm
MSComm_Temp


120
9700




按鈕
Comm_open
打開串口
240
7200
375
1350
定時(shí)器
Timer1


240
10400




下拉列表
Combo_Com


240
4500
300
2200
圖片框
Templine


1150
1000
6500
9250
靜態(tài)文本框
Lable1
溫度曲線圖
720
4800
375
1800
Lable2
串口號(hào)
240
3240
255
850
Lable3
溫度(C)
960
360
255
730
Lable4
80
1350
720
150
200
Lable5
70
2350
720
150
200
Lable6
60
3350
720
150
200
Lable7
50
4350
720
150
200
Lable8
40
5350
720
150
200
Lable9
30
6350
720
150
200
Lable10
20
7350
720
150
200
Lable11
時(shí)間(S)
7680
10300
255
800
Lable12
0
7680
1000
195
195
Lable13
5
7680
1500
195
195
Lable14
10
7680
2000
195
195
Lable15
15
7680
2500
195
195
Lable16
20
7680
3000
195
195
Lable17
25
7680
3500
195
195
Lable18
30
7680
4000
195
195
Lable19
35
7680
4500
195
195
Lable20
40
7680
5000
195
195
Lable21
45
7680
5500
195
195
Lable22
50
7680
6000
195
195
Lable23
55
7680
6500
195
195
Lable24
60
7680
7000
195
195
Lable25
65
7680
7500
195
195
Lable26
70
7680
8000
195
195
Lable27
75
7680
8500
195
195
Lable28
80
7680
9000
195
195
Lable29
85
7680
9500
195
195
Lable30
90
7680
10000
195
195
3.2.3添加代碼
                   為各個(gè)事件處理函數(shù)添加代碼如下:

  1. Dim flag_com_open As Boolean            '定義COM端口的打開標(biāo)識(shí)
  2. Dim time_temp As Integer                 '定義記錄時(shí)間的變量
  3. Dim temp_bufx, temp_bufy As Integer       '定義兩個(gè)存放坐標(biāo)的變量

  4. Private Sub Combo_Com_Click()
  5.     On Error Resume Next
  6.     x = Combo_Com.Text                '獲取選擇的列表項(xiàng)的文本
  7.     m = Len(x)                         '獲取列表項(xiàng)的長度
  8.     n = Val(Right$(x, m - 3))              '獲取列表項(xiàng)里的端口號(hào)
  9.     MSComm_Temp.CommPort = n      '設(shè)置MScomm控件的端口號(hào)為選擇的端口號(hào)
  10. End Sub

  11. Private Sub Comm_open_Click()
  12.     If (flag_com_open = False) Then
  13.        Comm_open.Caption = "關(guān)閉端口"   '根據(jù)flag_com_open的值設(shè)置按鈕Comm_open的Caption的值
  14.        flag_com_open = True
  15.        If MSComm_Temp.PortOpen = False Then
  16.            MSComm_Temp.PortOpen = True
  17.        End If
  18.        Timer1.Enabled = True              '打開端口后使Timer1有效并開始計(jì)時(shí)
  19.     Else
  20.        Comm_open.Caption = "打開端口"
  21.        MSComm_Temp.PortOpen = False
  22.        flag_com_open = False
  23.        Timer1.Enabled = False              '關(guān)閉端口后使Timer1無效
  24.     End If
  25. End Sub

  26. Private Sub Form_Load()
  27.     Dim i As Integer
  28.     Timer1.Enabled = False                 '設(shè)置定時(shí)器Timer1無效
  29.     Timer1.Interval = 1000                  '設(shè)定定時(shí)器的觸發(fā)時(shí)間是1000ms
  30.     temp_bufx = 0
  31.     temp_bufy = 5500
  32.     Templine.AutoRedraw = True
  33.     Templine.DrawStyle = 2                 '將劃線的格式改為虛線格式
  34.     For i = 250 To 6250 Step 500             '依次畫出溫度的各條基準(zhǔn)線
  35.         Templine.Line (0, i)-(9250, i)
  36.     Next i
  37.     Templine.DrawStyle = 0                 '將劃線的格式改為實(shí)線格式
  38.     For i = 1 To 16                         '依次為下拉列表框添加列表項(xiàng)
  39.         Combo_Com.AddItem "COM" & i
  40.     Next i
  41.     MSComm_Temp.Settings = "9600,N,8,1"   '波特率是9600,無校驗(yàn),8為數(shù)據(jù)位,
  42.                                          1位停止位
  43.     MSComm_Temp.OutBufferSize = 0        '設(shè)置發(fā)送緩沖區(qū)的大小,以字符為單位
  44.     MSComm_Temp.InBufferSize = 0         '設(shè)置接收緩沖區(qū)的大小,以字符為單位
  45.     MSComm_Temp.InputMode = comInputModeText    '以文本方式接收
  46.     MSComm_Temp.RThreshold = 4  '設(shè)置產(chǎn)生oncomm事件的字符數(shù),以字符為單位
  47.     MSComm_Temp.SThreshold = 1
  48.     MSComm_Temp.InputLen = 0 '設(shè)置從接收緩沖區(qū)讀取的字符數(shù),為0表示全部讀取
  49.     MSComm_Temp.InBufferCount = 0        '清空接收緩沖區(qū)
  50. End Sub

  51. Private Sub MSComm_Temp_OnComm()
  52.     Dim a As String
  53.     Dim temp As Integer
  54.     If MSComm_Temp.CommEvent = comEvReceive Then
  55.         a = MSComm_Temp.Input            '讀取緩沖區(qū)內(nèi)的數(shù)據(jù)
  56.         For i = 1 To 4
  57.             temp = temp * 10 + Val(Mid(a, i, 1)) '分析數(shù)據(jù),得到傳輸?shù)臄?shù)據(jù)值
  58.         Next i
  59.         Templine.Line (temp_bufx, temp_bufy)-(time_temp * 50, 8250 - temp), vbRed
  60. '根據(jù)得到的數(shù)據(jù)值和當(dāng)前的時(shí)間以及原有的數(shù)據(jù)畫出一條直線
  61.         temp_bufx = time_temp * 50          '存儲(chǔ)當(dāng)前數(shù)據(jù),以方便下次使用
  62.         temp_bufy = 8250 - temp
  63.         time_temp = time_temp + 1           '時(shí)間值增加1
  64.     End If
  65. End Sub

  66. Private Sub Timer1_Timer()                   'Timer1中斷處理函數(shù)
  67.     MSComm_Temp.Output = Chr(&H30)  '向下位機(jī)發(fā)送一個(gè)數(shù)據(jù),用于和下位機(jī)通信
  68. End Sub
復(fù)制代碼

3.3 單片機(jī)電路
下位機(jī)電路中數(shù)碼管和DS18B20與單片機(jī)的連接圖,如圖3-10所示。
圖3-10 實(shí)驗(yàn)板上數(shù)碼管和DS18B20與單片機(jī)的連接圖
3.4單片機(jī)程序設(shè)計(jì)
/********該程序主要是利用DS18B20采集溫度,然后通過數(shù)碼管顯示溫度*************/
/*當(dāng)程序收到上位機(jī)發(fā)送的命令之后,該程序會(huì)將當(dāng)時(shí)的溫度值通過串口發(fā)送給上位機(jī)*/

  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit DQ = P1^0;                            //定義DS18B20的信號(hào)線端口
  5. uchar i,j;
  6. uchar dis_buffer[4];//定義數(shù)據(jù)緩沖數(shù)組
  7. uchar bit_ser[]={0xfe,0xfd,0xfb,0xf7}; //定義數(shù)碼管片選數(shù)組
  8. uchar seven_seg[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  9.                                                                                                                                  //定義數(shù)碼管段選數(shù)組
  10. /****************************延時(shí)函數(shù)*********************************/
  11. void delay(uint x)
  12. {
  13.               while(x)  
  14.               x--;
  15. }
  16. /*************************DS18B20初始化函數(shù)***************************/
  17. void Init_DS18B20(void)
  18. {
  19.               unsigned char x=0;
  20.               DQ = 1;         //DQ復(fù)位
  21.               delay(8);       //稍做延時(shí)
  22.               DQ = 0;                      //單片機(jī)將DQ拉低
  23.               delay(80);                 //精確延時(shí) 大于 480us
  24.               DQ = 1;                    //拉高總線
  25.               delay(14);
  26.               x=DQ;                        //稍做延時(shí)后 如果x=0則初始化成功 x=1則初始化失敗
  27.               delay(20);
  28. }
  29. /***************************從18B20中讀一個(gè)字節(jié)************************/
  30. uchar ReadOneChar(void)
  31. {
  32.               uchar i=0;
  33.               uchar dat = 0;
  34.               for (i=8;i>0;i--)
  35.               {
  36.                               DQ = 0;               // 給脈沖信號(hào)
  37.                               dat>>=1;
  38.                               DQ = 1;               // 給脈沖信號(hào)
  39.                               if(DQ)
  40.                                dat|=0x80;
  41.                               delay(8);
  42.               }
  43.               return(dat);
  44. }
  45. /***************************向18B20中寫一個(gè)字節(jié)************************/
  46. Write_OneChar(uchar dat)
  47. {
  48.               uchar i=0;
  49.               for (i=8; i>0; i--)
  50.               {
  51.                             DQ = 0;                //給脈沖信號(hào)
  52.                             DQ = dat & 0x01;
  53.                             delay(5);
  54.                             DQ = 1;                //給脈沖信號(hào)
  55.                             dat >>= 1;
  56.               }
  57.               delay(4);
  58. }
  59. /**************************從18B20中讀取一個(gè)字節(jié)***********************/
  60. int Read_Temperature(void)
  61. {
  62.               uchar i = 0,t = 0,a,b;
  63.               int temp;
  64.               Init_DS18B20();
  65.               Write_OneChar(0xcc);               // 跳過讀序號(hào)列號(hào)的操作
  66.               Write_OneChar(0x44);               // 啟動(dòng)溫度轉(zhuǎn)換
  67.               Init_DS18B20();
  68.               Write_OneChar(0xcc);               //跳過讀序號(hào)列號(hào)的操作
  69.               Write_OneChar(0xbe);               //讀取溫度寄存器等(共可讀9個(gè)寄存器)前兩個(gè)就是溫度
  70.               i = ReadOneChar();                 //讀取溫度值低位
  71.               t = ReadOneChar();                 //讀取溫度值高位
  72.               a = i & 0x0f;
  73.               b = t;
  74.               i = i >> 4;             //低位右移4位,舍棄小數(shù)部分
  75.               t = t << 4;             //高位左移4位,舍棄符號(hào)位
  76.               t = t | i;
  77.               temp = (t + a * 0.0625) * 100; //得到一個(gè)比實(shí)際溫度擴(kuò)到100倍的值,主要是為了更好的顯示和傳輸         
  78.               return(temp);                                          //返回溫度值
  79. }

  80. /***************************初始化定時(shí)器0******************************/
  81. void timer0_init(void)                                          //
  82. {
  83.               TMOD = 0x21; //由于串口通信需要使用定時(shí)器1,因此TMOD的值是0x21
  84.               TL0 = (65536-5000) % 256;
  85.               TH0 = (65536-5000) / 256;
  86.               EA = 1;
  87.               ET0 = 1;
  88.               TR0 = 1;
  89. }
  90. /*************************發(fā)送數(shù)據(jù)的函數(shù)********************************/
  91. void txd_data(char send_data)            
  92. {
  93.               SBUF = send_data; //將需要發(fā)送的數(shù)據(jù)放入發(fā)送緩沖區(qū)
  94.               while(!TI);                              //等待發(fā)送數(shù)據(jù)
  95.               TI = 0;
  96. }
  97. /********************T0中斷處理函數(shù),主要用于顯示當(dāng)前溫度***************/
  98. void timer0_isr(void) interrupt 1
  99. {
  100.               int temp;
  101.               TR0 = 0;
  102.               TL0 = (65536-5000) % 256;
  103.               TH0 = (65536-5000) / 256;
  104.               TR0 = 1;
  105.               switch(i)
  106.               {
  107.                             case 0:
  108.                                           P2 = bit_ser[0];
  109.                                           P0 = seven_seg[dis_buffer[0]];                                                      
  110.                                           break;
  111.                             case 1:
  112.                                           P2 = bit_ser[1];
  113.                                           P0 =seven_seg[dis_buffer[1]] & 0x7f;
  114.                                           break;
  115.                             case 2:
  116.                                           P2 = bit_ser[2];
  117.                                           P0 =seven_seg[dis_buffer[2]];
  118.                                           break;
  119.                             case 3:
  120.                                           P2 = bit_ser[3];
  121.                                           P0 =seven_seg[dis_buffer[3]];
  122.                                           break;
  123.               }
  124.               i++;
  125.               if(i >= 4)
  126.               {
  127.                             i = 0;
  128.                             j++;
  129.                             if(j >= 10)              //如果到200ms就會(huì)讀取一次溫度,并將溫度值放入顯示緩沖區(qū)
  130.                             {
  131.                                           j = 0;
  132.                                           temp = Read_Temperature();
  133.                                           dis_buffer[0] = temp / 1000;
  134.                                              dis_buffer[1] = temp % 1000 / 100;
  135.                                           dis_buffer[2] = temp % 100 / 10;
  136.                                           dis_buffer[3] = temp % 10;
  137.                             }
  138.               }
  139. }

  140. /***************************串口通信初始化函數(shù)***************************/
  141. void uart_init(void)
  142. {
  143.               SCON = 0x50;         //方式1,充許接收
  144.               TMOD = 0x21;         //T1方式2定時(shí),T0方式是1         
  145.               TH1 = 0xFd;          //波特率9600,Fosc=11.0592MHz
  146.               TL1 = 0xFd;
  147.               TR1 = 1;
  148.               ES = 1;                         // 打開串口中斷
  149. }
  150. /**************************串口中斷處理函數(shù)*****************************/
  151. void uart() interrupt 4                                          
  152. {
  153. ……………………

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

3.5聯(lián)機(jī)調(diào)試
第一步,首先用USB線連接實(shí)驗(yàn)板和計(jì)算機(jī),通過軟件向?qū)嶒?yàn)板中燒錄編寫的程序,并且讓實(shí)驗(yàn)板加電啟動(dòng),然后通過系統(tǒng)的設(shè)備管理器查看實(shí)驗(yàn)板與計(jì)算機(jī)通信的端口號(hào),如圖3-11所示。
圖3-11  設(shè)備管理器
第二步,啟動(dòng)上位機(jī)程序,根據(jù)實(shí)驗(yàn)板和計(jì)算機(jī)之間的通信端口,選擇合適的端口號(hào),如圖3-12所示。
圖3-11 選擇端口號(hào)
然后單擊【打開端口】按鈕,即可實(shí)現(xiàn)實(shí)驗(yàn)板和計(jì)算機(jī)之間的串口通信,計(jì)算機(jī)程序會(huì)根據(jù)實(shí)驗(yàn)板傳輸?shù)臏囟葦?shù)據(jù)畫出各個(gè)時(shí)刻的溫度曲線,如圖3-13所示,其中開始的一段為室溫下的溫度曲線,中間凸起的部分曲線是加熱后產(chǎn)生的曲線。
圖3-13 溫度曲線圖
思考題:
1.修改上位機(jī)和單片機(jī)程序,使之能通過上位機(jī)進(jìn)行溫度上下限的設(shè)置。
2.修改上下位機(jī)的程序,使之能夠顯示零攝氏度下的圖形。


全部資料(源碼)51hei下載地址:
基于VB的上位機(jī)程序設(shè)計(jì).zip (453.63 KB, 下載次數(shù): 290)



評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2017-11-9 03:52 | 只看該作者
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

板凳
ID:47652 發(fā)表于 2017-11-12 10:01 | 只看該作者
值得收藏謝分享
回復(fù)

使用道具 舉報(bào)

地板
ID:89841 發(fā)表于 2018-5-18 14:00 | 只看該作者
                 學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

5#
ID:433501 發(fā)表于 2018-11-26 15:44 | 只看該作者
優(yōu)秀,謝了
回復(fù)

使用道具 舉報(bào)

6#
ID:230470 發(fā)表于 2018-12-7 11:54 | 只看該作者
不錯(cuò)不錯(cuò)的東西
回復(fù)

使用道具 舉報(bào)

7#
ID:264054 發(fā)表于 2018-12-19 21:20 | 只看該作者
這個(gè)好, 學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

8#
ID:354681 發(fā)表于 2019-1-2 17:53 | 只看該作者
大兄弟,很給力
回復(fù)

使用道具 舉報(bào)

9#
ID:460976 發(fā)表于 2019-1-3 14:53 | 只看該作者
受教了,學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

10#
ID:535998 發(fā)表于 2019-5-13 14:16 | 只看該作者
感謝樓主分享,正是我需要的!
回復(fù)

使用道具 舉報(bào)

11#
ID:477794 發(fā)表于 2019-5-31 13:39 | 只看該作者
好資料,正需要
回復(fù)

使用道具 舉報(bào)

12#
ID:56665 發(fā)表于 2019-5-31 14:29 | 只看該作者
謝謝分享!
回復(fù)

使用道具 舉報(bào)

13#
ID:555681 發(fā)表于 2019-6-5 15:32 | 只看該作者
學(xué)習(xí)了  能不能用其他辦法處理圖像  
回復(fù)

使用道具 舉報(bào)

14#
ID:522147 發(fā)表于 2019-7-25 13:32 | 只看該作者

值得收藏謝分享
回復(fù)

使用道具 舉報(bào)

15#
ID:5564 發(fā)表于 2019-7-25 17:16 | 只看該作者
下載來看看,應(yīng)該有用
回復(fù)

使用道具 舉報(bào)

16#
ID:264054 發(fā)表于 2019-9-20 22:09 | 只看該作者
學(xué)習(xí)一下,謝謝啊
回復(fù)

使用道具 舉報(bào)

17#
ID:758637 發(fā)表于 2020-5-22 19:47 | 只看該作者
正好需要,非常感謝!!!
回復(fù)

使用道具 舉報(bào)

18#
ID:282431 發(fā)表于 2020-5-22 22:26 | 只看該作者
好資料,正需要學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

19#
ID:1044148 發(fā)表于 2022-9-7 16:53 | 只看該作者
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 无吗视频 | 天天摸天天干 | 亚洲精品国产成人 | 无码一区二区三区视频 | 国产成人亚洲精品 | 中文字幕视频一区二区 | 亚洲精品一区av在线播放 | 伊人网站在线 | 成人精品一区二区三区 | 色视频一区二区 | 羞羞视频网站免费看 | 天堂免费看片 | 中文字幕亚洲一区二区va在线 | 欧美一区二区免费 | 在线免费91 | 亚洲精品视频在线播放 | 国产午夜精品一区二区 | 欧美国产日韩在线观看成人 | 久久伊人免费视频 | 久久精品高清视频 | 成人av免费 | 国产精品久久久久久久久久久久久久 | 一区二区三区高清不卡 | 亚洲欧美视频 | a免费在线| 亚洲国产aⅴ精品 | 欧美日韩在线观看一区二区三区 | 国产精华一区 | 久久精彩视频 | 亚洲一区久久 | 成人在线免费观看视频 | 国产精品99视频 | 亚洲欧美精品在线 | 就操在线 | 成年人在线观看视频 | 热久久999 | 做a的各种视频 | 午夜成人在线视频 | 国产99久久久国产精品 | 伊大人久久 | 日韩爱爱网站 |