音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

又鉆牛角尖了!高手請進(jìn)!

作者:tc9148 欄目:單片機(jī)
又鉆牛角尖了!高手請進(jìn)!

查了很多書,都沒有找到51的定時器0/1與uart部分的硬件連接的詳細(xì)原理圖,都是用幾句話簡單介紹。


高手貼個圖!謝謝!



2樓: >>參與討論
tc9148
自己頂一下!^-^!
就是定時器和串口的連接的原理結(jié)構(gòu)圖!雖然程序我明白!

但是我不明白定時器的中斷信號如何控制串口,書上好像沒有找到?

3樓: >>參與討論
martial
定時器是為通訊產(chǎn)生波特率用的,不是硬件連接的
 
4樓: >>參與討論
tc9148
能否詳細(xì)說說。!
 
5樓: >>參與討論
martial
串口通訊最簡單的是3線制
就是接收rxd,發(fā)送端txd,公共地GND三線從單片機(jī)上連出來與外部電平轉(zhuǎn)換芯片或其它單片機(jī)相連。定時器是在單片機(jī)內(nèi)部的,直接用就是了。查查單片機(jī)方面的書,基本上都有呀

6樓: >>參與討論
MEIBOY
的確再鉆!不過有個性。
定時器為串口產(chǎn)生波特率的,51中是用的t1。也就是說如果用了t1做波特率發(fā)生器,同時就不能做t1定時器了。你仔細(xì)看看波特率計算公式中的16,這個16時候含義的,意思是16個t1脈沖為uart一個位長。硬件的連接一般的書上沒有,你可以仔細(xì)看datasheet,或者找51的公開core看看,不過那就費勁了!

7樓: >>參與討論
tc9148
to:樓上的
謝謝你了。

還是你理解我的意思了!datasheet我看了,但是沒有,我才在這里想搞明白的。

我看了作為波特率發(fā)生器時t1的初始化程序,但是與一般的定時作用的初始化不同,少了setb ea和setb et1。


是不是可以這樣理解:關(guān)閉ea和et1,只開et1,單片機(jī)就自動認(rèn)為是作為波特率發(fā)生器呢?還有這個中間的t1中斷是如何影響串口的呢!溢出標(biāo)志TF1不會沒有用吧(我見過的串口通信程序里沒有判斷語句)!不可能定時器t1一直在工作,串口一直在發(fā)送數(shù)據(jù),這之間總的有個類似的握手時序圖吧!


程序我也編過不少,但是覺得不高明白這個問題,心里不舒服呀。






8樓: >>參與討論
stoneymumu
t1作為串口移位時鐘用
t1定時后出的波形,通過分頻,作為串口的數(shù)據(jù)移位時鐘。
以前做過串口通信的,挺早,記不大清了。
好像 給t1寄存器服值后,開啟t1,再寫串口控制字,使t1作為移位時鐘用,這樣t1就不會產(chǎn)生中斷了,只作為時鐘存在。
這是tf1就沒用了,具體的串口通信中,mcu內(nèi)部已經(jīng)有一點協(xié)議了,就是怎么移出數(shù)、接受數(shù)、判斷發(fā)送或接收完,你可以通過控制字改變這些。

實際應(yīng)用中,自己得寫點協(xié)議,弄個楨、包頭什么的,安全點

9樓: >>參與討論
foxqiu
內(nèi)部應(yīng)該有握手的。
 
10樓: >>參與討論
tc9148
to:stoneymumu
難道是因為遇到了 mov a, sbuf這個語句,他就轉(zhuǎn)到為串口服務(wù)了?


我想弄明白的是:到底t1是見到那個語句或者標(biāo)志,就為串口服務(wù)了呢?


好想許多程序都沒有用到定時器的工作方式3呀!。。。
t0據(jù)說也可以的!


不好意思!鉆的很厲害^-^!
睡覺都失眠了。。。!



11樓: >>參與討論
computer00
這個由硬件控制很容易的,建議好好學(xué)學(xué)數(shù)字電路^_^
 
12樓: >>參與討論
tc9148
to:computer00
不要灌水!


13樓: >>參與討論
computer00
我沒灌水啊,
T1一直都在為串口服務(wù)啊,它的溢出負(fù)責(zé)采樣串口的接收;如果有數(shù)據(jù)發(fā)送時,負(fù)責(zé)將數(shù)據(jù)按設(shè)定的時間間隔發(fā)出去。就這么回事。

14樓: >>參與討論
maychang
Re 樓主
T1作波特率發(fā)生器時,仍可以作定時器用,仍可以產(chǎn)生定時中斷,這些與波特率發(fā)生器功能無關(guān)。當(dāng)然,波特率已確定,定時中斷產(chǎn)生的時間間隔也就完全確定了,而且很快(間隔時間很短)用起來非常不方便,只能設(shè)置一個軟計數(shù)器,每次定時中斷發(fā)生時這個軟計數(shù)器加一,根據(jù)軟計數(shù)器計數(shù)值確定時間,這樣來使用。
T1作波特率發(fā)生器時,實際上每次溢出都檢查一次RXD電平。這也與定時和中斷無關(guān)。
硬件聯(lián)接圖記得在datasheet中有,我找找看。


15樓: >>參與討論
tc9148
to:maychang
我在ATMEL公司的網(wǎng)站上也下載了很多資料,不過沒有找到~~~~



16樓: >>參與討論
maychang
沒找到也別失眠
ATMEL公司生產(chǎn)單片機(jī)是后來的事,最早生產(chǎn)51單片機(jī)的是INTEL。
我恍惚記得是INTEL公司的datasheet。


17樓: >>參與討論
maychang
上面說的T1作波特率發(fā)生器同時產(chǎn)生中斷
我用過一次,不過也就是一次。


18樓: >>參與討論
李冬發(fā)
八幾年的書,這些都很清楚,找找看
 
19樓: >>參與討論
tc9148
to:maychang
INTEL的網(wǎng)站上逛了逛

找到了~~~~

里面提到了,
1.t1(只能是t1)要工作必須要關(guān)閉中斷使能。--這說明不能在用來定時了~,只能安安心心的給串口服務(wù)了。哈哈!
2.16分頻接發(fā)送時鐘端。


謝謝maychang

還是你“高”。!

^-^!



20樓: >>參與討論
maychang
何必如此?
人非圣賢,孰能無過?
要是我說錯了,改正就是。

何況我并沒有說錯?

下面是段小程序,使用T1作波特率發(fā)生器,同時使用定時中斷。匯編一下,寫到片子里,立見分曉。這里用的是89C2051,當(dāng)然51或52也可以運行。

;**************************************************************
;    TESTCOMM        測試串口及定時中斷
;    Dec. 22 2005 開始    使用89C2051,時鐘11.0592MHZ
;    版本號    1.0        波特率1200
;測試
;**************************************************************
;        系統(tǒng)要求
;檢查定時器1在作為波特率發(fā)生器時,能否產(chǎn)生中斷
;**************************************************************
;**************************************************************
;通訊格式:
;上位機(jī)發(fā)    02H    33H    03H
;本機(jī)接收到03H后,發(fā)送1個字符"U"
;**************************************************************
;**************************************************************
;波特率1200,8位重裝模式,TH1初值E8H,故26.041666us發(fā)生一次中斷,
;38400次為1秒,65536次為1.70666秒.
;本機(jī)在一條口線上接一個發(fā)光管,利用此發(fā)光管指示1秒定時
;使用DPTR作為二字節(jié)定時中斷次數(shù)軟計數(shù)器
;**************************************************************
;**************************************************************
;    資源分配
;外中斷0    
;外中斷1    
;定時/計數(shù)器0    
;定時/計數(shù)器1    
;串口        
;P1口        
;P3口        
;*******片內(nèi)RAM地址分配****************************************
;    Address Attribute Table
STACK    EQU    68H    ;68-7FH為堆棧區(qū)(24字節(jié)),SP初始化為67H

LED    BIT    P1.0    ;發(fā)光管
FD    BIT    P3.2    ;喂狗

;******外設(shè)地址分配********************************************
;**************************************************************
;******* 中斷程序表 *******************************************
;INTR0        外部0中斷,本機(jī)未用
;TMR0        定時器0中斷,本機(jī)未用
;INTR1        外部1中斷,本機(jī)未用
;TMR1        定時器1用于串口波特率
;SERL        串行口中斷,用于通訊
;******* 子程序表 *********************************************
;**************************************************************
;**************************************************************
ORG    0000H            ;Entrance of initial 初始化入口
    AJMP    START

ORG    0003H            ;Entrance of INT0 外中斷0入口
    AJMP    INTR0

ORG    000BH            ;Entrance of TMR0 定時器0中斷入口
    AJMP    TMR0

ORG    0013H            ;Entrance of INT1 外中斷1入口
    AJMP    INTR1

ORG    001BH            ;Entrance of TMR1 定時器1中斷入口
    AJMP    TMR1

ORG    0023H            ;Entrance of SERL PORT 串行中斷入口
    AJMP    SERL

;**************************************************************
;**************************************************************
;版本標(biāo)志
ORG    0060H
DB    'TESTCOMM V1.0'
ORG    0070H
DB    'Dec. 22 2005'
;******* 初始化 ***********************************************
ORG    0080H            ;Main programme 主程序
START:    MOV    SP,#STACK-1    ;Initial SP 初始化棧針

    MOV    TH1,#0E8H    ;定時器1賦初值(11.0592MHZ,波特率1200)
    MOV    TL1,#0E8H

    CLR    A
    MOV    DPL,A
    MOV    DPH,A
    MOV    SCON,#01110000B    ;設(shè)置串口工作方式,8位UART,允許接收
    MOV    TMOD,#00100001B    ;定時器0為16位,計數(shù)機(jī)器周期,無門控.
                ;定時器1自動重裝,計數(shù)機(jī)器周期,波特率發(fā)生器.
    MOV    TCON,#01010101B    ;開定時器0和1,外中斷為沿觸發(fā).
    MOV    IP,  #00001000B    ;定時器1中斷高優(yōu)先級.
    MOV    IE,  #10011000B    ;允許串口中斷和定時器1中斷.開總中斷

;***********************************************
IDLE:    SETB    FD        ;喂狗
    MOV    TMOD,#00100001B    ;重復(fù)設(shè)置
    MOV    IP,  #00001000B
    MOV    IE,  #10011000B
    MOV    TH1, #0E8H    ;11.0592MHZ,波特率1200
    ORL    TCON,#01010101B    ;TCON不得簡單重寫入!!!!
    ORL    SCON,#01110000B    ;重設(shè)置串口,8位UART,允許接收
    ANL    SCON,#01110011B    ;SCON不得簡單重寫入!!!!
    CLR    FD
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    AJMP    IDLE
;**************************************************************
;**************************************************************
;中斷例程
;**************************************************************
;**************************************************************
;外部0中斷,本機(jī)未用
INTR0:    
    RETI
;**************************************************************
;定時器0中斷,本機(jī)未用
TMR0:    
    RETI
;**************************************************************
;外部1中斷,本機(jī)未用
INTR1:   &nb
21樓: >>參與討論
kyflash
AVR的串口就不占用定時器,呵呵
 
22樓: >>參與討論
dodome521
PIC的也不占用呢,現(xiàn)在好多片子都有獨立的波特率
發(fā)生器

23樓: >>參與討論
tc9148
to:maychang
看了你寫的程序,


我知道我的差距有多大了~~


再次感謝~~

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
跪求電平轉(zhuǎn)換DC
高齊的PIC ICD2仿真器實在太臭!!!哪家的好?
求助!ATMETL2051受日光燈閃爍干擾嚴(yán)重
請教程序存儲器擴(kuò)展的問題
請問各位高手AT89C51IC 24JC 0302給代表什么
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號