日韩在线不卡免费视频一区,日韩欧美精品一区二区三区经典,日产精品码2码三码四码区,人妻无码一区二区三区免费,日本feerbbwdh少妇丰满

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

我今年52歲學(xué)了十天單片機(jī),有個問題請各位老師指教謝了.

各位老師好:硬件學(xué)完了,問題不大.軟件也學(xué)完了(好幾個通宵呢)遇到麻凡了.各個部分學(xué)完了(主程序.子程序.寄存器定意.I/O口設(shè)值.AD設(shè)值.時(shí)鐘設(shè)值.)我要想編個程序試試了,可腦子亂了這么多程序部分哪個在前哪個在后分不清了.是主程序在前還是各種定意在前應(yīng)該是先運(yùn)行主程序,我又覺著不對不定意主程序砸運(yùn)行一頭霧水,請指教謝了.
全部回復(fù)(103)
正序查看
倒序查看
zbdxdxkj
LV.4
2
2007-01-20 20:29
比如說程序編好了,單片機(jī)上電運(yùn)行.在主程序不運(yùn)行能定意I/O口和其他的狀態(tài)嗎?搞不懂.
0
回復(fù)
2007-01-20 21:36
@zbdxdxkj
比如說程序編好了,單片機(jī)上電運(yùn)行.在主程序不運(yùn)行能定意I/O口和其他的狀態(tài)嗎?搞不懂.
定義I/O就是在主程序的開頭,一些特殊功能寄存器也在開頭定義,接下來走主程序的其它東西,
0
回復(fù)
zbdxdxkj
LV.4
4
2007-01-20 22:20
@shenyf1979
定義I/O就是在主程序的開頭,一些特殊功能寄存器也在開頭定義,接下來走主程序的其它東西,
您好:謝謝.再請教個問題.在AD轉(zhuǎn)換模試下,要同時(shí)設(shè)兩個輸入端(兩個引腳)是不是相當(dāng)于運(yùn)算放大器的一正一負(fù)兩個輸入端.
0
回復(fù)
sdjufeng
LV.6
5
2007-01-21 10:24
@zbdxdxkj
您好:謝謝.再請教個問題.在AD轉(zhuǎn)換模試下,要同時(shí)設(shè)兩個輸入端(兩個引腳)是不是相當(dāng)于運(yùn)算放大器的一正一負(fù)兩個輸入端.
這要看你用的單片機(jī)了,有的單片機(jī)輸入是單端的,有的是既可以單端也可以雙端,由sfr的設(shè)置來決定.
另外,不知道你編程序用的是匯編還是C.
0
回復(fù)
zbdxdxkj
LV.4
6
2007-01-21 19:13
@sdjufeng
這要看你用的單片機(jī)了,有的單片機(jī)輸入是單端的,有的是既可以單端也可以雙端,由sfr的設(shè)置來決定.另外,不知道你編程序用的是匯編還是C.
您好:我才學(xué)幾天沒學(xué)過C語言用的是匯編語言,芯片用的是中穎的69p42(我有仿真器)
0
回復(fù)
zbdxdxkj
LV.4
7
2007-01-21 19:31
@shenyf1979
定義I/O就是在主程序的開頭,一些特殊功能寄存器也在開頭定義,接下來走主程序的其它東西,
我還是不太懂,能把這幾部分(系統(tǒng)寄存器定義.用戶寄存器定義.I/O口定義.模數(shù)轉(zhuǎn)換定義.中斷程序.主程序.子程序.上電程序)排一下次序嗎?謝了.上電PC從地址0000開始有4個中斷這里不能寫主程序是嗎?
0
回復(fù)
2007-01-21 20:22
@zbdxdxkj
我還是不太懂,能把這幾部分(系統(tǒng)寄存器定義.用戶寄存器定義.I/O口定義.模數(shù)轉(zhuǎn)換定義.中斷程序.主程序.子程序.上電程序)排一下次序嗎?謝了.上電PC從地址0000開始有4個中斷這里不能寫主程序是嗎?
你到網(wǎng)上找個例程看看,其實(shí)不用想那么多,先做個簡單的程序走走看,以后再把其它功能一個一個加上去
0
回復(fù)
zbdxdxkj
LV.4
9
2007-01-21 21:15
@shenyf1979
你到網(wǎng)上找個例程看看,其實(shí)不用想那么多,先做個簡單的程序走走看,以后再把其它功能一個一個加上去
有好多東西看是明白了,真做起來就不知從哪下手,有些細(xì)節(jié).邏緝又似懂非懂.命令具體還得現(xiàn)查沒記住.看來我是急了點(diǎn)謝謝指教了.要是和你在一個城市就好了,可以登門拜訪并請你喝酒.
0
回復(fù)
zbdxdxkj
LV.4
10
2007-01-21 21:22
@shenyf1979
你到網(wǎng)上找個例程看看,其實(shí)不用想那么多,先做個簡單的程序走走看,以后再把其它功能一個一個加上去
能交個朋友嗎,留個信箱就可.我的信箱是:zbdxdxkj@126.com
0
回復(fù)
wangzai_he
LV.3
11
2007-01-22 09:14
@zbdxdxkj
能交個朋友嗎,留個信箱就可.我的信箱是:zbdxdxkj@126.com
剛寫程序是會有一點(diǎn)亂,但寫好一個非常簡單的程序了就會懂了,我的郵箱是wangzai_he@126.com
0
回復(fù)
zbdxdxkj
LV.4
12
2007-01-22 21:39
@wangzai_he
剛寫程序是會有一點(diǎn)亂,但寫好一個非常簡單的程序了就會懂了,我的郵箱是wangzai_he@126.com
我老是把rom和ram地址給鬧昏了,真頭疼.越學(xué)越麻繁糊獨(dú).
0
回復(fù)
shenyf1979
LV.5
13
2007-01-22 21:41
@zbdxdxkj
能交個朋友嗎,留個信箱就可.我的信箱是:zbdxdxkj@126.com
我?guī)筒簧咸蟮拿?我匯編學(xué)的PIC,51系列的我都用C寫的.
0
回復(fù)
2007-01-23 08:52
@zbdxdxkj
我老是把rom和ram地址給鬧昏了,真頭疼.越學(xué)越麻繁糊獨(dú).
真實(shí)年齡52歲嗎?
0
回復(fù)
zbdxdxkj
LV.4
15
2007-01-23 20:57
@我愛電源網(wǎng)
真實(shí)年齡52歲嗎?
1954年屬馬的自己算吧.
0
回復(fù)
zbdxdxkj
LV.4
16
2007-01-23 20:59
@shenyf1979
我?guī)筒簧咸蟮拿?我匯編學(xué)的PIC,51系列的我都用C寫的.
已經(jīng)幫了不少了,非常感謝.
0
回復(fù)
njyd
LV.8
17
2007-01-23 21:01
@zbdxdxkj
我還是不太懂,能把這幾部分(系統(tǒng)寄存器定義.用戶寄存器定義.I/O口定義.模數(shù)轉(zhuǎn)換定義.中斷程序.主程序.子程序.上電程序)排一下次序嗎?謝了.上電PC從地址0000開始有4個中斷這里不能寫主程序是嗎?
  地址0000應(yīng)該是個轉(zhuǎn)移指令,目的就是跳開后面的中斷入口.如果不使用中斷也可以不用轉(zhuǎn)移直接占用中斷入口地址.
  同樣中斷入口地址也是轉(zhuǎn)移指令.中斷入口地址的轉(zhuǎn)移指令需要用偽指令“ORG”來指定寫在ROM中的確實(shí)地址.
0
回復(fù)
zbdxdxkj
LV.4
18
2007-01-23 21:08
@njyd
  地址0000應(yīng)該是個轉(zhuǎn)移指令,目的就是跳開后面的中斷入口.如果不使用中斷也可以不用轉(zhuǎn)移直接占用中斷入口地址.  同樣中斷入口地址也是轉(zhuǎn)移指令.中斷入口地址的轉(zhuǎn)移指令需要用偽指令“ORG”來指定寫在ROM中的確實(shí)地址.
您好;寄存器.I/O口.模數(shù)轉(zhuǎn)換設(shè)制是在ORG之前還是之后.
0
回復(fù)
zbdxdxkj
LV.4
19
2007-01-23 21:58
各位老師好:我想了好久終于知到這個問題怎樣問了,
   寄存器定意.I/O口.模數(shù)轉(zhuǎn)換命令是不是應(yīng)該寫在ROM中是在ORG(主程序之前嗎?請指教謝了.
0
回復(fù)
sdjufeng
LV.6
20
2007-01-24 07:57
@zbdxdxkj
各位老師好:我想了好久終于知到這個問題怎樣問了,  寄存器定意.I/O口.模數(shù)轉(zhuǎn)換命令是不是應(yīng)該寫在ROM中是在ORG(主程序之前嗎?請指教謝了.
是的,另外,已經(jīng)預(yù)定義過的就不必再次定義.
比如:
$mod51     ;或者#include 等,以編譯器不同而不同
Counter   data   35H
Flagreg   data   20H
……
MyBit0    bit    00H
MyBit1    bit    Flagreg.1  ;即01H位
……
MyConst   equ    126
……

           org     0H
          jmp     Start
          org     03H
          jmp     IntX0
……
0
回復(fù)
2007-01-24 10:21
@zbdxdxkj
1954年屬馬的自己算吧.
向你學(xué)習(xí)!
0
回復(fù)
zbdxdxkj
LV.4
22
2007-01-24 19:25
@sdjufeng
是的,另外,已經(jīng)預(yù)定義過的就不必再次定義.比如:$mod51    ;或者#include等,以編譯器不同而不同Counter  data  35HFlagreg  data  20H……MyBit0    bit    00HMyBit1    bit    Flagreg.1  ;即01H位……MyConst  equ    126……          org    0H          jmp    Start          org    03H          jmp    IntX0……
您好:ORG之前的各種設(shè)制命令占ROM地址嗎?要是占的話(ORG從0000H開始)ORG之前的命令占哪里?(PC指針不是從零開始嗎)那些設(shè)制怎會操做.我糊涂請指教.學(xué)了十幾天了想寫程序還不行.
0
回復(fù)
njyd
LV.8
23
2007-01-24 21:55
@zbdxdxkj
各位老師好:我想了好久終于知到這個問題怎樣問了,  寄存器定意.I/O口.模數(shù)轉(zhuǎn)換命令是不是應(yīng)該寫在ROM中是在ORG(主程序之前嗎?請指教謝了.
  ORG是指定編譯出的程序放在ROM什么位置,可以用在任何地方,所以無所謂用在前后.
  程序的第一句如果沒有ORG編譯時(shí)就放在地址0000,所以第一句可以不用“ORG 00”
  定義I/O口、外設(shè)的指令也可以放在任何位置,但一定要在使用這些I/O口、外設(shè)的程序以前.這個以前不是編程序的行數(shù)前,而是程序運(yùn)行先后的前面.但一般放在在主程序一開始,需要的話在程序運(yùn)行中間也可以改變設(shè)置.
  匯編語言分“指令”和“偽指令”,指令在編譯后都產(chǎn)生目標(biāo)程序,這些目標(biāo)程序就被放在ROM中;偽指令不產(chǎn)生目標(biāo)程序,只是告訴編譯程序去怎么運(yùn)作,比如說ORG就是告訴編譯程序下面緊接的程序從ROM什么地址開始,(放在ROM中什么位置).所以目標(biāo)程序反編譯后能看到所有原程序的指令,但原程序中的偽指令反編譯后就看不到.
0
回復(fù)
sdjufeng
LV.6
24
2007-01-24 22:01
@zbdxdxkj
您好:ORG之前的各種設(shè)制命令占ROM地址嗎?要是占的話(ORG從0000H開始)ORG之前的命令占哪里?(PC指針不是從零開始嗎)那些設(shè)制怎會操做.我糊涂請指教.學(xué)了十幾天了想寫程序還不行.
njyd說得很對.
偽指令不產(chǎn)生目標(biāo)代碼,哪怕把它放到程序的中間.
0
回復(fù)
zbdxdxkj
LV.4
25
2007-01-25 06:05
@njyd
  ORG是指定編譯出的程序放在ROM什么位置,可以用在任何地方,所以無所謂用在前后.  程序的第一句如果沒有ORG編譯時(shí)就放在地址0000,所以第一句可以不用“ORG00”  定義I/O口、外設(shè)的指令也可以放在任何位置,但一定要在使用這些I/O口、外設(shè)的程序以前.這個以前不是編程序的行數(shù)前,而是程序運(yùn)行先后的前面.但一般放在在主程序一開始,需要的話在程序運(yùn)行中間也可以改變設(shè)置.  匯編語言分“指令”和“偽指令”,指令在編譯后都產(chǎn)生目標(biāo)程序,這些目標(biāo)程序就被放在ROM中;偽指令不產(chǎn)生目標(biāo)程序,只是告訴編譯程序去怎么運(yùn)作,比如說ORG就是告訴編譯程序下面緊接的程序從ROM什么地址開始,(放在ROM中什么位置).所以目標(biāo)程序反編譯后能看到所有原程序的指令,但原程序中的偽指令反編譯后就看不到.
講的太好了,我明白了很多.謝謝您!我在中斷方面還有點(diǎn)問題.中斷我知道,可單片機(jī)的一個腳我設(shè)成輸入時(shí)(比如說下降沿響應(yīng)中斷)ROM中的程序怎樣響應(yīng)(比如說我想要指定的一輸出腳由1變0)響應(yīng)的是PC指的地址呢還是命令的位呢.我想這方面搞明白了就可是編程了.
0
回復(fù)
zyqag
LV.3
26
2007-01-25 09:53
@zbdxdxkj
講的太好了,我明白了很多.謝謝您!我在中斷方面還有點(diǎn)問題.中斷我知道,可單片機(jī)的一個腳我設(shè)成輸入時(shí)(比如說下降沿響應(yīng)中斷)ROM中的程序怎樣響應(yīng)(比如說我想要指定的一輸出腳由1變0)響應(yīng)的是PC指的地址呢還是命令的位呢.我想這方面搞明白了就可是編程了.
樓主,
  我有個同事,1953年出生的.他是2001年后,才學(xué)單片機(jī).湖北人
近幾年,他已經(jīng)很熟悉,MCU開發(fā),例如電飯煲,倒車?yán)走_(dá),溫度控制板,棉花濕度儀.....
  非常在行,他原來是,技校畢業(yè)
  我本身,也是32歲才,真正編程.許多人說,30歲后,不宜從事軟件編程.
我覺得,不妥.俺,現(xiàn)在連復(fù)雜的,小波變換及其應(yīng)用,DSP常用算法,也得心就手.我已36歲,這幾年,才轉(zhuǎn)行到DSP,MCU 編程.              
  以前,我是畫電路板的,PROTEL99,僅僅是硬件工程師
  不過,現(xiàn)在算是DSP,MCU 行家
  一起努力
0
回復(fù)
2007-01-25 10:31
@zbdxdxkj
講的太好了,我明白了很多.謝謝您!我在中斷方面還有點(diǎn)問題.中斷我知道,可單片機(jī)的一個腳我設(shè)成輸入時(shí)(比如說下降沿響應(yīng)中斷)ROM中的程序怎樣響應(yīng)(比如說我想要指定的一輸出腳由1變0)響應(yīng)的是PC指的地址呢還是命令的位呢.我想這方面搞明白了就可是編程了.
中斷是單片機(jī)在執(zhí)行某個進(jìn)程時(shí),由于內(nèi)、外某個中斷源向單片機(jī)發(fā)出中斷請求信號,要求單片機(jī)中斷當(dāng)前進(jìn)程而轉(zhuǎn)去執(zhí)行相應(yīng)的線程,待處理完畢中斷線程后,再返回繼續(xù)執(zhí)行原來進(jìn)程.
當(dāng)設(shè)置外部中斷的信號來時(shí)(在中斷引腳發(fā)生了下降沿),先由硬件完成中斷標(biāo)志位的變化.在由硬件完成PC指針的入棧,記錄被中斷進(jìn)程的的地址.
在由硬件完成PC指針裝入中斷線程的入口地址.
PC指針裝入中斷線程入口地址后,單片機(jī)開始執(zhí)行中斷線程(指定一個輸出腳由1變0).由于中斷線程中可能用到被中斷進(jìn)程的資源,所以要先保護(hù)原進(jìn)程的資源狀態(tài)如 ACC,PSW 等等,當(dāng)中斷線程執(zhí)行完成后在恢復(fù)原進(jìn)程的資源狀態(tài).我的理解就是這樣的說的不好也別怪我啦!相互學(xué)習(xí)啦!
52歲還在學(xué)習(xí)!這就夠我學(xué)的啦!向你學(xué)習(xí)!
0
回復(fù)
njyd
LV.8
28
2007-01-25 21:14
@我愛電源網(wǎng)
中斷是單片機(jī)在執(zhí)行某個進(jìn)程時(shí),由于內(nèi)、外某個中斷源向單片機(jī)發(fā)出中斷請求信號,要求單片機(jī)中斷當(dāng)前進(jìn)程而轉(zhuǎn)去執(zhí)行相應(yīng)的線程,待處理完畢中斷線程后,再返回繼續(xù)執(zhí)行原來進(jìn)程.當(dāng)設(shè)置外部中斷的信號來時(shí)(在中斷引腳發(fā)生了下降沿),先由硬件完成中斷標(biāo)志位的變化.在由硬件完成PC指針的入棧,記錄被中斷進(jìn)程的的地址.在由硬件完成PC指針裝入中斷線程的入口地址.PC指針裝入中斷線程入口地址后,單片機(jī)開始執(zhí)行中斷線程(指定一個輸出腳由1變0).由于中斷線程中可能用到被中斷進(jìn)程的資源,所以要先保護(hù)原進(jìn)程的資源狀態(tài)如ACC,PSW等等,當(dāng)中斷線程執(zhí)行完成后在恢復(fù)原進(jìn)程的資源狀態(tài).我的理解就是這樣的說的不好也別怪我啦!相互學(xué)習(xí)啦!52歲還在學(xué)習(xí)!這就夠我學(xué)的啦!向你學(xué)習(xí)!
  你說的太復(fù)雜了.簡單點(diǎn)就是:
  中斷響應(yīng)時(shí),程序會自動跳到ROM開頭的幾個中斷地址之一,(具體要看什么中斷,書上能查到),這幾個地址應(yīng)該寫上轉(zhuǎn)移指令(指向你寫的中斷處理程序),程序到這幾運(yùn)行后就會轉(zhuǎn)移到你寫的你寫的中斷處理程序運(yùn)行.
  中斷時(shí)單片機(jī)會自動記下在什么地址響應(yīng)中斷的,中斷處理程序最后一句“RETI”(沒記錯吧?)就是告訴單片機(jī)返回到響應(yīng)中斷時(shí)記下的地方.
  中斷處理程序一般要保護(hù)現(xiàn)場,就是保存下響應(yīng)中斷時(shí)正在使用并且后面還要使用的一些寄存器內(nèi)容,這個問題只要把堆棧搞懂就是小菜一碟.
  試驗(yàn)中斷可以把斷點(diǎn)設(shè)在中斷處理程序內(nèi),運(yùn)行中在此停下就說明發(fā)生了中斷.
  或者在中斷處理程序內(nèi)進(jìn)行寫RAM的操作,運(yùn)行后這個RAM地址被寫入就說明發(fā)生了中斷.
  初學(xué)者對中斷是個難點(diǎn),可以先編些簡單的程序試驗(yàn),只要能產(chǎn)生你需要的中斷后面的就好辦了.
  自學(xué)單片機(jī)關(guān)鍵就在多試,有些不懂的地方編些小程序多試試就能搞通.當(dāng)然試硬件中斷需要有相應(yīng)的硬件,限可以先試定時(shí)器中斷,這用軟件仿真就可以.
0
回復(fù)
zbdxdxkj
LV.4
29
2007-01-25 21:26
@zyqag
樓主,  我有個同事,1953年出生的.他是2001年后,才學(xué)單片機(jī).湖北人近幾年,他已經(jīng)很熟悉,MCU開發(fā),例如電飯煲,倒車?yán)走_(dá),溫度控制板,棉花濕度儀.....  非常在行,他原來是,技校畢業(yè)  我本身,也是32歲才,真正編程.許多人說,30歲后,不宜從事軟件編程.我覺得,不妥.俺,現(xiàn)在連復(fù)雜的,小波變換及其應(yīng)用,DSP常用算法,也得心就手.我已36歲,這幾年,才轉(zhuǎn)行到DSP,MCU編程.                以前,我是畫電路板的,PROTEL99,僅僅是硬件工程師  不過,現(xiàn)在算是DSP,MCU行家  一起努力
您講的太好了,我要非常奴力才行,謝謝鼓力.我正準(zhǔn)備學(xué)PRTEL99呢,拜你為老師不要推詞奧.我買不到有關(guān)資料.
0
回復(fù)
zbdxdxkj
LV.4
30
2007-01-25 21:33
@njyd
  你說的太復(fù)雜了.簡單點(diǎn)就是:  中斷響應(yīng)時(shí),程序會自動跳到ROM開頭的幾個中斷地址之一,(具體要看什么中斷,書上能查到),這幾個地址應(yīng)該寫上轉(zhuǎn)移指令(指向你寫的中斷處理程序),程序到這幾運(yùn)行后就會轉(zhuǎn)移到你寫的你寫的中斷處理程序運(yùn)行.  中斷時(shí)單片機(jī)會自動記下在什么地址響應(yīng)中斷的,中斷處理程序最后一句“RETI”(沒記錯吧?)就是告訴單片機(jī)返回到響應(yīng)中斷時(shí)記下的地方.  中斷處理程序一般要保護(hù)現(xiàn)場,就是保存下響應(yīng)中斷時(shí)正在使用并且后面還要使用的一些寄存器內(nèi)容,這個問題只要把堆棧搞懂就是小菜一碟.  試驗(yàn)中斷可以把斷點(diǎn)設(shè)在中斷處理程序內(nèi),運(yùn)行中在此停下就說明發(fā)生了中斷.  或者在中斷處理程序內(nèi)進(jìn)行寫RAM的操作,運(yùn)行后這個RAM地址被寫入就說明發(fā)生了中斷.  初學(xué)者對中斷是個難點(diǎn),可以先編些簡單的程序試驗(yàn),只要能產(chǎn)生你需要的中斷后面的就好辦了.  自學(xué)單片機(jī)關(guān)鍵就在多試,有些不懂的地方編些小程序多試試就能搞通.當(dāng)然試硬件中斷需要有相應(yīng)的硬件,限可以先試定時(shí)器中斷,這用軟件仿真就可以.
謝謝您:怎么說呢你講的很現(xiàn)實(shí),我明白一點(diǎn)就是不管過程如何,目地達(dá)到就行.過程以后再說,也可能不說就明白了.哈哈高興那么多熱心人.
0
回復(fù)
zbdxdxkj
LV.4
31
2007-01-26 21:11
我有新問體向各位老師請教:1
1.指令和偽指令都要占ROM地址是不是應(yīng)該避開中斷地址?怎樣避開.
2.主程序內(nèi)可以設(shè)制I/O口是嗎?
3.A/D轉(zhuǎn)換中指定好I/O的寄存器后,I口電壓隨時(shí)改變O口賣寬隨之改變這兩個寄存器之間交換程序要用循環(huán)的嗎?謝謝!
0
回復(fù)
發(fā)