個(gè)人還是比較喜歡有個(gè)電源指示燈,所以另外加了個(gè)“小紅”
【單片機(jī)開(kāi)源學(xué)習(xí)】跟著樂(lè)老師學(xué)習(xí)數(shù)控電源
全部回復(fù)(62)
正序查看
倒序查看
最近比較忙今天晚上才把板子焊完,不過(guò)功率板還沒(méi)上電,只有一路電源過(guò)幾天得去買(mǎi)個(gè)變壓器。有誰(shuí)買(mǎi)到了嗎?給個(gè)淘寶鏈接,我不知道要買(mǎi)哪種
下載程序的時(shí)候要裝一下驅(qū)動(dòng)誰(shuí)要我貼上來(lái)方便下載CH340IR.rar
下載軟件用新版本的會(huì)自動(dòng)讀取COM口stc-isp-15xx-v6.70.rar
程序可以下載了,接下來(lái)就可以自己調(diào)程序啦。先睡覺(jué),改天了。
0
回復(fù)
@又一個(gè)暑假
最近比較忙今天晚上才把板子焊完,不過(guò)功率板還沒(méi)上電,只有一路電源過(guò)幾天得去買(mǎi)個(gè)變壓器。有誰(shuí)買(mǎi)到了嗎?給個(gè)淘寶鏈接,我不知道要買(mǎi)哪種下載程序的時(shí)候要裝一下驅(qū)動(dòng)誰(shuí)要我貼上來(lái)方便下載CH340IR.rar下載軟件用新版本的會(huì)自動(dòng)讀取COM口stc-isp-15xx-v6.70.rar[圖片]程序可以下載了,接下來(lái)就可以自己調(diào)程序啦。先睡覺(jué),改天了。
0
回復(fù)
@又一個(gè)暑假
最近比較忙今天晚上才把板子焊完,不過(guò)功率板還沒(méi)上電,只有一路電源過(guò)幾天得去買(mǎi)個(gè)變壓器。有誰(shuí)買(mǎi)到了嗎?給個(gè)淘寶鏈接,我不知道要買(mǎi)哪種下載程序的時(shí)候要裝一下驅(qū)動(dòng)誰(shuí)要我貼上來(lái)方便下載CH340IR.rar下載軟件用新版本的會(huì)自動(dòng)讀取COM口stc-isp-15xx-v6.70.rar[圖片]程序可以下載了,接下來(lái)就可以自己調(diào)程序啦。先睡覺(jué),改天了。
我買(mǎi)了一個(gè),能用,
0
回復(fù)
帖子已被推薦到帖子底部經(jīng)典圖庫(kù)。更多請(qǐng)點(diǎn)擊哦:http://www.15119.cn/bbs/classic/
0
回復(fù)
@又一個(gè)暑假
[圖片]樂(lè)老師的這個(gè)毫秒延時(shí)函數(shù)誤差有點(diǎn)大吧,有人去算過(guò)嗎
可參考
/****************************************************************** - 功能描述:1MS延時(shí)子程序 帶(16位)參數(shù) - 隸屬模塊: - 參數(shù)說(shuō)明:無(wú) - 返回說(shuō)明:無(wú) - 注: 此處MAIN_Fosc=22.1184 MHz ******************************************************************/ void Delay_ms(uint x_ms) { unsigned int i; do { i = MAIN_Fosc / 13000; while(--i) ; //14T }while(--x_ms); }
0
回復(fù)
@又一個(gè)暑假
按鍵部分參照吳堅(jiān)鴻的思想[圖片]源代碼見(jiàn)3樓
還有一個(gè)按鍵的寫(xiě)法更酷,我用Proteus仿真了一下 ,不妨大家也可以看看這樣的按鍵寫(xiě)法,不過(guò)核心算法我是原創(chuàng)的,我相信也很多人看過(guò),沒(méi)看過(guò)的朋友仔細(xì)看看,會(huì)有收獲的。
源代碼如下:
/****************************************************************** - 功能描述:主要是想測(cè)試按鍵的算法 按鍵按下對(duì)應(yīng)的LED燈翻轉(zhuǎn) 又一個(gè)暑假 2015.02.12 ******************************************************************/ #include "REG52.H" #define PINB P1 sbit LED0 = P2^0; sbit LED1 = P2^1; sbit LED2 = P2^2; sbit LED3 = P2^3; volatile unsigned char Key_Value; volatile unsigned char Key_Trg; volatile unsigned char Key_Cont; volatile unsigned char Key_Release; void Key_Scan(void) ; //按鍵掃描函數(shù) void Key_Service(void); //按鍵服務(wù)函數(shù) void KeyRead( void ); //按鍵核心算法 /****************************************************************** - 功能描述:中斷服務(wù)函數(shù) - 參數(shù)說(shuō)明:無(wú) - 返回說(shuō)明:無(wú) - 注: ******************************************************************/ void T0_time(void) interrupt 1 { TF0=0; //清除中斷標(biāo)志 TR0=0; //關(guān)中斷 Key_Scan(); TH0=(65535-20000)/255; //重裝初始值 TL0=(65535-20000)%255; TR0=1; //開(kāi)中斷 } /****************************************************************** - 功能描述:?jiǎn)纹瑱C(jī)初始化 - 參數(shù)說(shuō)明:無(wú) - 返回說(shuō)明:無(wú) - 注: ******************************************************************/ void Init_Mcu(void) //初始化單片機(jī) { TMOD=0x01; //設(shè)置定時(shí)器0為工作方式1 TH0=0xff; //重裝初始值(65535-2000)=63535=0xf82f TL0=0xf0; EA=1; //開(kāi)總中斷 ET0=1; //允許定時(shí)中斷 TR0=1; //啟動(dòng)定時(shí)中斷 } /****************************************************************** - 功能描述:主函數(shù) - 參數(shù)說(shuō)明:無(wú) - 返回說(shuō)明:無(wú) - 注: ******************************************************************/ void main ( void ) { Init_Mcu() ; while(1) { Key_Service(); } } /****************************************************************** - 功能描述:執(zhí)行按鍵按下 要執(zhí)行的任務(wù) - 參數(shù)說(shuō)明:無(wú) - 返回說(shuō)明:無(wú) - 注: ******************************************************************/ void Key_Service( void ) //第三區(qū) 按鍵服務(wù)的應(yīng)用程序 { switch(Key_Value) //按鍵服務(wù)狀態(tài)切換 { case 1: Key_Value = 0; LED0=!LED0; break; case 2: Key_Value = 0; LED1=!LED1; break; case 3: Key_Value = 0; LED2=!LED2; break; case 4: Key_Value = 0; LED3=!LED3; break; default: break; } } /****************************************************************** - 功能描述:按鍵核心算法 - 參數(shù)說(shuō)明:無(wú) - 返回說(shuō)明:無(wú) - 注: ******************************************************************/ void KeyRead( void ) { unsigned char read_data = PINB^0xff; // 1 讀鍵值 Key_Trg = read_data & (read_data ^ Key_Cont); // 2 得到按下觸發(fā)值 Key_Release= (read_data ^ Key_Trg ^ Key_Cont);// 3 得到釋放觸發(fā)值 Key_Cont = read_data; // 4 得到所有未釋放的鍵值 } /****************************************************************** - 功能描述:按鍵掃描函數(shù) - 參數(shù)說(shuō)明:無(wú) - 返回說(shuō)明:無(wú) - 注: ******************************************************************/ void Key_Scan( void ) { KeyRead(); switch(Key_Trg & 0xf0) { case 0x10: Key_Value = 1; break; case 0x20: Key_Value = 2; break; case 0x40: Key_Value = 3; break; case 0x80: Key_Value = 4; break; default: Key_Value = 0; break; } }
0
回復(fù)
@又一個(gè)暑假
還有一個(gè)按鍵的寫(xiě)法更酷,我用Proteus仿真了一下,不妨大家也可以看看這樣的按鍵寫(xiě)法,不過(guò)核心算法我是原創(chuàng)的,我相信也很多人看過(guò),沒(méi)看過(guò)的朋友仔細(xì)看看,會(huì)有收獲的。源代碼如下:/******************************************************************-功能描述:主要是想測(cè)試按鍵的算法按鍵按下對(duì)應(yīng)的LED燈翻轉(zhuǎn)又一個(gè)暑假2015.02.12******************************************************************/#include"REG52.H"#definePINBP1sbitLED0=P2^0;sbitLED1=P2^1;sbitLED2=P2^2;sbitLED3=P2^3;volatileunsignedcharKey_Value;volatileunsignedcharKey_Trg;volatileunsignedcharKey_Cont;volatileunsignedcharKey_Release;voidKey_Scan(void);//按鍵掃描函數(shù)voidKey_Service(void);//按鍵服務(wù)函數(shù)voidKeyRead(void);//按鍵核心算法/******************************************************************-功能描述:中斷服務(wù)函數(shù)-參數(shù)說(shuō)明:無(wú)-返回說(shuō)明:無(wú)-注:******************************************************************/voidT0_time(void)interrupt1{TF0=0;//清除中斷標(biāo)志TR0=0;//關(guān)中斷Key_Scan();TH0=(65535-20000)/255;//重裝初始值TL0=(65535-20000)%255;TR0=1;//開(kāi)中斷}/******************************************************************-功能描述:?jiǎn)纹瑱C(jī)初始化-參數(shù)說(shuō)明:無(wú)-返回說(shuō)明:無(wú)-注:******************************************************************/voidInit_Mcu(void)//初始化單片機(jī){TMOD=0x01;//設(shè)置定時(shí)器0為工作方式1TH0=0xff;//重裝初始值(65535-2000)=63535=0xf82fTL0=0xf0;EA=1;//開(kāi)總中斷ET0=1;//允許定時(shí)中斷TR0=1;//啟動(dòng)定時(shí)中斷}/******************************************************************-功能描述:主函數(shù)-參數(shù)說(shuō)明:無(wú)-返回說(shuō)明:無(wú)-注:******************************************************************/voidmain(void){Init_Mcu();while(1){Key_Service();}}/******************************************************************-功能描述:執(zhí)行按鍵按下要執(zhí)行的任務(wù)-參數(shù)說(shuō)明:無(wú)-返回說(shuō)明:無(wú)-注:******************************************************************/voidKey_Service(void)//第三區(qū)按鍵服務(wù)的應(yīng)用程序{switch(Key_Value)//按鍵服務(wù)狀態(tài)切換{case1:Key_Value=0;LED0=!LED0;break;case2:Key_Value=0;LED1=!LED1;break;case3:Key_Value=0;LED2=!LED2;break;case4:Key_Value=0;LED3=!LED3;break;default:break;}}/******************************************************************-功能描述:按鍵核心算法-參數(shù)說(shuō)明:無(wú)-返回說(shuō)明:無(wú)-注:******************************************************************/voidKeyRead(void){unsignedcharread_data=PINB^0xff;//1讀鍵值Key_Trg=read_data&(read_data^Key_Cont);//2得到按下觸發(fā)值Key_Release=(read_data^Key_Trg^Key_Cont);//3得到釋放觸發(fā)值Key_Cont=read_data;//4得到所有未釋放的鍵值}/******************************************************************-功能描述:按鍵掃描函數(shù)-參數(shù)說(shuō)明:無(wú)-返回說(shuō)明:無(wú)-注:******************************************************************/voidKey_Scan(void){KeyRead();switch(Key_Trg&0xf0){case0x10:Key_Value=1;break;case0x20:Key_Value=2;break;case0x40:Key_Value=3;break;case0x80:Key_Value=4;break;default:Key_Value=0;break;}}
這個(gè)程序不是在數(shù)控電源的板子上運(yùn)行的
源代碼就貼在這了。按鍵.rar
0
回復(fù)