|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
一段小程序的問(wèn)題 |
| 作者:wangcunboy 欄目:單片機(jī) |
ORG 0000H LJMP MAIN org 0050h MAIN: mov SCON,0X50; //串口方式1,允許接收mov TMOD,0x20; //定時(shí)器1 定時(shí)方式2mov TH1,0x0fd ; //11.0592MHZ 1200 波特率mov TL1,0x0fdsetb TIsetb TR0bb:mov sbuf,#'a'jnb ti,$clr tijmp bbend 這是個(gè)直接在KEIL中寫(xiě)的匯編程序.1.用KEIL自帶的軟件模擬正常,但我把其中的MOV SCON,0X50該為MOV SCON,#50H,再用軟件模擬,串口無(wú)輸出,請(qǐng)問(wèn)是為什么?2.用KEIL自帶的軟件模擬正常,但是下載到單片機(jī)后,串口無(wú)輸出,單片機(jī)是STC的,請(qǐng)問(wèn)是什么原因?謝謝! |
| 2樓: | >>參與討論 |
| 作者: wenxuan204 于 2005/12/24 17:54:00 發(fā)布:
setb ti setb tr0?? setb ti setb tr0 這兩句很怪啊?你把TI置1干什么用??是用定時(shí)器1產(chǎn)生波特率,你把定時(shí)器0開(kāi)了干什么用 |
|
| 3樓: | >>參與討論 |
| 作者: GDF_21TH 于 2005/12/24 20:45:00 發(fā)布:
123 |
|
| 4樓: | >>參與討論 |
| 作者: GDF_21TH 于 2005/12/24 20:58:00 發(fā)布:
回復(fù)主題:一段小程序的問(wèn)題 MOV SCON,0X50是將單片機(jī)RAM中50H的內(nèi)容給SCON,MOV SCON,#50H是將50H這個(gè)立即數(shù)給SCON 用KEIL自帶的軟件模擬正常,但是下載到單片機(jī)后,串口無(wú)輸出,這個(gè)問(wèn)題我也碰到過(guò),單片機(jī)RAM在上電時(shí)其內(nèi)容是隨機(jī)的,并不是像KEIL中仿真RAM區(qū)是空的,所以要在串口初始化前加上一段把RAM清零的初始化程序段,試試看 |
|
| 5樓: | >>參與討論 |
| 作者: Bingoes 于 2005/12/25 12:11:00 發(fā)布:
看來(lái)樓主是平時(shí)是用慣C語(yǔ)言的說(shuō) MOV TH1,0xfd 應(yīng)該改為MOV TH1,#0fdh MOV TL1,0xfd 應(yīng)該改為MOV TL1,#0fdh |
|
| 6樓: | >>參與討論 |
| 作者: 啊哈 于 2005/12/25 19:18:00 發(fā)布:
haha |
|
| 7樓: | >>參與討論 |
| 作者: WANGCUNBOY 于 2005/12/26 18:51:00 發(fā)布:
所言極是 是樓上各位所說(shuō)的問(wèn)題,謝謝!我再把錯(cuò)誤的程序重貼一片 ORG 0000H LJMP MAIN org 0050h MAIN: mov SCON,0X50; //串口方式1,允許接收 mov TMOD,0x20; //定時(shí)器1 定時(shí)方式2 mov TH1,0x0fd ; //11.0592MHZ 1200 波特率 mov TL1,0x0fd setb TI setb TR0 bb: mov sbuf,#'a' jnb ti,$ clr ti jmp bb end |
|
| 8樓: | >>參與討論 |
| 作者: jiao_yx 于 2005/12/27 9:36:00 發(fā)布:
TLC1543 |
|
| 9樓: | >>參與討論 |
| 作者: tanganyong 于 2005/12/29 19:40:00 發(fā)布:
回復(fù) 你把 mov scon 0x50改為mov scon #0x50是不行的,因?yàn)閟con是一個(gè)8位串口控制寄存器,其每位作用如下: 串行控制寄存器SCON -可位尋址 SM0 SM1 SM2 REN TB8 RB8 TI RI SM0 串行模式選擇 SM1 串行模式選擇 SM2 多機(jī)通訊允許位當(dāng)模式0 時(shí)此位應(yīng)該為0 模式1 時(shí)當(dāng)接收到停止位時(shí) 該位將置位模式2 或模式3 時(shí)當(dāng)接收的第9 位數(shù)據(jù)為1 時(shí)將置位 REN 串行接收允許位 TB8 在模式2 和模式3 中將被發(fā)送數(shù)據(jù)的第9 位 RB8 在模式0 中該位不起作用在模式1 中該位為接收數(shù)據(jù)的停止位在模 式2 和模式3 中為接收數(shù)據(jù)的第9 位 TI 串行中斷標(biāo)志位由軟件清零 RI 接收中斷標(biāo)志位有軟件清零 mov scon 0x50等于把一個(gè)二進(jìn)制數(shù)0101000放入scon寄存器,其對(duì)應(yīng)的sm1和ren置1,那就是說(shuō)選擇了串口1和串行接收允許,而#0x50是一個(gè)立即數(shù)。 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |