導航:首頁 > 操作系統 > 單片機奇數位

單片機奇數位

發布時間:2022-11-01 20:56:48

❶ 51單片機 奇數位管顯示135 代碼

#include<reg52.h>
#defineucharunsignedchar
ucharcodeledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};//0-9
ucharscanled;
uchardisdat[6];
voiddelay(unsignedintx)
{
unsignedinti,j;
for(i=0;i<x;i++)
for(j=0;j<120;j++);
}
voiddischg()
{
disdat[0]=5;
disdat[1]=10;
disdat[2]=3;
disdat[3]=10;
disdat[4]=1;
disdat[5]=10;
}
voidt1isr()interrupt3//顯示
{
TH1=0xec;
TL1=0x78;
switch(scanled)
{
case0:
P2=0x01;
P0=~ledtab[disdat[7]];
break;
case1:
P2=0x02;
P0=~ledtab[disdat[6]];
break;
case2:
P2=0x04;
P0=~ledtab[disdat[5]];
break;
case3:
P2=0x08;
P0=~ledtab[disdat[4]];
break;
case4:
P2=0x10;
P0=~ledtab[disdat[3]];
break;
case5:
P2=0x20;
P0=~ledtab[disdat[2]];
break;
default:break;
}
scanled++;
scanled%=6;
}
main()
{
TMOD=0x10;
TH1=0xec;
TL1=0x78;
TR1=1;
ET1=1;
EA=1;
scanled=0;
dischg();
while(1);
}

❷ 如何讓單片機的奇數和偶數流水燈輪流點亮

while(1)

{

P0=0x55;P1=0x01; //奇數亮

delay(500); //500ms

P0=0; P1=0; //全部熄滅

delay(200); //200ms


P0=~P0; P1=~P1; //偶數亮

delay(1000); //1000ms

P0=0; P1=0; //全部熄滅

delay(200); //200ms

}

❸ 51單片機c語言做奇數位顯示135怎麼做

只要能寫出6位數碼管的顯示程序,那哪一位顯示什麼就無好辦了。

❹ 單片機中如何將寄存器R2中的數據奇數位取反,偶數位不變

MOV A #AAH ;將累加器賦值10101010
ORG A R2 ;將R2或到累加器中得R2奇數位(偶數位為1)
CPL A ;將累加器取反,即R2奇數位取反(偶數位為0)
MOV R3 A ;將累加器內容放入R3
MOV A #0AAH 將累加器賦值10101010
ANL A R2 ;將R2與到累加器中R2偶數位(奇數位為0)
ORG A R3 ;將R3或到累加器中,即R2奇數位的反與R2偶數位求或
MOV R2 A ;將結果賦到R2中

❺ 請教高手單片機課程設計:先點亮奇數位燈再點亮偶數位燈``````

//流水燈 4 個按鍵 4種 亮法,自己修改 成自己要的 亮法,供參考
#include <REG51.h> //51頭文件
#define DY_PORT P1 //設置LED連接的I/O組
#define DY_SPEED 100 //設置每一個明亮級的停留時間(值域:0~65535)
sbit k1=P3^0;
sbit k2=P3^1;
sbit k3=P3^2;
sbit k4=P3^3;
void delay (unsigned int a) // 1ms延時程序
{
unsigned int i;
while( --a != 0)
{
for(i = 0; i < 600; i++);
}
}
void main(void)
{
unsigned int i;
unsigned int temp;
while(1)
{
if(~k1)
{
temp=0x01;
for(i=0;i<8;i++) //8個流水燈逐個閃動
{
DY_PORT=~temp;
delay(DY_SPEED); //調用延時函數
temp<<=1;
}
}
if(~k2)
{
temp=0x80;
for(i=0;i<8;i++) //8個流水燈反向逐個閃動
{
DY_PORT=~temp;
delay(DY_SPEED); //調用延時函數
temp>>=1;
}
}
if(~k3)
{
temp=0xFE;
for(i=0;i<8;i++) //8個流水燈依次全部點亮
{
DY_PORT=temp;
delay(DY_SPEED); //調用延時函數
temp<<=1;
}
}
if(~k4)
{
temp=0x7F;
for(i=0;i<8;i++) //8個流水燈依次反向全部點亮
{
DY_PORT=temp;
delay(DY_SPEED); //調用延時函數
temp>>=1;
}
}
}
}

❻ 為啥處理器或者單片機的處理器沒聽說過是奇數位的,為啥都是偶數位的,比如4,8,16,32

因為我們總是希望處理器能夠在一個整數的時間內處理完寄存器裡面的內容,以免引起浪費或者未知的錯誤。
而寄存器則是偶數位的,因為是二進制存儲的,不管是光存儲技術還是磁存儲技術,二進制存儲就會使存儲能力為2的指數函數

❼ 單片機的ASCII碼的奇偶校驗位該如何設置

「8」的ASCLL碼為:70
(十進制)=
0011
1000
(二進制)
「B」的ASCLL碼為:102(十進制)=
0100
0010(二進制)
書上說了低7位表示本身編碼,第8位做奇偶校驗
奇偶校驗規則:編碼中1的個數為奇數則為奇校驗,為偶數則為偶校驗
所以「8」的奇校驗ASCLL碼為**0**0111000B(添0,使得1的個數為奇數),偶校驗ASCLL碼為**1**0111000B(添1,使得1的個數為偶數)
同理「B」也類似

❽ 求單片機編寫程序控制奇數偶數交叉互閃

嘿嘿 俺來幫你解決
1 你的意思是1、3、5、7和0、2、4、6奇數位和偶數位交叉互閃吧
2 可以設初始值 01010101B 送給累加器A
低電平0 LED指示燈亮 ; 高電平1 LED指示燈滅;
然後送P1口 顯示奇數位的LED 亮 偶數位LED 滅
3 延時一段時間
4 將累加器A循環左移 則累加器A的內容由01010101B變為10101010B
然後送P1口 顯示奇數位的LE滅 偶數位LED 亮
5 然後不斷地循環3和4的步驟 即可以完成控制奇數偶數交叉互閃。
挺簡單的問題 樓上搞得很復雜啊
俺只給你實現的演算法 你自己編寫代碼吧 比較簡單哦

呵呵 滿意就選滿意回答啊

❾ 單片機奇偶校驗

通常,串列通信的一幀的格式是8-n-1,即8位數據、無校驗、1個停止位。
有時為了提高准確度,需要增加一個「奇」校驗位或者「偶」校驗位。
對於高級語言的做法是很簡單的,只要把格式命令「8-n-1」,改為「8-P-1」或「8-O-1」即可。
串列口在帶有校驗位的通信方式中,是先發送8位數據,然後再發送校驗位。
51單片機也可以按照帶有校驗位的方式進行串列通信,這在51單片機中稱為9位數據方式。
51單片機中有兩個位,分別稱為TB8和RB8,它們在「無校驗」的時候,並沒有用處。
當51單片機用9位數據方式進行串列通信的時候,TB8和RB8的作用如下:
51單片機在發送的時候,先發送8位數據,然後發送TB8中的內容;
51單片機在接收的時候,先接收8位數據,然後接收校驗位,存到RB8中。
編寫51單片機程序的時候,應該在發送數據之前,在TB8中,寫好待發送的校驗位。
8位數據的校驗位,可以利用單片機中奇偶標志位P來自動生成,程序如下。
MOV A, #待發數據 ;數據進了A,即刻生成奇偶標志位P
MOV C, P
MOV TB8, C ;校驗位送到TB8
MOV SBUF, A ;發送數據,以及P
由於P = 1則說明A中有奇數個1,所以上述程序是「偶」校驗的形式。
如果要求的是「奇」校驗,則需要增加一條取反指令,如下:
MOV C, P
CPL C
MOV TB8, C ;校驗位送到TB8
接收方會把收到的8位數送到SBUF,第9位數,送到RB8,然後自動設立RI = 1。
之後,就可以用RB8中的內容,對剛才收到的8位數進行正確性檢驗。

另一個問題:51單片機如何初始化成8-n-1(8數據位,無奇偶校驗位,1停止位)波特率,是用串口的模式幾?
本來想用串口的模式1,可是仔細一看,模式1是10非同步通信方式,1起始位,8數據位,1停止位?
懸賞分:20 - 解決時間:2009-12-1 13:26
問題補充:首先感謝一樓的回答。我還有些疑問,剛才用示波器看了下,當發送0xFF時,示波器顯示一位低電平,其餘為高電平,這點應該是對的,因為起始位是0.可是為什麼發送0xAA時,示波器的(起始位+數據位+停止位)序列是:0 + 0101 0101 + 1,而0x55的序列為:0 +1010 1010 + 1,這兩個值好像不對,是相反了,要是調一下剛好對?
;-----------------------------------------------------------------
最佳答案用串口的模式1,是10位非同步通信方式。
1起始位,8數據位,1停止位,沒有奇偶校驗位。
這種模式就是:8-n-1(8數據位,無奇偶校驗位,1停止位)的模式。
完全符合你的要求。

❿ 在單片機中進行非同步串列通信時奇偶校驗位的作用是什麼呢

奇偶校驗是一種校驗代碼傳輸正確性的方法。根據被傳輸的一組二進制代碼的數位中「1」的個數是奇數或偶數來進行校驗。採用奇數的稱為奇校驗,反之,稱為偶校驗。採用何種校驗是事先規定好的。通常專門設置一個奇偶校驗位,用它使這組代碼中「1」的個數為奇數或偶數。若用奇校驗,則當接收端收到這組代碼時,校驗「1」的個數是否為奇數,從而確定傳輸代碼的正確性。
因此在你設定這一位後單片機會自動執行上述過程,如果校驗錯誤會進入錯誤中斷中。

閱讀全文

與單片機奇數位相關的資料

熱點內容
怎麼批量有順序的命名文件夾 瀏覽:209
杭州程序員健身 瀏覽:17
dvd光碟存儲漢子演算法 瀏覽:758
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:486
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:383
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:350
風翼app為什麼進不去了 瀏覽:779
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:151