[討論] 用keilC-89S51-rs232顯示出matlab的結果?

看板C_and_CPP (C/C++)作者 (milano)時間12年前 (2013/11/22 17:54), 編輯推噓2(208)
留言10則, 2人參與, 最新討論串1/1
我的硬體連接是PC to rs232 to max232 to 89S51, 8951軟體是用keil C, 目前主要是想說收到資料就把P0的LED顯示為11110000, 最終目的是要用LCD顯示matlab的結果,但LED都寫不出來了怎麼寫LCD. clear all clc x = [3] %x2 = num2str(x) a = dec2hex(x) s = serial('COM1','BaudRate',2400); fopen(s); fprintf(s,a); %data = fscanf (s) fclose (s) delete (s) clear s 以上Matlab程式.我自傳自讀是沒問題.. 但送資料給8951後就沒反應= =" 發生了甚麼問題? 是不是matlab傳給8951的數值型態的問題? 但我把x轉字串跟hex也是都沒反應= = 還是甚麼其他問題啊? 我的硬體連接是PC to rs232 to max232 to 89S51, 8951軟體是用keil C, 目前主要是想說收到資料就把P0的LED顯示為11110000, 最終目的是要用LCD顯示matlab的結果,但LED都寫不出來了怎麼寫LCD. #include <stdio.h> main() { TMOD=0x20; TH1=0xf3; TR1=1; SCON=0x50; while(1) { RI=0; while(RI==0); { P0=0xf0; } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.126.8.123

11/22 18:23, , 1F
riㄧ直被設定為0,怎麼會有動作
11/22 18:23, 1F

11/22 18:25, , 2F
0 等 1 觸 處 0......
11/22 18:25, 2F

11/22 18:27, , 3F
而你的是 0 觸 0...... ,系統來不及變更狀態又被設為0
11/22 18:27, 3F

11/22 18:32, , 4F
===========上述有問題,漏看分號,有被{}誤導,所以當
11/22 18:32, 4F

11/22 18:32, , 5F
作沒看到
11/22 18:32, 5F

11/22 18:34, , 6F
scon應該在tmod之前被設定,你是看看
11/22 18:34, 6F

11/26 15:57, , 7F
沒有用一樣沒辦法顯示..
11/26 15:57, 7F

11/26 16:00, , 8F
我覺得應該是MAX232的問題,MAX232怎麼測試?
11/26 16:00, 8F

11/26 16:05, , 9F
把rs232的2接MAX-7腳,3接MAX-8腳轉換後9和10腳在短路
11/26 16:05, 9F

11/26 16:07, , 10F
然後用matlab自讀自傳這樣測試MAX232行得通嗎?
11/26 16:07, 10F
文章代碼(AID): #1IZodVEy (C_and_CPP)
文章代碼(AID): #1IZodVEy (C_and_CPP)