日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]WPF部分:(1)建立WPF工程,步驟略下面是MainWindow.xaml.cs的內(nèi)容 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using System.Windows; 5 using System.Windows.Controls; 6 usin

WPF部分:


(1)建立WPF工程,步驟略


下面是MainWindow.xaml.cs的內(nèi)容


1 using System;

2 using System.Collections.Generic;

3 using System.Text;

4 using System.Windows;

5 using System.Windows.Controls;

6 using System.Windows.Data;

7 using System.Windows.Documents;

8 using System.Windows.Input;

9 using System.Windows.Media;

10 using System.Windows.Media.Imaging;

11 using System.Windows.Shapes;

12 using System.IO.Ports; //跟串口相關,不能只是引用system.IO

13 using System.Threading; //跟串口相關,線程的引入

14

15 namespace WpfApplication3

16 {

17 public partial class MainWindow : Window

18 {

19 delegate void HandleInterfaceUpdateDelagate(string text);//委托;此為重點

20 HandleInterfaceUpdateDelagate interfaceUpdateHandle;

21 public MainWindow()

22 {

23 this.InitializeComponent();

24 }

25 ///

26 /// 發(fā)送按鈕的單擊事件

27 ///

28 private void btnSend_Click(object sender, RoutedEventArgs e)

29 {

30 //實例化串口對象(默認:COMM1,9600,e,8,1)

31 SerialPort serialPort1 = new SerialPort();

32 //更改參數(shù)

33 serialPort1.PortName = "COM1"; //串口號(參考串口調(diào)試助手)

34 serialPort1.BaudRate = 9600; //波特率

35 serialPort1.Parity = Parity.None; //校驗位

36 serialPort1.DataBits = 8; //數(shù)據(jù)位

37 serialPort1.StopBits = StopBits.One; //停止位

38

39 //上述步驟可以用在實例化時調(diào)用SerialPort類的重載構造函數(shù)

40 //SerialPort serialPort = new SerialPort("COM1", 9600, Parity.None, StopBits.one);

41

42 //打開串口(打開串口后不能修改端口名,波特率等參數(shù),修改參數(shù)要在串口關閉后修改)

43 if (!serialPort1.IsOpen)

44 {

45 serialPort1.Open();

46 }

47 else

48 MessageBox.Show("Port is open!");

49

50 //用字節(jié)的形式發(fā)送數(shù)據(jù)

51 SendBytesData(serialPort1);

52

53 //開啟接收數(shù)據(jù)線程

54 ReceiveData(serialPort1);

55 }

56 ///

57 /// 開啟接收數(shù)據(jù)線程

58 ///

59 private void ReceiveData(SerialPort serialPort)

60 {

61 //同步阻塞接收數(shù)據(jù)線程

62 Thread threadReceive = new Thread(new ParameterizedThreadStart(SynReceiveData));

63 threadReceive.Start(serialPort);

64 }

65

66 //發(fā)送二進制數(shù)據(jù)

67 private void SendBytesData(SerialPort serialPort)

68 {

69 byte[] bytesSend = System.Text.Encoding.Default.GetBytes(txtSend.Text);

70 serialPort.Write(bytesSend, 0, bytesSend.Length);

71 }

72

73 //同步阻塞讀取

74 private void SynReceiveData(object serialPortobj)

75 {

76

77 SerialPort serialPort = (SerialPort)serialPortobj;

78 System.Threading.Thread.Sleep(0);

79 serialPort.ReadTimeout = 1000;

80 try

81 {

82 //先記錄下來,避免某種原因,人為的原因,操作幾次之間時間長,緩存不一致

83 int n = serialPort.BytesToRead;

84 byte[] buf = new byte[n];//聲明一個臨時數(shù)組存儲當前來的串口數(shù)據(jù)

85 //received_count += n;//增加接收計數(shù)

86 serialPort.Read(buf, 0, n);//讀取緩沖數(shù)據(jù)

87 //因為要訪問ui資源,所以需要使用invoke方式同步ui

88 interfaceUpdateHandle = new HandleInterfaceUpdateDelagate(UpdateTextBox);//實例化委托對象

89 Dispatcher.Invoke(interfaceUpdateHandle,

new string[]{Encoding.ASCII.GetString(buf)});

90 }

91 catch (Exception e)

92 {

93 MessageBox.Show(e.Message);

94 //處理超時錯誤

95 }

96 serialPort.Close();

97 }

98

99 private void UpdateTextBox(string text)

100 {

101 txtReceive.Text = text;

102 }

103 }

104 }


(2)下面是MainWindow.xaml的內(nèi)容



1

2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

4 x:Class="WpfApplication3.MainWindow"

5 x:Name="Window"

6 Title="MainWindow"

7 Width="300" Height="300">

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22



51單片機部分:


我選用的是STC89C52RC型號的單片機,帶有串口通信的51單片機應該都可以,但可能設置上有些不同。


下面是C語言代碼(可參考郭天祥著的51單片機C語言編程)。



1 #include

2 #define uchar unsigned char

3 #define uint unsigned int

4

5 uchar flag = 0;

6 uchar a = 0; //定義兩個變量

7

8 void main()

9 {

10

11 TMOD=0x20;//設置定時器1為工作方式2

12 TH1=0xfd; //設置波特率為9600

13 TL1=0xfd; //設置波特率為9600

14 TR1=1; //定時器T1運行控制位,當GATE為0而TR1為1時,允許T1計數(shù)

15 REN=1;

16

17 SM0=0; //方式1,是十位異步收發(fā)器(8位數(shù)據(jù))

18 SM1=1; // 波特率可變

19

20 EA=1; //開總中斷

21 ES=1; //串行中斷允許標志位,ES=1,允許串行中斷

22 while(1)

23 {

24

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據(jù)LED驅動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉