1樓:匿名使用者
問題補充:我把晶振直接焊到微控制器18、19兩引腳上,結果電壓就為2.02、2.告訴你一個判斷ic好壞的方法,一般ic引腳都有二極體特性,你可以用數字萬用
2樓:程東旭
放在外面叫全域性變數,從程式的開始到結尾一直存在,在main()函式裡,作用範圍只在主函式裡,_nop_()是延時,大約1us,當(a--)不為零時,執行_nop_(); delay(500000)只是一個形式引數,實際引數不知道,不能確定延時時間,建議你還是多看一些c語言方面的書籍,打好基礎才是主要的。
微控制器的問題
3樓:匿名使用者
舉個例子給你說明:
這個二進位制數為0010000000010000
其中21h=00100000 20h=00010000
clr c ;c清零
xch a,21h ;交換a與21h的值,a=00100000
rrc a ;將a中值右移一位高位補0(c),a=00010000
xch a,21h ;交換a與21h的值,21h=00010000
xch a,20h ;交換a與20h的值,a=00010000
rrc a ;將a中值右移一位高位補0(c),a=00001000
xch a,20h ;交換a與20h的值,20h=00001000
此時原二進位制數變成了0001000000001000
可見:1、程式完成的邏輯功能是使21h和20h中的16位二進位制數右移一位,並使最高位為0,一般稱為邏輯右移一位。
2、可以用mov指令,修改後程式段如下:
clr c
mov a,21h
rrc a
mov 21h,a
mov a,20h
rrc a
mov 20h,a
3、有所差別。雖然從16位右移功能來說兩者的功能是相同的,但第一個程式段執行後,累加器a的內容仍維持原值,而第二個程式段執行後將改變a中的數值。
4樓:匿名使用者
空氣感測器一般使用gp2y1010au0f,proteus裡面是沒有的,你可以用一個電位器來模擬,gp2y1010au0f傳回的是一個模擬訊號。
5樓:匿名使用者
1.code 是把陣列固定到rom裡面,而不是放在ram裡面,減少ram的使用量,例如使用51微控制器的時候如果陣列大於256b,那麼ram就不夠用了,所以把不會改變的陣列放到rom裡面,當然,如果是會時常變化的陣列,是不能固定到rom中的;
2.都是這麼用,應該是編譯器設定的,你就當成是在keil編譯器下編寫51中斷程式的模組吧。
6樓:匿名使用者
1,code的意思就是告訴編譯器將這個一維陣列做為常量存放在程式儲存器rom或flash裡面
2,不用定義,直接寫就好就像寫呼叫的子程式一樣
7樓:高山入雲
1。「code」是微控制器c語言特有的關鍵字
在微控制器中ram的空間特別小,特別珍貴。ram空間,存放變數。而一些常量,比如碼錶等常量放在rom中。所以微控制器中code就是告訴微控制器這個資料放入rom中。
本例中dispbit[8]=; 陣列內容為常量,故加上code,以節約ram的空間。
其實code放在unsigned char 前也可以,比如code unsigned char dispbit[8]效果一樣。
2.關於void t1zd(void) interrupt 3
「interrupt 」是微控制器c語言中斷關鍵字,至於後面的0,1,2,3,4,5,分別表示
0-外部中斷0
1-定時器0
2-外部中斷1
3-定時器1
4-串列埠中斷
5-定時器2
「interrupt 」是微控制器c語言中斷關鍵字,是c51 語言在微控制器中規定的,在程式編譯時指明中斷的型別。當相應的中斷髮生時,並執行這個中斷函式。
本例中當定時器計數時間一到(即 th1和tl1全部計滿,並溢位 ),便執行下面程式,將0x1c放到 th1中 0x18放到tl1 中,再開始重新計數(不斷加1),每計滿一次 lednumval值 加1。如此下去。。。
微控制器的問題有哪些?
8樓:遇見那個人
學習微控制器一般從at89c51學起,自己最好有電路板。
1:微控制器是典型的嵌入式微控制器,由運算器,控制器,儲存器,輸入輸出裝置等構成,相當於一個微型的計算機。與應用在個人電腦中的通用型微處理器相比,它更強調自**和節約成本。
2:它的最大優點是體積小,可放在儀表內部,但儲存量小,輸入輸出介面簡單,功能較低。
3:數碼管是一種半導體發光器件,其基本單元是發光二極體。數碼管實際上是由七個發光管組成8字形而構成的,加上小數點就是8個。這些段分別由a,b,c,d,e,f,g,dp來表示。
4:單片微型計算機簡稱微控制器,是典型的嵌入式微控制器, 常用英文字母的縮寫mcu表示微控制器,微控制器又稱單片微控制器,它不是完成某一個邏輯功能的晶片,而是把一個計算機系統整合到一個晶片上。微控制器由運算器,控制器,儲存器,輸入輸出裝置構成,相當於一個微型的計算機。
微控制器問題
9樓:匿名使用者
當然可以的,同名id
10樓:
中斷服務子程式就是在有中斷源發生中斷申請時進行中斷響應判斷的子程式,普通的子程式按主函式順序到達即執行
微控制器問題
11樓:匿名使用者
(pch)=56h (pcl)=78h (dph)=56h (dpl)=78h
12樓:匿名使用者
如果(dptr)=5678h , (sp)=42h , (3fh)=12h , (40h)=34h, (41h)=50h , (42h)=80h,則執行下列指令後
pop dph
pop dpl
ret(pch)=12h (pcl)=34h (dph)=50h (dpl)=80h
13樓:
執行pop時 (sp)→dph (將42h單元的值賦給dph, (dph)=80h), 然後(sp) -1→sp,這裡變成(sp)=41h
(sp)→dpl (將41h單元的值賦給dpl, (dpl)=50h),然後(sp) -1→sp,這裡變成(sp)=40h
ret是子程式的返回指令
執行本指令時:
(sp)→pch,(這裡將40h單元的值賦給pch,即(pch=34h)),然後(sp) -1→sp
(sp)→pcl,(這裡將3fh單元的值賦給pcl,即(pcl=12h) ),然後(sp)-1→sp
微控制器問題
有關微控制器的問題
14樓:匿名使用者
有關微控制器的問題如果(sp )=6fh,(a )=30h,(b )=70h,則執行下
列指令後,(71h )=30h
(72h)=70h,(sp)=72h
push b
push acc
push b
15樓:匿名使用者
如果(sp )=6fh,(a )=30h,(b )=70h,則執行下列指令後,
(71h )=30h
(72h)=70h
(sp)=72h
微控制器問題 60
16樓:喵星人精彩推薦
配置下t0的工作模式,然後裝載50ms的初值。程式如下:
org 0000h
ajmp main
org 001b
ajmp serve
org 0030h
main:mov tmod,#10h;設定定時器工作方式1mov th1,#0b1h
mov tl1,#0d0h;
setb et1;
setb tr1;
setb ea;開啟中斷
sjmp $
serve:cpl p1.7;
clr tf1;
mov th1,#0b1h
mov tl1,#0d0h;
reti;
微控制器的小問題,微控制器的一個小問題
1 第二個void是說明沒有形參,可以不寫就像void ds reset 1 這樣,但各個c編譯器編譯效率和方式不一樣,有的編譯器會自作主張把 括號裡面加上寫看似沒有用的引數,但可能會對程式的正常執行造成影響。這點是在凱尼格的 c陷阱與缺陷 裡明確提出的一個c語言的漏洞,解決這個漏洞的方法就是不用形...
微控制器程式的問題
keil 是可以計算 單步執行時,左邊的視窗上出現跑到這個語句時所需要的時間,你可以計算出兩個語句之間的時差,或者n個語句之間的時差。而且他算出來的時差是根據你所選的器件的週期來算出的,我覺得這個比較準確 因為c語言中一條語句大約2us,所以大約延時為 250 2 z,即0.5z ms 想實現精確延...
有關51實驗版微控制器的問題,關於51微控制器的問題
初步瀏覽了一下,動態顯示的話delay時間太長就會閃爍。你好 初步看一眼,數碼管閃爍的原因無非是時間間隔太長,先建議你縮短延時時間,再事實。希望我的回答能幫助到你。像是串列埠驅動的數碼管,靜態顯示。這樣的電路,不宜頻繁的顯示,一秒鐘,顯示一次就可以了。把顯示部分,移到定時中斷裡面,即可 main v...