![]() |
#include
#define uchar unsigned char
#define uint unsigned int
unsigned char x=0,m=0,y=128;
sbit WR_DA=P2^1;
sbit CS_DA=P2^0;//DA與 單片機 的接口
sbit S0=P3^0; //波形選擇,每次按下將產生不同的波形
sbit S1=P3^1; //頻率減
sbit S2=P3^2; //頻率加
sbit S3=P3^3; //調節方波的占空比
uchar code SinTab[256]={0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5
,0xc7,0xca,0xCC,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5
,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd
,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda
,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99
,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51
,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16
,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02 ,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15
,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e
,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80 };
void delayms(uint t)
{
uint i;
while(t--)
{
for (i=0;i<125;i++);//對于11.0592M時鐘,約延時1ms
}
}
void delay(uint t)
{
uint i;
for (i=t;i>0;i--);
}
void time0_init()
{
TMOD|=0x01; //定時器設置 16位
TH0=-50000/256;
TL0=-50000%256;//初始化值
ET0=1;
TR0=1;
EA=1;
}
void time0_int(void) interrupt 1
{
TR0=0;//關閉定時器
TH0=-50000/256;
TL0=-50000%256;//重裝初值
if(S0==0)
{
delayms(10);//按鍵消抖
if(S0==0) m++;
while(!S0);//松手檢測
}
if(S1==0)
{
delayms(10);
if(S1==0) x=x+1;
while(!S1);//松手檢測
}
if(S2==0)
{
delayms(10);
if(S2==0) x=x-1;
while(!S2);//松手檢測
}
if(S3==0)
{
delayms(10);
if(S3==0) y=y+5;
while(!S3);//松手檢測
}
if(y>254) y=0;
if(m>5) m=0;
if(x>50) x=0;
TR0=1;//啟動定時器
}
void fangbo() //方波
{
uchar i,j;
j=255-y;
CS_DA=0;
WR_DA=0;
for(i=y;i>0;i--)
{
P0=0;
delay(x);
}
while(j--)
{
P0=255;
delay(x);
}
}
void juchi() //鋸齒波
{
uchar i;
CS_DA=0;
WR_DA=0;
for(i=255;i>0;i--)
{
P0=i;
delay(x);
}
}
void sanjiao() //三角波
{
uchar i;
CS_DA=0;
WR_DA=0;
for(i=0;i<255;i++)
{
P0=i;
delay(x);
}
while(i--)
{
P0=i;
delay(x);
}
}
void tixing() //梯形波
{
uchar i=255,j,k;
CS_DA=0;
WR_DA=0;
while(i--)
{
P0=i;
delay(x);
}
for(j=0;j<100;j++)
{
P0=0;
delay(x);
}
for(k=0;k<255;k++)
{
P0=k;
delay(x);
}
}
void sin() //正弦波
{
uchar a;
CS_DA=0;
WR_DA=0;
for(a=0;a<255;a++)
{
P0=SinTab[a];
delay(x);
}
}
main()
{
time0_init();
while(1)
{
switch(m)
{
case 0:
fangbo(); //方波
break;
case 1:
juchi(); //鋸齒波
break;
case 2:
sanjiao(); //三角波
break;
case 3:
sin(); //正弦波
break;
case 4:
tixing(); //梯形波
break;
default: fangbo();
}
}
}
上一篇:AT89C2051單片機開發點鈔機外接顯示屏
下一篇:Dmx512燈控制器程序
推薦閱讀
史海拾趣
ALPS公司是一家日本電子制造商,成立于1948年,總部位于東京。以下是關于ALPS公司發展的五個相關故事:
創立與早期發展:ALPS公司最初成立時,是一家小規模的電子零部件制造商,專注于生產開關和其他電子元器件。在日本戰后經濟快速復蘇的背景下,ALPS公司迅速發展壯大,成為當時日本電子行業的重要參與者之一。
技術創新與產品多樣化:隨著時間的推移,ALPS公司不斷進行技術創新,擴展其產品線。除了開關和電子元器件外,公司還涉足了汽車電子、通信設備、家電、數字產品等領域,推出了各種多功能的產品,滿足不同行業和消費者的需求。
全球化戰略:為了進一步擴大市場份額,ALPS公司實施了全球化戰略,逐步在世界各地建立了生產基地和銷售網絡。公司在亞洲、歐洲、北美等地設立了子公司和分支機構,與當地客戶和合作伙伴緊密合作,拓展了國際市場。
產業布局與戰略合作:除了自身產品開發和制造外,ALPS公司還通過戰略合作和并購等方式進行產業布局,加強了自身在電子行業中的地位。公司與其他行業領先企業合作,共同開發新技術和產品,提升了市場競爭力。
環境保護與社會責任:作為一家負責任的企業,ALPS公司重視環境保護和社會責任,致力于減少環境污染和資源浪費。公司采取了各種措施,包括提高能源利用效率、推動循環經濟和環保產品設計等,為可持續發展做出了積極貢獻。
以上是關于ALPS公司發展的五個相關故事,這些故事展示了ALPS公司在技術創新、產品多樣化、全球化戰略、產業布局和環境保護方面的發展歷程,以及其在電子行業中的重要地位和影響力。
在電子行業中,市場拓展是企業發展的關鍵因素之一。DMS積極開拓國內外市場,與眾多知名企業建立了長期穩定的合作關系。公司通過提供優質的產品和服務,贏得了客戶的信賴和支持。同時,DMS還積極參與行業展會和交流活動,與同行進行技術交流和合作,共同推動電子行業的發展。
品質是電子行業的生命線,BCD Semi公司深知這一點。因此,公司始終將品質管理放在首位,建立了完善的品質管理體系和質量控制流程。公司從原材料采購、生產制造到產品出廠,每一個環節都進行嚴格的質量把控,確保產品的高品質和穩定性。同時,BCD Semi還不斷引進先進的生產設備和技術,優化生產流程,提高生產效率,為客戶提供更優質的產品和服務。
在電子行業的快速發展中,BCD Semi公司憑借其卓越的技術創新能力,成功研發出了一系列具有競爭力的半導體產品。公司擁有一支經驗豐富的研發團隊,不斷探索新技術和新應用,將最新的科技成果轉化為具有市場競爭力的產品。通過技術創新,BCD Semi在行業中逐漸樹立起了良好的口碑,贏得了眾多客戶的信任和支持。
隨著技術的不斷發展,CMOS Sensor Inc公司不斷推出創新產品。其中,線型CMOS圖像傳感器的研發成功,為公司帶來了重要的突破。這一產品具有更高的分辨率和更低的噪聲,為工業質量保證、商業成像等領域提供了更優質的解決方案。此后,公司又不斷對產品進行升級和優化,以滿足不同客戶的需求。
隨著電子設備工作頻率的迅速提高,電磁干擾的頻率也越來越高,干擾頻率通常會達到數百MHz,甚至GHz以上。由于電壓或電流的頻率越高,越容易產生輻射,因此,正是這些頻率很高的干擾信號導致了輻射干擾的問題日 ...… 查看全部問答∨ |
|
1 現以測漂移產生為例說明示波器使用基本操作規范及步驟:... 5 2 抖動產生測試操作步驟:... 7 3 相位瞬變測試操作步驟: 7… 查看全部問答∨ |
(一)分析被控對象并提出控制要求 詳細分析被控對象的工藝過程及工作特點,了解被控對象機、電、液之間的配合,提出被控對象對 PLC控制系統的控制要求,確定控制方案,擬定設計任務書。 (二)確定輸入/輸出設備 ...… 查看全部問答∨ |
喜歡看電影和影評的同學,一定聽說過“蒙太奇”這個術語。蒙太奇(montage)來自法文,大致意思就是,把幾件并行發生的事情,剪輯成片段,穿插著表現出來。格里菲斯導演的《黨同伐異》中,導演就巧妙地把時空相距甚遠的不同活動剪輯在一起,開創了 ...… 查看全部問答∨ |
我安裝了Keil c51v8.02,但是英文的,很多地方看不大明白,需要一個漢化補丁將菜單漢化,在網上搜了很久都沒找到,希望大蝦們幫個忙,告訴我一個下載地址或是發到我的箱1060552279@qq.com,謝謝!… 查看全部問答∨ |
大家好,我遇到了一個從沒有想到的問題: union { ulong N; uchar B[4]; } K; 。。。。 K.N=37534852 //=0x02 3c bc 84 for (i=0;i<4;i++) {//sbuf[i+4]=K.B; sbuf[i+4]=K.B[3-i];//多字節數據按照 ...… 查看全部問答∨ |
|
在學習STM32F103芯片的USART1時,當只開啟發送模式時,終端能正常顯示,但當再加入接收模式時,MDK能編譯成功,但燒錄后終端不顯示,開發板上指示芯片工作的LED燈也不閃爍。希望高人給指點一下!程序:/* Includes ------------------------------- ...… 查看全部問答∨ |
雙端電阻網絡 雙端電阻網絡器件的特性是每個電阻器都是由其他電阻器環路橋接的,形成了并行電流通路。從物理上斷開環路是不可能的。利用一般的測試方法,大部分測試電流將會流過并行通路,產生的電阻讀數要低于待測電阻的實際大小。 圖1. 8 ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- EEWorld十五周年,感恩同行!盤點那些難忘的小確幸~
- 嵌入式Rust修煉營直播(第二場):MCU上電后,Rust代碼啟動流程解析
- 是德科技服務日研討會|武漢站——邀請函
- Sitara™ AM335x ARM® Cortex™-A8 團購
- Microchip直播:單片機編程不再難, 利用MPLAB®代碼配置器(MCC)實現快速開發
- Digi-key干貨視頻教程來襲,意見領袖講解疑難設計問題,帶你突破成長瓶頸~
- 【備戰國賽】超多電賽干貨資料等你下載!蓋樓助力電賽贏積分
- 報名贏【掛燈、浴巾】等好禮|TI MSPM0家用電器和電機控制應用詳解
- 下載有禮:4種方法幫助您高效進行元器件表征,加速元器件檢測