單片機C語言程序
如果沒有定義 NO_TIMER2 就執行下面的程序..如果定義了..就執行#else下面的程序、、與if…else的用法差不多.. #endif就是結束的意思..與#ifndef 是相對的..
求單片機c語言 語句大全
C語言基礎語句 C程序的語句 1.表達式語句 2.函數調用語句 3.控制語句 條件判斷 4.復合語句 5.空語句
c51單片機c語言程序
#include
void delay(unsigned int i);
unsigned char dis[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f);
unsigned char code[]={0xef,0xdf,0xbf,0x7f,0xfe,0xfd,0xfb,0xf7);
void main(void)
{
unsigned char i,j;
while(1)
{
for(i=0;i<8;i--)
for(j=0;j<8;j--)
}P0=dis[i];
P2=dis[i];
P1=dis[j];
P3=dis[j];
delay(10);
}
}
}
void delay(unsigned int i)
{
unsigned int j;
for(;i!=0;i–)
for(j=3000;j>0;j–);
}
這個可以實現P0P2,P1P3口 單個I/0口的具體意思不是很明白!
單片機 C語言程序
P1=1< 這句錯了,<<這個是左移,而不是循環左移 改為這樣就可以了 #include #include typedef unsigned int uint16; typedef unsigned char uint8; #define uchar unsigned char uchar temp; void main() { temp=0xfe; while(1) { uint16 i; uint8 j; //—————————- P0=temp; temp=_crol_(temp,1); //P0=0xfe< //———————— for(i=0;i<50000;i++); if(8==j) { j=0; } } } 他給你的源程序告訴你用什么運行環境了么!我用的是AVRstudio6.0.打開一個文件的時候,有一個選擇單片機的型號.在那里面選中你所用的單片機.之后打開擴展名為.C的文件!如果你的時項目文件,那就直接打開那個項目就可以了!編譯之后生成的.hex文件,,用PROTEUS加載就可以進行仿真了! 本書為北京航空航天大學出版社出版,作者為彭偉.本書基于AVR Studio+WinAVR(GCC)組合環境和Proteus硬件仿真平臺,精心安排了100個AVR單片機C程序設計案例.全書提供了所有寨例完整的C語言源程序,各案例設計了難易適中的實訓目標.本書適合用作大專院校學生學勻實踐AVR單片機C語言程序設計技術的參考書,也可用作電子工程技術人員、單片機技術愛好者的學習參考書. 你只要學過C語言,在keil環境下編程,把要控制的管腳在程序中聲明,剩下的事就是c編程了 單片機檢測高電平.1、可以用外部中斷,外接激光傳感器最好用普通光耦隔離一下,順便改成低電平觸發單片機中斷.然后用位移指令移動跑馬燈,然后計數值加1. 2、可以用循環檢測,也建議用光耦隔離先,在MAIN里面不斷檢測P00,發現變化后,再次檢測以便確認,確認后同樣位移一下跑馬燈,然后計數加1. 1、bit 位定義2、無返回值 是指函數沒有返回值如 void huanshu(void) 有返回值是函數有返回值如:void huanshu(uint a) 3、unsigned long 為無符號長整型 xdata外部擴展RAM數據,LedOut數組名.[8]為數組里有8個元素 首先,PB0只是一個普通IO,它只能判斷高低電平,要是換成C口(AD轉換口)倒是可以,另外,PC4也不是PWM口,MEGA48和MEGA8基本上一樣,都只有3路PWM。當然,你可以把PB0接一個按鍵,每按一次,占空比對應變化一個值。給你一個小程序,希望你能用的上: #include<iom48v.h> #include<macros.h> #define uchar unsigned char #define uint unsigned int #define key1 (PINB&0x01) #define key2 (PINB&0x02) #define beep_on PORTD|=0x02 #define beep_off PORTD&=0xfd #define xtal 8 void beep_three(void); char t=0; void delay_1ms(void) { uint i; for(i=0;i<(xtal*143-2);i++) { NOP(); } } void delay_ms(uint k) { uint i=0; while(i<k) { i++; delay_1ms(); } } void port_init(void) { DDRB=0xfc; //PB0、1作為按鍵輸入口 PORTB=0xff; DDRD=0xff; PORTD=0x00; DDRC=0xff; PORTC=0x00; } void scan_s1(void) { if(t<=250) { if(key1==0) { delay_ms(20); //消除抖動 if(key1==0) { beep_on; delay_ms(100); beep_off; t=t+5; //t遞加5,你可以改為1 OCR2=t; //把t值賦給OCR2,用以調節占空比。 delay_ms(200); //防止按壓按鍵時間稍長而導致連加 } } } else //if(t>=244) { if(key1==0) {delay_ms(20); if(key1==0) { t=255; OCR2=t; beep_three(); delay_ms(200); } } } } void scan_s2(void) { if(t>4) {if(key2==0); { if(key2==0) { beep_on; delay_ms(100); beep_off; t=t-5; OCR2=t; delay_ms(200); } } } else //if(t==0) { if(key2==0) {delay_ms(20); if(key2==0) { OCR2=0; beep_three(); delay_ms(200); } } } } void beep_three(void) { beep_on; delay_ms(95); beep_off; delay_ms(95); beep_on; delay_ms(95); beep_off; delay_ms(95); beep_on; delay_ms(95); beep_off; } void scan_key(void) { scan_s1(); scan_s2(); } void timer2_init(void) { TCCR2 = 0x00; //停止定時器 ASSR = 0x00; //異步時鐘模式 TCNT2 = 0x00; //初始值 TIMSK |= 0x00; //中斷允許 TCCR2 = 0x61; //啟動定時器 } void init_devices(void) { CLI(); //禁止所有中斷 MCUCR = 0x00; MCUCSR = 0x80; //禁止JTAG GICR = 0x00; port_init(); timer2_init(); SEI(); //開全局中斷 } void main(void) { init_devices(); while(1) { scan_key(); } }單片機C語言程序設計實訓100例 – – 基于AVR+PROTEUS仿真
單片機C語言程序設計實訓100例的介紹
單片機交通燈實訓C語言程序
求寫一段簡單的51單片機C語言代碼
單片機C語言語句
單片機C語言編程高手請進