freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

簡(jiǎn)易avr單片機(jī)教程(已修改)

2025-07-08 09:29 本頁(yè)面
 

【正文】 簡(jiǎn)易單片機(jī)教程 47 / 47ICCAVR的使用 參考程序代碼1模擬比較器includeincludevoid main(){ unsigned char mid。 DDRC=0xFF。 PORTC=0xFF。 ACSR=0x00。 //啟動(dòng)模擬比較器 參考電壓接比較器正端 中斷屏蔽 觸發(fā)定時(shí)計(jì)數(shù)器1的捕獲關(guān)閉 while(1) { mid=ACSRamp。0x20。 //讀出模擬比較器的輸出值 if(mid==0) PORTC|=BIT(0)。 //PC0=1 else PORTCamp。=~BIT(0)。 //PC0=0 } }2彩燈(軟件例子程序)/*Function:流水燈Author:CWBData:20100505*/includevoid delay_ms(int ms){ int m,n。 for(m=0。m=ms。m++) for(n=0。n=450。n++)。}void main(){ int i,j,k。 DDRA=0xFF。 DDRB=0xFF。 DDRC=0xFF。 DDRD=0xFF。 PORTA=0x00。 PORTB=0x00。 PORTC=0x00。 PORTD=0x00。 while(1) { j=0x01。 for(i=0。i=6。i++) { PORTA=j。 PORTB=j。 PORTD=j。 delay_ms(600)。 j=(j1)。 } for(i=0。i=6。i++) { PORTA=j。 PORTB=j。 PORTD=j。 delay_ms(600)。 j=(j1)。 } }}定時(shí)計(jì)數(shù)器TC2includepragma interrupt_handler MyCounter:20static int iCounter=0。void MyCounter(void){ if(iCounter=10) { //PORTA^=0xFF。//~PINA。//0xFF。// iCounter++。 //iCounter=0。 } else iCounter=0。}void main(void){ DDRA=0xFF。 PORTA=0x00。 //PORTB=0xFF。 DDRB=0xFF。 TCCR0=0x1B。//PWM相位可調(diào),T/C0與輸出引腳斷開,CLK/64分頻//00011011 TCNT0=0x00。//從0開始計(jì)數(shù) OCR0=0x3E。//達(dá)到63時(shí),比較匹配發(fā)生 TIMSK=0x02。//中斷屏蔽寄存器T/C0輸出匹配中斷使能 asm(sei)。 //總中斷開放 SREG|=0x80。 while(1) { //int i,j。 // for(i=0。i1000。i++) // for(j=0。j400。j++)。 if (iCounter==8) PORTA^=0xFF。 }。}計(jì)數(shù)器TC0includepragma interrupt_handler MyCounter:20static int iCounter=0。void MyCounter(void){ if(iCounter=10) { //PORTA^=0xFF。//~PINA。//0xFF。// iCounter++。 //iCounter=0。 } else iCounter=0。}void main(void){ DDRA=0xFF。 PORTA=0x00。 //PORTB=0xFF。 DDRB=0xFF。 TCCR0=0x1B。//PWM相位可調(diào),T/C0與輸出引腳斷開,CLK/64分頻//00011011 TCNT0=0x00。//從0開始計(jì)數(shù) OCR0=0x3E。//達(dá)到63時(shí),比較匹配發(fā)生 TIMSK=0x02。//中斷屏蔽寄存器T/C0輸出匹配中斷使能 asm(39。sei39。) /******************************************** //不明原因,C中嵌入?yún)R編不能用 **********************************************/ SREG|=0x80。 //總中斷開放 SREG|=0x80。 while(1) { int i,j。 // for(i=0。i1000。i++) // for(j=0。j400。j++)。 if (iCounter==8) { PORTA^=0xFF。 for(i=0。i1000。i++) for(j=0。j400。j++)。 } }。}EEPROM/*訪問單片機(jī)資源EEPROM*/includedefine sei() SREG|=0X80define cli() SREGamp。=0X7F//EEPROM控制寄存器位定義define EERE 0 //READdefine EEWE 1 //WRITEdefine EEMWE 2 //總寫入define WWRIE 3 //中斷/*端口初始化*/void _init(void){ DDRA=0XFF。 PORTA=0XFF。 } /*EEPROM讀程序*/char EEPROM_R(unsigned int EEAdd){ while(EECRamp。(1EEWE))。 //寫等待 EEAR=EEAdd。 //設(shè)置讀入地址 EECR|=(1EERE)。 //讀命令 return EEDR。 } /*EEPROM寫程序*/char EEPROM_W(unsigned int EEAdd, unsigned char EEData){ while(EECRamp。(1EEWE))。 //寫等待 EEAR=EEAdd。 //設(shè)置寫入地址 EEDR=EEData。 //設(shè)置寫入數(shù)據(jù) EECR|=(1EEMWE)。 //總寫入允許 EECR|=(1EEWE)。 //開始寫入 }void main(){ _init()。 cli()。 //關(guān)中斷 EEPROM_W(0X100, 0X07)。 //將數(shù)據(jù)寫入EEPROM中的0x0100單元 PORTA=EEPROM_R(0X0100)。 //讀取0x0100單元的數(shù)據(jù),送顯 sei()。 //開中斷/***********************開中斷關(guān)中斷的作用??*****************************/ while(1)。}計(jì)數(shù)器測(cè)頻率include/*******************程序還有問題要解決**************************/void main(){ DDRB=0x08。 PORTB=0x00。//PB3(OC0) CONFIG output TCCR0=0x1B。//64分頻 pwm 比較匹配發(fā)生oc0觸發(fā) TCNT0=0x00。 OCR0=0x80。//RECT WAVE ASSR=0x00。 //同步方式 ///T/C2 目的定時(shí)1MS TCCR2=0x0B。//32 fen pin CTC 與輸出引腳斷開 TCNT2=0x00。//從零開始記數(shù) OCR2=0x7D。//0b0111 1101~~125 TCCR1A=0x00。 TCCR1B=0x06。//時(shí)鐘 外部T1引酵 下降驅(qū)動(dòng) 一般模式 TCNT1H=0x00。 TCNT1L=0x00。 //從零開始記數(shù) ICR1H=0x00。//似乎沒用到輸入捕獲寄存器?? OCR1AH=0x00。 OCR1AL=0x00。 OCR1BH=0x00。 OCR1BL=0x00。//都為0 TCNT1中也為0 比較匹配貌似在這種情況不發(fā)生 TIMSK=0x80。 SREG|=0x80。 //t/c2 比較匹配中斷開放 全局中斷開放 }串口中斷int// Target : M16 // Crystal: //AVR單片機(jī)atmega16串口中斷接收和發(fā)送程序。接收到字符后再發(fā)送出去 include include unsigned char _in_buf[1]。 void port_init(void) { PORTA = 0xFF。 DDRA = 0xFF。 PORTB = 0x00。 DDRB = 0x00。 PORTC = 0x00。 DDRC = 0x00。 PORTD = 0x00。 DDRD = 0x00。 } //UART0 initialize // desired baud rate: 9600 // actual: baud rate:9615 (%) // char size: 8 bit // parity: Disabled void uart0_init(void) { UCSRB = 0x00。 //disable while setting baud rate UCSRA = 0x00。 UCSRC = BIT(URSEL) | 0x06。 UBRRL = 0x33。 //set baud rate lo UBRRH = 0x00。 //set baud rate hi UCSRB = 0x98。 } void send_data(unsigned char back) { while( !( UCSRA amp。 (1UDRE)) ) 。 UDR=back。 } pragma interrupt_handler uart0_rx_isr:12 void uart0_rx_isr(void) { //uart has received a character in UDR _in_buf[0]=UDR。 send_data(_in_buf[0])。 } //call this routine to initialize all peripherals void init_devices(void) { //stop errant interrupts until set up CLI()。 //disable all interrupts port_init()。 uart0_init()。 MCUCR = 0x00。 GICR = 0x00。 TIMSK = 0x00。 //timer interrupt sources SEI()。 //reenable interrupts //all peripherals are now initialized } void main(void) { char j。 init_devices()。 while(1) { for(j=1。j100。j++) 。 } }中斷include//includevoid delay_ms(ms){int i。 for(i=0。i=ms。i++) for(i=0。i=10。i++)。}int x。void main(
點(diǎn)擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1