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

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

QQ登錄

只需一步,快速開始

搜索
查看: 6199|回復(fù): 4
收起左側(cè)

C#上位機(jī)串口控制單片機(jī)12864顯示漢字與波形

[復(fù)制鏈接]
ID:226961 發(fā)表于 2017-8-11 22:40 | 顯示全部樓層 |閱讀模式
實(shí)現(xiàn)的效果
0.png
0.png 0.png 0.png 0.png
0.png
0.png

上面是用Proteus仿真的,,對(duì)了如果自己想用proteus仿真需要安裝下面這個(gè)軟件
再看一下實(shí)物顯示效果

先做上位機(jī)部分...........

為了程序一啟動(dòng)就把電腦上能用的串口號(hào)顯示在下拉框中

還有就是串口呢可能會(huì)隨時(shí)改變,所以在用戶點(diǎn)擊下拉框的時(shí)候重新更新一下下拉框中的內(nèi)容

虛擬串口軟件下載:http://m.zg4o1577.cn/bbs/dpj-89983-1.html


現(xiàn)在在波特率框中添加常用的波特率
現(xiàn)在的效果
然后放一個(gè)按鈕用來打開和關(guān)閉串口
現(xiàn)在就做打開和關(guān)閉串口部分,,,

對(duì)了按鈕點(diǎn)擊了打開串口,讓它顯示"關(guān)閉串口"
就用回調(diào)來顯示
現(xiàn)在按鈕事件就這樣了
現(xiàn)在在多優(yōu)化一下,我們?cè)诖蜷_了串口的時(shí)候,我接著用去選擇別的串口了,那么為了不去重復(fù)重新打開的按鈕動(dòng)作,我們就多加一點(diǎn)程序,,,,這個(gè)一會(huì)再說吧!現(xiàn)在看不出效果現(xiàn)在寫接收程序部分
放一個(gè)textbox

接收的文本框設(shè)置只讀
接收的數(shù)據(jù)肯定會(huì)很多,,所以讓他有上下的滾動(dòng)條
然后界面又加了幾個(gè)按鈕和選擇
現(xiàn)在接收數(shù)據(jù)

為了接收到一條完整的數(shù)據(jù)之后再去做處理,我就用個(gè)定時(shí)器用于檢測(cè)接收是否空閑了一段時(shí)間,只要出現(xiàn)空閑說明接收到了一條完整的數(shù)據(jù)
設(shè)置的是10ms檢測(cè)一次
看程序里面怎么做,,,其實(shí)和我的單片機(jī)檢測(cè)空閑是一樣的道理
定義一個(gè)鏈表用于存儲(chǔ)數(shù)據(jù),還有兩個(gè)計(jì)數(shù)變量
我電腦上安裝了虛擬串口軟件,方便調(diào)試
還有就是
當(dāng)我們選擇這個(gè)的時(shí)候希望接收框里面的內(nèi)容也跟著改變
就像是這樣


選擇上
然后再取消選擇
這樣感覺更好一些
寫上以下代碼
加一個(gè)功能,,,我已經(jīng)電機(jī)打開一個(gè)串口了,然后呢想換一個(gè)
然而如果和第一次選擇的一樣就不切換了

這段代碼放在了定時(shí)器2里面,,,我這樣做的,只要拖動(dòng)滑塊后500Ms沒在改變滑塊的值,那么就把當(dāng)前滑塊的值發(fā)給單片機(jī),讓單片機(jī)顯示出來
我沒有做成一直發(fā)給單片機(jī)的,,因?yàn)?2864本身刷新整個(gè)界面就慢,,一直發(fā)也沒什么用.............
其余的親們看源碼吧!

現(xiàn)在做做下位機(jī)--單片機(jī)程序
由于單片機(jī)程序太多了,所以就事先做好了底層的了,,,就先看一看
直接貼上來把
單片機(jī)源程序如下:
  1. #define _MAIN_C_
  2. #include "include.h"
  3. #include "main.h"

  4. void main()
  5. {
  6.         unsigned int CRC=0;
  7.         InitTimer0();//初始化定時(shí)器
  8.         InitUART(9600);//初始化串口
  9.         Init12864();//初始化12864
  10.         ClearGDRAM();//清除界面
  11.         CRAM_OFF();//關(guān)閉顯示
  12.         DisplayImage(Image);//顯示圖片
  13.         CRAM_ON();//打開顯示        
  14.         DelayS(1);
  15.         ClearGDRAM();//清除界面
  16.         
  17.         Init12864();//初始化12864
  18.         
  19.         for(CRC = 17;CRC<127;CRC+=23)
  20.         {
  21.                 DrawCircle(32,CRC, 16);
  22.   }
  23.         while(1)
  24.         {
  25.                 if(UsartFlage == 1)
  26.                 {
  27.                         UsartFlage = 0;
  28.                         
  29.                         if(crc16_flage(UsartReceive,UsartReadCntCopy-2))
  30.                         {
  31.                                 ClearGDRAM();//清除界面
  32.               Init12864();//初始化12864
  33.                                 switch(UsartReceive[0])
  34.                                 {
  35.           case 1 : Chinese(1,1,(UsartReadCntCopy-3)/2,&UsartReceive[1]); break;//顯示漢字
  36.                                         case 2 : fsin(UsartReceive[1],UsartReceive[2]); break;//顯示正弦波
  37.                                         case 3 : RecWave(UsartReceive[1],UsartReceive[2]); break;//顯示鋸齒波
  38.                                         case 4 : TriWave(UsartReceive[1],UsartReceive[2]); break;//顯示三角波
  39. ……………………

  40. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
算了剩下的不貼了,反正后面有源碼.......
說幾個(gè)地方吧
程序風(fēng)格呢,還是自己習(xí)慣的風(fēng)格.....
串口接收和上位機(jī)一樣的道理
在定時(shí)器里面做的判斷是否接收到一個(gè)完整的數(shù)據(jù)

串口的配置呢加入了115200的,因?yàn)橛∠笊羁?.....
這個(gè)控制顯示正弦波的函數(shù) h呢很容易看出來是控制這個(gè)波形的高度,,,,,那個(gè)3.14和f共同決定了周期(其實(shí)就是點(diǎn)數(shù)),,f越大這個(gè)函數(shù)的圖像越拉伸,,,,,
這個(gè)三角波函數(shù)是當(dāng)初自己造的......其實(shí)就是畫線.....
上面的 f 很容易看出來就是控制拐點(diǎn)的,,每隔 f 個(gè)點(diǎn)拐一下,
x1 和 x2是記錄當(dāng)前的 i  的值,關(guān)于那個(gè) j 是由于 i 是從 0 開始的 如果不限制一下,那么第一根先就會(huì)是這樣
最后看一下主函數(shù)
主函數(shù)呢,沒什么說的....源碼地址


關(guān)于為什么要有實(shí)物了,,因?yàn)榇_實(shí)有人用到實(shí)物,,,,能滿足的就一定要滿足,而且好多元器件放著就浪費(fèi)了.....
記得當(dāng)初一個(gè)朋友學(xué)8266,竟然用了1個(gè)多月才能正常通信,,,那時(shí)候其實(shí)就想著應(yīng)該做一個(gè)實(shí)物供朋友使用,這樣的話就不能耽擱這么長(zhǎng)時(shí)間了...
想想這都過去5個(gè)多月了,,我還沒有去做8266的實(shí)驗(yàn)板......哎,,,,,,,感覺太懶了

0.png
所有資料51hei提供下載:
上位機(jī)控制12864顯示.rar (3.31 MB, 下載次數(shù): 113)



回復(fù)

使用道具 舉報(bào)

ID:82765 發(fā)表于 2017-8-12 12:41 | 顯示全部樓層
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
回復(fù)

使用道具 舉報(bào)

ID:169645 發(fā)表于 2018-1-13 12:24 | 顯示全部樓層
正在學(xué)習(xí)串口編程,謝謝樓主的分享!
回復(fù)

使用道具 舉報(bào)

ID:275712 發(fā)表于 2018-1-13 23:32 | 顯示全部樓層
STC芯片怎么下載程序
回復(fù)

使用道具 舉報(bào)

ID:275712 發(fā)表于 2018-1-13 23:33 | 顯示全部樓層
STC怎么燒寫程序?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: a视频在线 | 久久日本 | 国产三级在线 | 国产一区二区在线观看视频 | 欧美成人猛片aaaaaaa | 精品网站999www | 国产免费高清 | www.久| 国产蜜臀av | 欧美在线 | 欧美伊人久久 | 婷婷久久五月 | 国产一区精品在线观看 | 他揉捏她两乳不停呻吟动态图 | 在线精品一区 | 成人在线视频免费观看 | 一区二区视频网站 | 日本免费在线观看视频 | 中文字幕在线免费播放 | 一区二区三区网站 | 青娱乐福利视频 | 久草成人 | av大全在线观看 | 激情av网 | 国产精品久久久久久中文字 | 日本天天操| 狠狠干免费视频 | 天天操操操操 | 国产黄色免费视频 | 日韩不卡免费视频 | 亚洲精品免费在线观看 | 91免费国产| 天堂中文在线视频 | 久久精品欧美一区二区三区不卡 | 亚洲五月婷婷 | 岛国在线视频 | 亚洲伦理在线观看 | 亚洲欧美视频一区 | 一本到av | a毛片在线观看 | 亚洲国产精品av |