1. 單片機指令
一、
1、單片機全稱單片微型計算機,就是將CPU、存儲器、I/O口等集成在一個晶元內
2、設置工作模式,設置是否開中斷,置入計數初值
3、P3.0,RXD(串列輸入)
P3.1,TXD(串列輸出)
P3.2,/INT0(外部中斷0)
P3.3,/INT1(外部中斷1)
P3.4,T0(定時器0外部輸入)
P3.5,T1(定時器1外部輸入)
P3.6,/WR(外部數據存儲器寫選)
P3.7,/RD(外部數據存儲器讀選)
4、SMOD(模式控制寄存器),TCON(定時器控制寄存器),IE(中斷控制寄存器)
5、定址方式就是尋找操作數或操作數地址的方式,MCS-51單片機有七種定址方式:立即數定址,直接定址,間接定址,寄存器定址,寄存器間接定址,變址定址,相對定址
6、8051有五個中斷源:外部中斷0、T0溢出中斷、外部中斷1、T1溢出中斷、串口中斷;其對應的入口地址分別為:0003H,000BH,0013H,001BH,0023H
7、書上講的應該是有21個特殊功能寄存器,PSW的狀態標志位從第7位到第0位分別為:Cy(借位或者進位標志位)、Ac(輔助進位標志位也叫半進位標志位)、F0(由用戶來定義)、RS1、RS0(這兩位合起來定義單片機選用四組通用寄存器中的哪一組)、OV(溢出標志位)、未用、P(奇偶校驗位)
8、定時器/計數器有2種工作方式:定時方式和計數方式,定時方式時一個時鍾周期定時器加1,計數方式時時鍾脈沖為外部信號(引腳P3.4或者P3.5),如果你問的是工作『模式』的話自己網上查一下,很容易找
二、
5、9、10是對的,其它是錯的
三、
1、SP)=41H,(DPTR)=3412
2、(SP)=40H,(DPTR)=3412
3、(SP)=41H,(DPTR)=3413
4、(A)=0FAH,(B)=03H
5、(30H)=0EH
6、這個題目有錯誤,250後面不應該有H吧
沒有的話應該是:約2.5ms 自己再算算
四、
1.將片外RAM 8000H單元的內容傳送到片內RAM 20H單元。
MOV DPTR,#8000H
MOVX A,@DPTR
MOV 20H,A
2.將片外RAM 4000H單元的內容傳送到片內RAM 20H單元。
MOV DPTR,#4000H
MOVX A,@DPTR
MOV 20H,A
3.將片內RAM 50H單元與51H單元的內容交換
MOV A,50H
MOV B,51H
XCH A,B
MOV 50H,A
MOV 51H,B
4.將片內RAM 20H單元的內容傳送到A中
MOV A,20H
5.將片內RAM 60H單元的內容傳送到A中
MOV A,60H
6. 使累加器A的內容高四位取反,低四位清零
CPL A
ANL A,#F0H
7. 使累加器A的內容最四位置1,低四位清零,其餘位保持不變。
是最高位置1嗎??是的話
ORL A,#80H
ANL A,#F0H
8.分別用指令實現下列各小題的要求:
1) T0開中斷(允許中斷),其餘禁止中斷
MOV IE,#82H
2) T1、串列口開中斷(允許中斷),其餘禁止中斷
MOV IE,#92H
3) 全部開中斷
MOV IE #FFH
4) 全部禁止中斷
CLR IE
五、計數初值=65536-(50ms/1us)=15535=3CAFH
2. 如何讓單片機定時與電腦時間同步
那你的好好設計一下,最好能有時間補償程序,因為單片機在執行指令時需要浪費時間,加上系統延遲等等問題時間不可能非常准確的,只能想辦法進行時間補償或者其他
3. 我用51單片機實現數碼管動態顯示時不同步
延時太長,一般0.5~1ms左右。
另外,你這是共陰的,程序一般這樣:開位選,送欄位碼,延時1ms,關位選,下一位開位選,送欄位碼,延時1ms,關位選 。。。
CLR P2.0
MOV P0,A
LCALL DELAY :1ms
SETB P2.0
CLR P2.1
MOV P0,A
LCALL DELAY
SETB P2.1
4. 51單片機小車左右不能同步是什麼問題C語言怎麼寫
小車電機是通過pwm脈寬調速:
1、單片機是否能同時產生pwm。一般來說在程序上是有一點延遲的。
2、電機兩端的電壓是否相同。如果驅動電路性能不好,是會有偏差的。
3、此外左右兩側車輪材料,壓力導致的摩擦力是否一致。如果不同也是會有誤差的。
一般來說都會對小車車輪的轉速進行測量,反饋給控制器,如果轉速不相等,是控制pwm來調節的。如果是循跡,是要加感測器矯正的。
5. 關系單片機執行指令時的問題
這個很簡單啊,比如我想讓P1口的0-7個位同時輸出1
你可以這樣寫:
P1=0XFF;
也可以這樣寫:
P1_1=P1_2=P1_3=P1_4=P1_5=P1_6=P1_7=0; //要先聲明P1口位變數
6. 多個獨立的單片機系統怎樣實現完全同步
一般的單片機沒有並行結構,所謂的"同時"其實都是按程序設計先後執行的,只是可能耗費的時間極短(一秒執行十幾萬甚至幾百萬條以上的指令)讓人覺得他好像在同時進行.其實讀讀程序,了解單片機的硬體結構就知道的.想要真正的"同時",就必須用幾個單片機一起工作才行.
PS:FPGA易於實現真正的"並行"處理.但其實編程後的電路,已經是相互獨立的了,只是用一個時鍾驅動著,放在一塊密封的晶元中而已.
簡單的說,電路/計算機 是靠速度取勝的.
7. 51單片機指令
TF1是定時器1溢出標志位,$是取地址。JNB TF1,$ 實現的功能是查詢定時器1溢出標志位,如果為0,跳轉到本條指令繼續執行(即繼續查詢)直到定時時間到,TF1置位,才執行下一條指令。
給你注釋一下:
MOV TMOD,#10H //設置定時器工作方式(定時器1,工作方式2)
SETB TR1 //開啟定時器1
LOOP: MOV TH1,#0D8H //裝初值D8F0H 即55536,定時10mS(晶振12M)時間隨晶振改變
MOV TL1,#0F0H
JNB TF1,$ //查詢等待定時器1中斷
CLR TF1 //定時器溢出標志位清0(定時時間到後硬體自動給TF1置位,需軟體清0)
CPL P1.1 //P1.1取反
SJMP LOOP //跳到LOOP處循環(是個死循環)
該段程序實現的功能是:每隔10mS對P1.1取反一次。(10mS當然是晶振為12M的情況下)
8. 單片機計時和for循環無法同步進行問題
先說說這個;
11111111遠大於 i 所能表達的最大值 256,因此在第一個for中就是個死循環了,進去就出不來了;
另外在中斷常式里盡量不要放入太多代碼,非關鍵代碼應該放到中斷常式外來運行;
9. 用52單片機怎樣控制兩個步進電機不同步運行,謝謝了
用兩個IO口分開控制電機啊。什麼時候運行就什麼時候給信號驅動就可以了。
10. 單片機指令
問題補充:3.分析題:假設(SP)=40H,(DPTR)=3412,分析連續執行下列指令序列後DPTR及SP的內容。
PUSH DPL;
PUSH DPH;
POP 08H;
INC DPTR
(1)PUSH DPL (SP)=41H (41H)=34H
(2)PUSH DPH (SP)=42H (42H)=34H
(3)POP 08H (08H)=34H (SP)=41H
(4)INC DPTR DPTR=3413H
4. 執行下列指令後,各有關存儲單元(即A、B)的內容如何?
MOV A, #30H A=#30H
MOV B, #0AFH B=#0AFH
XCH A, B A=#0AFH B=#30H
SWAP A A=#0FAH
5.執行如下三條指令後,30H單元的內容是多少?
MOV R1,#30H R1=#30H
MOV 40H,#0EH (40H)=#0EH
MOV @R1,40H (30H)=(40H)=#0EH
6.已知fosc=6MHZ,求下面延時子程序的延時時間。
DELAY: MOV R6,#10 ;
MOV R7,#250H ;
D2: DJNZ R7,D2 ; 250*2機周*1US=0.5MS
D1: DJNZ R6,D1 ; 0.5*10=5MS
RET ;
實際延時周期為【(500+2+1)*10+2+1】機周*1us/機周=5033us
四、程序設計題
1.使累加器A的內容最四位置1,低四位清零,其餘位保持不變。
這個題沒看明白,不好意思
2.分別用指令實現下列各小題的要求:
____
1) INTO、T0開中斷(允許中斷),其餘禁止中斷
MOV IE,#03H
2) T1、串列口開中斷(允許中斷),其餘禁止中斷
MOV IE,#98H
3) 全部開中斷
MOV IE,#0FFH 或 SETB IE
4) 全部禁止中斷
MOV IE,#00H 或 CLR IE
前面那幾道題YL已經說了,我就不回了,呵呵