直播推薦
企業(yè)動(dòng)態(tài)
- 硬核突圍!上海兆越以自主可控技術(shù)重構(gòu)礦山通信生態(tài)
- 京東五金城設(shè)立樂(lè)清電氣地標(biāo)館 探索數(shù)智供應(yīng)鏈助力產(chǎn)業(yè)帶發(fā)展新模式
- 旋轉(zhuǎn)設(shè)備故障檢測(cè),我們更懂工廠的“心跳” ——昆山金斗云測(cè)控
- 華為工業(yè)智能平臺(tái)iDME.X:工業(yè)知識(shí)圖譜新引擎,賦能工業(yè)新智造
- 賽思快訊 | 浙江省政協(xié)教科衛(wèi)體委主任鄭瑤一行領(lǐng)導(dǎo)蒞臨賽思調(diào)研
- 河北省建筑電氣&智能化2025學(xué)術(shù)交流會(huì)
- 祝山東省建筑電氣與智能化2025年年會(huì)成功召開(kāi)
- 智聯(lián)無(wú)碳未來(lái)!臺(tái)鈴全球首發(fā)電動(dòng)車(chē)全生命周期碳管理系統(tǒng)
推薦展會(huì)
#Include <REG51.H>
void delay(void)
{ unsigned int i,j,k,l;
for(i=0;i<=27000;i++)
{j++; k++;l++;};
}
void main (void)
{ unsigned char i,c[4] = {0xef,0xdf,0xbf,0x7f};// 從左往右流水
i = 0;
while(1)
{ P3 = c[i & 3];
i++;
delay();
}
}
//=========================================================================
// 實(shí)驗(yàn)二 用一位數(shù)碼管循環(huán)顯示0~9
#Include <REG51.H>
#define U8 unsigned char
code U8 tab[]={0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xba,0x20,0x28};
void delay(void)
{ unsigned int i,j,k,l;
for(i=0;i<=27000;i++)
{j++; k++;l++;};
}
void main(void)
{ U8 i;
P2_4=0;
while(1)
{ P0 = tab[i];
delay();
i++;
if(i==10) i = 0;
}
}
//=============================================================================
// 實(shí)驗(yàn)三 LED數(shù)碼管的動(dòng)態(tài)驅(qū)動(dòng)
#Include <REG51.H>
#define U8 unsigned char
U8 tab[]={0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xba,0x20,0x28};
U8 scn[]={0x7f,0xbf,0xdf,0xef};//先點(diǎn)亮左邊一個(gè)數(shù)碼管
U8 buf[4]={0,0,0,0};// 顯示緩沖區(qū),開(kāi)機(jī)先顯示"0000"
U8 cnt = 0; // 掃描計(jì)數(shù)
void main(void)
{ EA = 1; // 允許中斷
TMOD = 0x01; // 設(shè)定時(shí)器0為模式1(16位)
ET0 = 1; // 定時(shí)器0中斷允許
TH0 = 0xee; // 晶振11.0592MHz,5mS
TL0 = 0;
TR0 = 1; // 開(kāi)始計(jì)數(shù)
while(1); // 死循環(huán),等待中斷
}
void timeint(void) interrupt 1 // 定時(shí)器0中斷服務(wù)程序
{ char i;
TH0 = 0xee; // 設(shè)置定時(shí)器時(shí)間常數(shù)
TL0 = 0;
i = cnt & 0x03; // 求應(yīng)點(diǎn)亮的LED號(hào)(從左到右依次為 0,1,2,3)
P0 = tab[buf[i]]; // 筆劃代碼送P0口
P2 = scn[i]; // 控制掃描碼送P2口
if(cnt==200)
{ cnt=0; // 到1秒鐘,顯示的數(shù)字加一
for(i=3;i>=0;i--)
{ buf[i]++;
if(buf[i]==10) buf[i]=0;// 加到10向前進(jìn)位
else break;
}
}
cnt++;
}
//====================================================================
// 實(shí)驗(yàn)四 自動(dòng)演奏樂(lè)曲-康定情歌
#Include <REG51.h>
#define U8 unsigned char
code unsigned int cyc[]={1800,1600,1440,1351,1200,1079,960};//音階1-7的半周期數(shù)
code U8 tone[]={13,15,16,16,15,16,13,12,12,13,15,16,16,15,16,13,13, 13,15,16,
16,15,16,13,12,12,15,13,12,13,12,11,12,6,6,12,15,13,12,6,6,15,13,12,13,12,11,
12,6,5,6,0xff};// 樂(lè)曲《康定情歌》的簡(jiǎn)譜表
code U8 time[]={8,8,8,4,4,8,8,12,4,8,8,8,4,4,8,16,8,8,8,8,4,4,8,8,12,4,8,8,4,4, 4,4,8,24,8,24,8,24,8,16,8,8,8,4,4,4,4,8,16,8,32};// 節(jié)拍表
U8 H0,L0,cnt;
void cntint0(void) interrupt 1 // 定時(shí)器0中斷用于產(chǎn)生音階方波
{ TH0=H0;
TL0=L0;
P2_3=~P2_3; // P2.3是音樂(lè)信號(hào)輸出腳,P2.3反相,產(chǎn)生方波
}
void cntint1(void) interrupt 3 // 定時(shí)器1中斷用于產(chǎn)生節(jié)拍延時(shí)
{ cnt++; // 計(jì)數(shù)初值為0,所以不用賦值
}
void main(void)
{ U8 i,a,t;
unsigned int b;
next:TMOD=0x11;
EA=1;
ET0=1;
ET1=1;
cnt=0;
TR1=1;
i=0;
while(1)
{ t=tone[i]; // 讀音調(diào)
if(t==0xff) break; // 0xff是結(jié)束符
if(t!=0) // 0 是休止符
{ b=cyc[t%10-1]; // 根據(jù)基本音階,求出半周期數(shù)
if(t<10) b=b*2; // 若是低八度音階,半周期數(shù)加倍
if(t>20) b=b/2; // 若是高八度音階,半周期數(shù)減半
H0=(65536-b)/256; // 根據(jù)半周期數(shù),計(jì)算T0初值的高字節(jié)和低字節(jié)
L0=(65536-b)%256;
TR0=1; // 啟動(dòng)定時(shí)器0發(fā)音
}
cnt=0;
a=time[i]; // 讀節(jié)拍
while(a>cnt);
TR0=0;
i++;
for(b=0;b<1000;b++); // 稍加延時(shí),增強(qiáng)節(jié)奏感
}
P2_3=1; // 關(guān)閉喇叭
while(P3_2==1); // 等待按INT鍵
goto next; // 重放一遍
}
//===========================================================================
// 實(shí)驗(yàn)五 加法計(jì)算器
#Include <REG51.H>
#define U8 unsigned char
#define key_port P1
code U8 kcode[]={0xb7,0xbe,0xde,0xee,0xbd,0xdd,0xed,0xbb,0xdb,0xeb,0xd7,0xe7};
//反轉(zhuǎn)碼對(duì)應(yīng)鍵值 0 1 2 3 4 5 6 7 8 9 A B
code U8 disp[]={0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xba,0x20,0x28,0xff};
U8 buf[4]={0,0,0,0};
U8 cnt=0;
U8 scn[]={0x7f,0xbf,0xdf,0xef};// 先點(diǎn)亮左邊一個(gè)數(shù)碼管
void delay_ms(U8 ms)
{ U8 i,j;
for(i=0;i<100;i++)
{ for(j=0;j<ms;j++);};
}
U8 key(void)
{ U8 a,r;
delay_ms(20); // 延時(shí)20毫秒,消除按鍵抖動(dòng)
if(key_port == 0xf0) goto rn;
a = key_port;
key_port = a | 0x0f;
delay_ms(20);
a = key_port;
for (r = 0;r <= 11;r++)
{ if(a == kcode[r]) break;};
if(r > 11) r = 0xff; //0xff表示無(wú)效
rn: key_port = 0xf0;
return r;
}
void main(void)
{ U8 k,i,pf; // pf為按過(guò)加號(hào)鍵的標(biāo)志
int p,p1,p2, // p1,p2為兩個(gè)加數(shù),p為和
TMOD = 0x01; // 設(shè)定時(shí)器0為模式1(16位)
TH0 = 0xee; // 晶振11.0592MHz,5mS
TL0 = 0;
TR0 = 1; // 開(kāi)始計(jì)數(shù)
EA = 1; // 允許中斷
ET0 = 1; // 定時(shí)器0中斷允許
key_port = 0xf0;
pf = 0; // 清除加號(hào)標(biāo)志
p = 0;
delay_ms(20);
while(1) // 循環(huán)
{ if (key_port != 0xf0)
{ k = key();
if (k < 10)
{ if((p1==0)&&(p2==0))for(i=0;i<=3;i++) buf[i] = 0;//清空顯示緩沖區(qū)
else for(i=1;i<=3;i++) buf[i-1]=buf[i];// 數(shù)字左移一位
buf[3] = k;// 在個(gè)位顯示剛按的數(shù)字
if(pf==0) p1 = p1 * 10 + k;
else p2 = p2 * 10 + k;
}
else
{ if(pf == 1)
{ p = p1 + p2;
p1 = 1000;
for(i=0;i<3;i++)
{ buf[i] = p / p1;
p = p - p1 * buf[i];
p1 = p1 / 10;
}
buf[3] = p;
p = 0;
p1 = 0;
p2 = 0;
pf = 0;
}
else
{ pf = 1;
p2 = 0;
for(k=0;k<=3;k++) buf[k] = 0;
}
}
while(key_port != 0xf0);// 等待按鍵抬起
delay_ms(20);
while(key_port != 0xf0);
}
}
}
void timeint(void) interrupt 1 // 定時(shí)器0中斷服務(wù)程序
{ unsigned char i,s;
TH0 = 0xee; // 設(shè)置定時(shí)器時(shí)間常數(shù)
TL0 = 0;
i = cnt & 0x03; // 求應(yīng)點(diǎn)亮的LED號(hào)(從左到右依次為 0,1,2,3)
P0 = disp[buf[i]]; // 筆劃代碼送P0口
P2 = scn[i]; // 控制掃描碼送P2口
cnt++;
}
免責(zé)聲明
- 凡本網(wǎng)注明"來(lái)源:智能制造網(wǎng)"的所有作品,版權(quán)均屬于智能制造網(wǎng),轉(zhuǎn)載請(qǐng)必須注明智能制造網(wǎng),http://towegas.com。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
- 企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
- 本網(wǎng)轉(zhuǎn)載并注明自其它來(lái)源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品來(lái)源,并自負(fù)版權(quán)等法律責(zé)任。
- 如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
2025第十一屆中國(guó)國(guó)際機(jī)電產(chǎn)品交易會(huì) 暨先進(jìn)制造業(yè)博覽會(huì)
展會(huì)城市:合肥市展會(huì)時(shí)間:2025-09-20