91视频免费?看_蜜芽MY188精品TV在线观看_国产免费无遮挡在线观看视频_深夜国产_亚洲精品欧洲精品_欧美黑人粗暴多交

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發新帖

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

各位老師好:硬件學完了,問題不大.軟件也學完了(好幾個通宵呢)遇到麻凡了.各個部分學完了(主程序.子程序.寄存器定意.I/O口設值.AD設值.時鐘設值.)我要想編個程序試試了,可腦子亂了這么多程序部分哪個在前哪個在后分不清了.是主程序在前還是各種定意在前應該是先運行主程序,我又覺著不對不定意主程序砸運行一頭霧水,請指教謝了.
全部回復(103)
正序查看
倒序查看
zbdxdxkj
LV.4
2
2007-01-20 20:29
比如說程序編好了,單片機上電運行.在主程序不運行能定意I/O口和其他的狀態嗎?搞不懂.
0
回復
2007-01-20 21:36
@zbdxdxkj
比如說程序編好了,單片機上電運行.在主程序不運行能定意I/O口和其他的狀態嗎?搞不懂.
定義I/O就是在主程序的開頭,一些特殊功能寄存器也在開頭定義,接下來走主程序的其它東西,
0
回復
zbdxdxkj
LV.4
4
2007-01-20 22:20
@shenyf1979
定義I/O就是在主程序的開頭,一些特殊功能寄存器也在開頭定義,接下來走主程序的其它東西,
您好:謝謝.再請教個問題.在AD轉換模試下,要同時設兩個輸入端(兩個引腳)是不是相當于運算放大器的一正一負兩個輸入端.
0
回復
sdjufeng
LV.6
5
2007-01-21 10:24
@zbdxdxkj
您好:謝謝.再請教個問題.在AD轉換模試下,要同時設兩個輸入端(兩個引腳)是不是相當于運算放大器的一正一負兩個輸入端.
這要看你用的單片機了,有的單片機輸入是單端的,有的是既可以單端也可以雙端,由sfr的設置來決定.
另外,不知道你編程序用的是匯編還是C.
0
回復
zbdxdxkj
LV.4
6
2007-01-21 19:13
@sdjufeng
這要看你用的單片機了,有的單片機輸入是單端的,有的是既可以單端也可以雙端,由sfr的設置來決定.另外,不知道你編程序用的是匯編還是C.
您好:我才學幾天沒學過C語言用的是匯編語言,芯片用的是中穎的69p42(我有仿真器)
0
回復
zbdxdxkj
LV.4
7
2007-01-21 19:31
@shenyf1979
定義I/O就是在主程序的開頭,一些特殊功能寄存器也在開頭定義,接下來走主程序的其它東西,
我還是不太懂,能把這幾部分(系統寄存器定義.用戶寄存器定義.I/O口定義.模數轉換定義.中斷程序.主程序.子程序.上電程序)排一下次序嗎?謝了.上電PC從地址0000開始有4個中斷這里不能寫主程序是嗎?
0
回復
2007-01-21 20:22
@zbdxdxkj
我還是不太懂,能把這幾部分(系統寄存器定義.用戶寄存器定義.I/O口定義.模數轉換定義.中斷程序.主程序.子程序.上電程序)排一下次序嗎?謝了.上電PC從地址0000開始有4個中斷這里不能寫主程序是嗎?
你到網上找個例程看看,其實不用想那么多,先做個簡單的程序走走看,以后再把其它功能一個一個加上去
0
回復
zbdxdxkj
LV.4
9
2007-01-21 21:15
@shenyf1979
你到網上找個例程看看,其實不用想那么多,先做個簡單的程序走走看,以后再把其它功能一個一個加上去
有好多東西看是明白了,真做起來就不知從哪下手,有些細節.邏緝又似懂非懂.命令具體還得現查沒記住.看來我是急了點謝謝指教了.要是和你在一個城市就好了,可以登門拜訪并請你喝酒.
0
回復
zbdxdxkj
LV.4
10
2007-01-21 21:22
@shenyf1979
你到網上找個例程看看,其實不用想那么多,先做個簡單的程序走走看,以后再把其它功能一個一個加上去
能交個朋友嗎,留個信箱就可.我的信箱是:zbdxdxkj@126.com
0
回復
wangzai_he
LV.3
11
2007-01-22 09:14
@zbdxdxkj
能交個朋友嗎,留個信箱就可.我的信箱是:zbdxdxkj@126.com
剛寫程序是會有一點亂,但寫好一個非常簡單的程序了就會懂了,我的郵箱是wangzai_he@126.com
0
回復
zbdxdxkj
LV.4
12
2007-01-22 21:39
@wangzai_he
剛寫程序是會有一點亂,但寫好一個非常簡單的程序了就會懂了,我的郵箱是wangzai_he@126.com
我老是把rom和ram地址給鬧昏了,真頭疼.越學越麻繁糊獨.
0
回復
shenyf1979
LV.5
13
2007-01-22 21:41
@zbdxdxkj
能交個朋友嗎,留個信箱就可.我的信箱是:zbdxdxkj@126.com
我幫不上太大的忙,我匯編學的PIC,51系列的我都用C寫的.
0
回復
2007-01-23 08:52
@zbdxdxkj
我老是把rom和ram地址給鬧昏了,真頭疼.越學越麻繁糊獨.
真實年齡52歲嗎?
0
回復
zbdxdxkj
LV.4
15
2007-01-23 20:57
@我愛電源網
真實年齡52歲嗎?
1954年屬馬的自己算吧.
0
回復
zbdxdxkj
LV.4
16
2007-01-23 20:59
@shenyf1979
我幫不上太大的忙,我匯編學的PIC,51系列的我都用C寫的.
已經幫了不少了,非常感謝.
0
回復
njyd
LV.8
17
2007-01-23 21:01
@zbdxdxkj
我還是不太懂,能把這幾部分(系統寄存器定義.用戶寄存器定義.I/O口定義.模數轉換定義.中斷程序.主程序.子程序.上電程序)排一下次序嗎?謝了.上電PC從地址0000開始有4個中斷這里不能寫主程序是嗎?
  地址0000應該是個轉移指令,目的就是跳開后面的中斷入口.如果不使用中斷也可以不用轉移直接占用中斷入口地址.
  同樣中斷入口地址也是轉移指令.中斷入口地址的轉移指令需要用偽指令“ORG”來指定寫在ROM中的確實地址.
0
回復
zbdxdxkj
LV.4
18
2007-01-23 21:08
@njyd
  地址0000應該是個轉移指令,目的就是跳開后面的中斷入口.如果不使用中斷也可以不用轉移直接占用中斷入口地址.  同樣中斷入口地址也是轉移指令.中斷入口地址的轉移指令需要用偽指令“ORG”來指定寫在ROM中的確實地址.
您好;寄存器.I/O口.模數轉換設制是在ORG之前還是之后.
0
回復
zbdxdxkj
LV.4
19
2007-01-23 21:58
各位老師好:我想了好久終于知到這個問題怎樣問了,
   寄存器定意.I/O口.模數轉換命令是不是應該寫在ROM中是在ORG(主程序之前嗎?請指教謝了.
0
回復
sdjufeng
LV.6
20
2007-01-24 07:57
@zbdxdxkj
各位老師好:我想了好久終于知到這個問題怎樣問了,  寄存器定意.I/O口.模數轉換命令是不是應該寫在ROM中是在ORG(主程序之前嗎?請指教謝了.
是的,另外,已經預定義過的就不必再次定義.
比如:
$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
回復
2007-01-24 10:21
@zbdxdxkj
1954年屬馬的自己算吧.
向你學習!
0
回復
zbdxdxkj
LV.4
22
2007-01-24 19:25
@sdjufeng
是的,另外,已經預定義過的就不必再次定義.比如:$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之前的各種設制命令占ROM地址嗎?要是占的話(ORG從0000H開始)ORG之前的命令占哪里?(PC指針不是從零開始嗎)那些設制怎會操做.我糊涂請指教.學了十幾天了想寫程序還不行.
0
回復
njyd
LV.8
23
2007-01-24 21:55
@zbdxdxkj
各位老師好:我想了好久終于知到這個問題怎樣問了,  寄存器定意.I/O口.模數轉換命令是不是應該寫在ROM中是在ORG(主程序之前嗎?請指教謝了.
  ORG是指定編譯出的程序放在ROM什么位置,可以用在任何地方,所以無所謂用在前后.
  程序的第一句如果沒有ORG編譯時就放在地址0000,所以第一句可以不用“ORG 00”
  定義I/O口、外設的指令也可以放在任何位置,但一定要在使用這些I/O口、外設的程序以前.這個以前不是編程序的行數前,而是程序運行先后的前面.但一般放在在主程序一開始,需要的話在程序運行中間也可以改變設置.
  匯編語言分“指令”和“偽指令”,指令在編譯后都產生目標程序,這些目標程序就被放在ROM中;偽指令不產生目標程序,只是告訴編譯程序去怎么運作,比如說ORG就是告訴編譯程序下面緊接的程序從ROM什么地址開始,(放在ROM中什么位置).所以目標程序反編譯后能看到所有原程序的指令,但原程序中的偽指令反編譯后就看不到.
0
回復
sdjufeng
LV.6
24
2007-01-24 22:01
@zbdxdxkj
您好:ORG之前的各種設制命令占ROM地址嗎?要是占的話(ORG從0000H開始)ORG之前的命令占哪里?(PC指針不是從零開始嗎)那些設制怎會操做.我糊涂請指教.學了十幾天了想寫程序還不行.
njyd說得很對.
偽指令不產生目標代碼,哪怕把它放到程序的中間.
0
回復
zbdxdxkj
LV.4
25
2007-01-25 06:05
@njyd
  ORG是指定編譯出的程序放在ROM什么位置,可以用在任何地方,所以無所謂用在前后.  程序的第一句如果沒有ORG編譯時就放在地址0000,所以第一句可以不用“ORG00”  定義I/O口、外設的指令也可以放在任何位置,但一定要在使用這些I/O口、外設的程序以前.這個以前不是編程序的行數前,而是程序運行先后的前面.但一般放在在主程序一開始,需要的話在程序運行中間也可以改變設置.  匯編語言分“指令”和“偽指令”,指令在編譯后都產生目標程序,這些目標程序就被放在ROM中;偽指令不產生目標程序,只是告訴編譯程序去怎么運作,比如說ORG就是告訴編譯程序下面緊接的程序從ROM什么地址開始,(放在ROM中什么位置).所以目標程序反編譯后能看到所有原程序的指令,但原程序中的偽指令反編譯后就看不到.
講的太好了,我明白了很多.謝謝您!我在中斷方面還有點問題.中斷我知道,可單片機的一個腳我設成輸入時(比如說下降沿響應中斷)ROM中的程序怎樣響應(比如說我想要指定的一輸出腳由1變0)響應的是PC指的地址呢還是命令的位呢.我想這方面搞明白了就可是編程了.
0
回復
zyqag
LV.3
26
2007-01-25 09:53
@zbdxdxkj
講的太好了,我明白了很多.謝謝您!我在中斷方面還有點問題.中斷我知道,可單片機的一個腳我設成輸入時(比如說下降沿響應中斷)ROM中的程序怎樣響應(比如說我想要指定的一輸出腳由1變0)響應的是PC指的地址呢還是命令的位呢.我想這方面搞明白了就可是編程了.
樓主,
  我有個同事,1953年出生的.他是2001年后,才學單片機.湖北人
近幾年,他已經很熟悉,MCU開發,例如電飯煲,倒車雷達,溫度控制板,棉花濕度儀.....
  非常在行,他原來是,技校畢業
  我本身,也是32歲才,真正編程.許多人說,30歲后,不宜從事軟件編程.
我覺得,不妥.俺,現在連復雜的,小波變換及其應用,DSP常用算法,也得心就手.我已36歲,這幾年,才轉行到DSP,MCU 編程.              
  以前,我是畫電路板的,PROTEL99,僅僅是硬件工程師
  不過,現在算是DSP,MCU 行家
  一起努力
0
回復
2007-01-25 10:31
@zbdxdxkj
講的太好了,我明白了很多.謝謝您!我在中斷方面還有點問題.中斷我知道,可單片機的一個腳我設成輸入時(比如說下降沿響應中斷)ROM中的程序怎樣響應(比如說我想要指定的一輸出腳由1變0)響應的是PC指的地址呢還是命令的位呢.我想這方面搞明白了就可是編程了.
中斷是單片機在執行某個進程時,由于內、外某個中斷源向單片機發出中斷請求信號,要求單片機中斷當前進程而轉去執行相應的線程,待處理完畢中斷線程后,再返回繼續執行原來進程.
當設置外部中斷的信號來時(在中斷引腳發生了下降沿),先由硬件完成中斷標志位的變化.在由硬件完成PC指針的入棧,記錄被中斷進程的的地址.
在由硬件完成PC指針裝入中斷線程的入口地址.
PC指針裝入中斷線程入口地址后,單片機開始執行中斷線程(指定一個輸出腳由1變0).由于中斷線程中可能用到被中斷進程的資源,所以要先保護原進程的資源狀態如 ACC,PSW 等等,當中斷線程執行完成后在恢復原進程的資源狀態.我的理解就是這樣的說的不好也別怪我啦!相互學習啦!
52歲還在學習!這就夠我學的啦!向你學習!
0
回復
njyd
LV.8
28
2007-01-25 21:14
@我愛電源網
中斷是單片機在執行某個進程時,由于內、外某個中斷源向單片機發出中斷請求信號,要求單片機中斷當前進程而轉去執行相應的線程,待處理完畢中斷線程后,再返回繼續執行原來進程.當設置外部中斷的信號來時(在中斷引腳發生了下降沿),先由硬件完成中斷標志位的變化.在由硬件完成PC指針的入棧,記錄被中斷進程的的地址.在由硬件完成PC指針裝入中斷線程的入口地址.PC指針裝入中斷線程入口地址后,單片機開始執行中斷線程(指定一個輸出腳由1變0).由于中斷線程中可能用到被中斷進程的資源,所以要先保護原進程的資源狀態如ACC,PSW等等,當中斷線程執行完成后在恢復原進程的資源狀態.我的理解就是這樣的說的不好也別怪我啦!相互學習啦!52歲還在學習!這就夠我學的啦!向你學習!
  你說的太復雜了.簡單點就是:
  中斷響應時,程序會自動跳到ROM開頭的幾個中斷地址之一,(具體要看什么中斷,書上能查到),這幾個地址應該寫上轉移指令(指向你寫的中斷處理程序),程序到這幾運行后就會轉移到你寫的你寫的中斷處理程序運行.
  中斷時單片機會自動記下在什么地址響應中斷的,中斷處理程序最后一句“RETI”(沒記錯吧?)就是告訴單片機返回到響應中斷時記下的地方.
  中斷處理程序一般要保護現場,就是保存下響應中斷時正在使用并且后面還要使用的一些寄存器內容,這個問題只要把堆棧搞懂就是小菜一碟.
  試驗中斷可以把斷點設在中斷處理程序內,運行中在此停下就說明發生了中斷.
  或者在中斷處理程序內進行寫RAM的操作,運行后這個RAM地址被寫入就說明發生了中斷.
  初學者對中斷是個難點,可以先編些簡單的程序試驗,只要能產生你需要的中斷后面的就好辦了.
  自學單片機關鍵就在多試,有些不懂的地方編些小程序多試試就能搞通.當然試硬件中斷需要有相應的硬件,限可以先試定時器中斷,這用軟件仿真就可以.
0
回復
zbdxdxkj
LV.4
29
2007-01-25 21:26
@zyqag
樓主,  我有個同事,1953年出生的.他是2001年后,才學單片機.湖北人近幾年,他已經很熟悉,MCU開發,例如電飯煲,倒車雷達,溫度控制板,棉花濕度儀.....  非常在行,他原來是,技校畢業  我本身,也是32歲才,真正編程.許多人說,30歲后,不宜從事軟件編程.我覺得,不妥.俺,現在連復雜的,小波變換及其應用,DSP常用算法,也得心就手.我已36歲,這幾年,才轉行到DSP,MCU編程.                以前,我是畫電路板的,PROTEL99,僅僅是硬件工程師  不過,現在算是DSP,MCU行家  一起努力
您講的太好了,我要非常奴力才行,謝謝鼓力.我正準備學PRTEL99呢,拜你為老師不要推詞奧.我買不到有關資料.
0
回復
zbdxdxkj
LV.4
30
2007-01-25 21:33
@njyd
  你說的太復雜了.簡單點就是:  中斷響應時,程序會自動跳到ROM開頭的幾個中斷地址之一,(具體要看什么中斷,書上能查到),這幾個地址應該寫上轉移指令(指向你寫的中斷處理程序),程序到這幾運行后就會轉移到你寫的你寫的中斷處理程序運行.  中斷時單片機會自動記下在什么地址響應中斷的,中斷處理程序最后一句“RETI”(沒記錯吧?)就是告訴單片機返回到響應中斷時記下的地方.  中斷處理程序一般要保護現場,就是保存下響應中斷時正在使用并且后面還要使用的一些寄存器內容,這個問題只要把堆棧搞懂就是小菜一碟.  試驗中斷可以把斷點設在中斷處理程序內,運行中在此停下就說明發生了中斷.  或者在中斷處理程序內進行寫RAM的操作,運行后這個RAM地址被寫入就說明發生了中斷.  初學者對中斷是個難點,可以先編些簡單的程序試驗,只要能產生你需要的中斷后面的就好辦了.  自學單片機關鍵就在多試,有些不懂的地方編些小程序多試試就能搞通.當然試硬件中斷需要有相應的硬件,限可以先試定時器中斷,這用軟件仿真就可以.
謝謝您:怎么說呢你講的很現實,我明白一點就是不管過程如何,目地達到就行.過程以后再說,也可能不說就明白了.哈哈高興那么多熱心人.
0
回復
zbdxdxkj
LV.4
31
2007-01-26 21:11
我有新問體向各位老師請教:1
1.指令和偽指令都要占ROM地址是不是應該避開中斷地址?怎樣避開.
2.主程序內可以設制I/O口是嗎?
3.A/D轉換中指定好I/O的寄存器后,I口電壓隨時改變O口賣寬隨之改變這兩個寄存器之間交換程序要用循環的嗎?謝謝!
0
回復
主站蜘蛛池模板: 鸡东县| 灌阳县| 黎城县| 开化县| 天等县| 苗栗市| 滨州市| 志丹县| 大宁县| 龙口市| 松潘县| 永和县| 苏尼特右旗| 长海县| 吉林市| 巨野县| 东海县| 佛学| 金沙县| 兴海县| 容城县| 临湘市| 嘉祥县| 凉山| 玉溪市| 蓬莱市| 崇阳县| 台南市| 惠来县| 枣阳市| 冕宁县| 通道| 余姚市| 逊克县| 凤城市| 阿瓦提县| 汉源县| 孙吴县| 新兴县| 历史| 乐至县|