『壹』 128單片機實現埠B(PORTB)流水燈控制輸出。要求流水方向向左循環閃爍3次,再向右循環閃爍3次。並循環。
//你的程序完全不對
//延時程序,要延時多長時間你可以自己改
voiddelay(void)
{
unsignedintt=0;
while(t<10000){
t++;
}
}
//主程序
voidmain(void)
{
unsignedchari;
unsignedcharj;
DDRD=0xFF; //定義PORTD埠為輸出口
//主循環,對應你所說的「並循環」
while(1){
//向左循環3次
for(i=0;i<3;i++){
//亮燈左移,一共4盞燈
for(j=0;j<4;i++){
PORTD=~(1<<j); //點亮第j盞燈,引腳輸出低電平亮燈(從你原來的程序看出來的)
delay(); //延時,就是第j盞燈要亮多長時間,可以自己修改delay的時間就可以了
}
}
//向右循環3次
for(i=0;i<3;i++){
//亮燈右移,一共4盞燈
for(j=0;j<4;i++){
PORTD=~(0x80>>j); //點亮第j盞燈,引腳輸出低電平亮燈(從你原來的程序看出來的)
delay(); //延時,就是第j盞燈要亮多長時間,可以自己修改delay的時間就可以了
}
}
}
}
『貳』 avr128單片機
ATMEGA128L 工作電壓范圍2.7V-5.5V 工作頻率0-8M
ATMEGA128 工作電壓范圍4.5V-5.5V 工作頻率0-16M
128L雖然最高頻率為8M 但是可以超頻工作,如果頻率在12M以內,電壓為4.5-5.5V之間基本上可以通用,你說的12M換成11.0592具體看你產品對時間的要求高不高,自己做實驗就無所謂了。
『叄』 8051單片機內部RAM低128單元劃分為哪三個部分各有什麼特點
0x00~0x1f 4組通用工作寄存器0x20~0x2f 128位的位定址0x30~0x7f 用戶RAM區
(1)工作寄存器組(00H——1FH)
這是一個用寄存器直接定址的區域,內部數據RAM區的0—31,共32個單元。它是4個通用工作寄存器組,每個組包含8個8位寄存器,編號為R0——R7。
(2)可位定址RAM區(20H——2FH)
16個位元組單元,共包含128位,這16個位元組單元既可以進行位元組定址,又可以實現位定址。主要用於位定址。
(3)通用的RAM區(30H——7FH)
用於設置堆棧、存儲數據。
(3)128單片機擴展閱讀:
PC 機的CPU 是基於馮諾伊曼的體系結構,然而MCU(單片機)、Dsp(數字信號處理器)都是基於哈佛結構的體系結構。哈佛結構與馮諾伊曼結構有很大的不同,在馮諾伊曼體系結構下只有一個地址空間,ROM 和RAM 可以隨意安排在這一地址范圍內的不同空間,即ROM 和RAM 地址統一分配。
CPU 訪問存儲器時,一個地址對應唯一的存儲單元,可能是ROM,也可能是RAM。而哈佛結構下ROM 和RAM 是分開編址,即程序和數據分開保存,訪問時用不同的指令加以區分,並可同時訪問,在這樣的體系結構下有利於提高指令的執行速度。在後面的章節我們將詳細介紹單片機的存儲器配置。
『肆』 xs128單片機是什麼內核的……
XS128是摩托羅拉基於68系列處理器的16位單片機,STM32是ARM結構cortex-m構架的32位單片機,兩個的差別當然大了。
『伍』 XS128單片機中ECT模塊和TIM模塊的區別
xs128沒有ECT模塊,而是分成了PIT和TIM兩個模塊。PIT的作用是產生周期中斷,與51單片機的定時器功能一樣,只是不需像51那樣在中斷中要重賦定時器初值。計數是在TIM中實現,xs128隻有16位一個脈沖累加器PACA(與IOC7腳相連),而dg128還有PACB,比如你用光電編碼器測速,編碼器傳回一系列脈沖,由PACA記錄脈沖數,有一個脈沖就記一個數(這與你設定的觸發沿有關)。另外,每個引腳都有一個對應的TCx寄存器,當相應引腳觸發時,TIM模塊中的自由計數器TCNT中的計數值就存到對應的TCx中(讀回TCx),再觸發一次TCNT再存入TCx(再讀回),兩次相減就為兩次觸發的間隔時間。
『陸』 有關128單片機的一些問題
//1.這里其實應該是根據i遍歷fdread的,比如conns[i],而不是client_conn.
//1.可以用vector來存儲SOCKET.有時間的童鞋自己寫吧.
//1.Nonzero if s is a member of the set. Otherwise, zero.
if (FD_ISSET(client_conn, &fdread))
{
cout << "get fdread" << endl;
int readed = 0;
readed = recv(client_conn,buffer,kLen,0);
if(readed == SOCKET_ERROR)
{
int code = WSAGetLastError();
cout << "code: " << code << endl;
//1.socket已經斷開
closesocket(client_conn);
goto NewConn;
『柒』 怎麼算128單片機的波特率
算的方法。在數據手冊中有:BaudRate=BusClock/(16*SCIBD) 8*10^6/(16*52)=8000000/832=9615.4。所以實際上波特率不是准確的9600.為什麼要選擇52做為計算數。你可以反著除一下:SCIBD=BusClock/BaudRate/16=52.083333...
『捌』 128單片機5V電源怎麼轉換成3.3V輸出
最簡單的是串兩個二極體,這樣能得到3.5V左右的電壓,當然最好的就是用AMS1117-3.3,把5V轉換為准確的3.3V輸出。
『玖』 xs128和stm32兩種單片機分別有哪些優勢用起來有什麼區別
stm32比128高級,我兩塊板都寫過程序,更精通於32,個人也更偏向於32。
這么說吧,128能實現的的32也能,128不能實現的的32也能。而且128寫程序的編譯器還沒有寫32的keil高級,調試的時候麻煩。
『拾』 128單片機程序超過c000-ffff區域怎麼辦
程序過大,超出單片機正常定址范圍的時候,可以考慮擴展ROM。
1、將數據、表格等放到擴展的ROM中,通過一定方式可以讀取。
2、可以採取一定方法,比如KEIL的START.UP中有定義,擴展ROM,分成幾個bank來處理。