1、查閱相關(guān)資料,完成原理圖設(shè)計(jì);
2、編寫軟件,使該系統(tǒng)能輸出方波、三角波、鋸齒波和梯形波;波形頻率均為1khz,雙極性輸出。
3、用protel軟件完成系統(tǒng)的硬件設(shè)計(jì),并通過(guò)電器規(guī)則檢查;
4、仿真實(shí)現(xiàn);
5、畫pcb圖;
仿真原理圖如下
電路原理圖如下:
Altium Designer畫的原理圖和PCB圖如下:
單片機(jī)代碼:
#include unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66}// 0 1 2 3 4 unsigned char time1; //////延時(shí)函數(shù)參數(shù)/////// /////////////////////////////變量說(shuō)明////////////////////////////////////// unsigned char time2; unsigned char time3; unsigned char count; unsigned char ms; ////////////////////////////////////////函數(shù)說(shuō)明//////////////////////////////// void initial(void); ////初始化函數(shù)//// //void initial_time0(void); //////定時(shí)器0初始化/////// void anjian(void); ////////////按鍵函數(shù)//// void delay(unsigned char time1,time2,time3); ////延時(shí)函數(shù)//// void disp(unsigned char count); /////靜態(tài)顯示子函數(shù)///// void delay1(char ms); void fangbo(void); //方波函數(shù)// void sanjiaobo(void); //三角波函數(shù)// void juchibo(void); //鋸齒波函數(shù)// void tixingbo(void); //正弦波函數(shù)// void main (void) { initial(); while(1) { anjian(); } } /************************************************************************* //函數(shù)名稱:void anjian(void) //函數(shù)說(shuō)明:按鍵函數(shù) //函數(shù)功能: // 注意: *************************************************************************/ void anjian(void) { if(P3_7==0) {delay(1,50,248); if(P3_7==0) {count=1; disp(count); fangbo(); } } while(P3_7==0); count=0; disp(count); anjian(); } /************************************************************************* //函數(shù)名稱:void fangbo(void) //函數(shù)說(shuō)明:方波函數(shù) //函數(shù)功能: // 注意: *************************************************************************/ void fangbo(void) { while(1) { unsigned char fangbo_1; fangbo_1+=8; if(fangbo_1>128&fangbo_1<256) {P0=0x00;} if(fangbo_1<128) {P0=0xff;} if(P3_7==0) {delay(1,50,248); if(P3_7==0) { count=2; disp(count); sanjiaobo(); } } while(P3_7==0); } } /************************************************************************* //函數(shù)名稱:voidsanjiaobo(void) //函數(shù)說(shuō)明:三角波函數(shù) //函數(shù)功能: // 注意: *************************************************************************/ void sanjiaobo(void) { while(1) { unsignedchar sanjiaobo_2; if(sanjiaobo_2<=128) {P0=sanjiaobo_2;} else {P0=255-sanjiaobo_2;} sanjiaobo_2+=5; if(sanjiaobo_2>=255) {sanjiaobo_2=0x00;} if(P3_7==0) { delay(1,50,248); if(P3_7==0) {count=3; disp(count); juchibo(); } } while(P3_7==0); } } /************************************************************************* //函數(shù)名稱:voidjuchibo(void) //函數(shù)說(shuō)明:鋸齒波函數(shù) //函數(shù)功能: // 注意: *************************************************************************/ void juchibo(void) { while(1) { unsignedchar juchibo_3; if(juchibo_3<180) {P0=juchibo_3;} juchibo_3+=4; if(juchibo_3>=180) {juchibo_3=0x00;} if(P3_7==0) { delay(1,50,248); if(P3_7==0) {count=4; disp(count); tixingbo(); } } while(P3_7==0); } } /************************************************************************* //函數(shù)名稱:voidtixingbo(void) //函數(shù)說(shuō)明:梯形波函數(shù) //函數(shù)功能: // 注意: *************************************************************************/ void tixingbo(void) { while(1) { unsignedchar tixingbo_4; if(tixingbo_4<120) {P0=tixingbo_4;} elseif(tixingbo_4==120) delay1(1); elseif(tixingbo_4<240) {P0=240-tixingbo_4;} if(tixingbo_4==240) {delay1(1);} if(tixingbo_4>240) { tixingbo_4=0x00; } tixingbo_4+=10; if(P3_7==0) {delay(1,50,248); if(P3_7==0) { count=0; disp(count); anjian(); } } while(P3_7==0); } } /************************************************************************* //函數(shù)名稱:voidinitial(void) //函數(shù)說(shuō)明:初始化函數(shù) //函數(shù)功能: // 注意: *************************************************************************/ void initial(void) { P0=0xff; P1=0xff; P2=0xff; P3=0xff; } /************************************************************************* //函數(shù)名稱:delay(unsignedchar time1,time2,time3) //函數(shù)說(shuō)明:延時(shí)函數(shù) //函數(shù)功能: //入口參數(shù):unsigned chartime1,time2,time3 //出口參數(shù): // 注意:延時(shí)時(shí)間的計(jì)算:(time1*time2*time3*8us)us time1,time2,time3可以不進(jìn)行變量說(shuō)明 *************************************************************************/ void delay(unsigned char time1,time2,time3) { unsigned char i,j,k; for(i=time1;i>0;i--) { for(j=time2;j>0;j--) { for(k=time3;k>0;k--); } } } /************************************************************************* //函數(shù)名稱:disp(unsignedchar count) //函數(shù)說(shuō)明:靜態(tài)顯示子函數(shù) //函數(shù)功能: //入口參數(shù):unsigned charcount //出口參數(shù): // 注意: *************************************************************************/ void disp(unsigned char count) { P2=table[count]; delay(1,5,248); } void delay1(char ms) { char ti; while(ms--) { for(ti=0;ti<16;ti++){} } }
上一篇:AT89C51單片機(jī)十字路口交通燈設(shè)計(jì)
下一篇:單片機(jī)定時(shí)器占空比按鍵調(diào)整Proteus仿真程序
推薦閱讀
史海拾趣
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無(wú)線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開(kāi)發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹(shù)莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲(chǔ)html,css,js文件,以及網(wǎng)頁(yè)和arduino的通訊
- ESP32 freeRTOS使用測(cè)試
- API調(diào)用小記(Touchdesigner和ESP32)
- 關(guān)于ESP32/8266使用async-mqtt-client庫(kù)的一些基本介紹
- 兩款車規(guī)激光雷達(dá)新品:23mm超薄+廣角
- 廣和通發(fā)布AI語(yǔ)音智能體FiboVista,重構(gòu)車聯(lián)網(wǎng)與AIoT交互體驗(yàn)
- AEB成國(guó)家強(qiáng)標(biāo) 輔助駕駛應(yīng)緊守安全底線
- 單價(jià)250萬(wàn)美元的悲劇:死在“黎明”前的日本人形機(jī)器人產(chǎn)業(yè)
- Allego推出全球首款最安全的即插即充技術(shù)
- 索尼半導(dǎo)體解決方案將推出堆疊式SPAD深度傳感器 用于汽車激光雷達(dá)應(yīng)用
- SNU開(kāi)發(fā)出單傳感器3D麥克風(fēng) 使機(jī)器人能夠在嘈雜環(huán)境中定位人類
- 硫化鋰技術(shù)大突破!樣品已送全固態(tài)電池制造商
- 汽車市場(chǎng)爆發(fā)前,誰(shuí)為固態(tài)電池“買單”?
- 自動(dòng)駕駛中純視覺(jué)替代不了激光雷達(dá)?
- 知否知否 應(yīng)是更多汽車方案
- TI嵌入式直播月:深入探究嵌入式產(chǎn)品在工業(yè)和汽車中的新應(yīng)用
- 以科技之力,成就安全 PI與您一起駕馭明天的智慧 答題贏好禮!
- TI史上最強(qiáng)音視頻DSP—DM6467之SEED開(kāi)發(fā)板全套資源
- 國(guó)產(chǎn)芯4月:開(kāi)啟ADC和DAC之旅,曬一曬你用過(guò)哪個(gè)段位的ADC/DAC~
- 兆易GD32450I-EVAL免費(fèi)測(cè)評(píng)試用
- vishay照明,智勇闖關(guān)贏好禮!
- Vicor白皮書下載——雙向電源:“安靜”改變世界的驅(qū)動(dòng)力
- 率先從3.0邁進(jìn)4.0!吉利憑借CMA結(jié)構(gòu)開(kāi)啟科技造車新時(shí)代
- Otonomo與FCA合作 利用FCA網(wǎng)聯(lián)車輛數(shù)據(jù)實(shí)現(xiàn)地圖繪制等服務(wù)
- AEye推出新型傳感器系列產(chǎn)品 軟件可定義射程達(dá)1000米
- 測(cè)量自動(dòng)化,你的工廠是幾級(jí)?
- 格力終于對(duì)數(shù)控機(jī)床下手了!合作楚天華興只是第一步
- 什么業(yè)務(wù)支撐起了富士康的巨大營(yíng)收?
- 重慶高速公路服務(wù)區(qū)引入無(wú)人餐廳 送餐機(jī)器人會(huì)唱歌跳舞
- 天眼之后 傾聽(tīng)宇宙的大耳朵也被造出來(lái)了
- 專家警告:機(jī)器人應(yīng)該植入芯片以防謀殺人類
- HTC全球瘋狂裁員 將退出智能手機(jī)領(lǐng)域
- 參考書《現(xiàn)代電子電力基礎(chǔ)》
- IAR下MSP430的啟動(dòng)代碼到底是怎么回事?
- 【轉(zhuǎn)帖】直流電更適合家用,為什么民用電卻是交流電?
- 一款基于STM32H7的機(jī)器視覺(jué)開(kāi)發(fā)平臺(tái)(2)軟件框架
- 8051單片機(jī)徹底研究
- 申請(qǐng)MSP-EXP430FR5739實(shí)驗(yàn)板套件團(tuán)購(gòu)
- TI高性能處理器主題月直播回放觀看地址
- 問(wèn)題分析,大家來(lái)研究一個(gè)圖紙。
- 印刷電路板設(shè)計(jì)(PCB)問(wèn)題 (ADI電路設(shè)計(jì))
- ,如何定義bool類型