|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
急求關(guān)于ATmega128的程序,謝謝好心人! |
| 作者:hdavid 欄目:單片機(jī) |
本人現(xiàn)在要用ATMEGA128單片機(jī),因?yàn)橐郧皼]有用過這個(gè)系列的單片機(jī),而我的課題又很著急,導(dǎo)師讓我快點(diǎn),哪位好心人能給我一個(gè)這個(gè)系列的程序看看,這樣學(xué)起來快些!謝謝大家了。我的mail是david80035113@163.com。 |
| 2樓: | >>參與討論 |
| 作者: 萬家燈火 于 2004/4/5 17:17:00 發(fā)布:
呵呵,用c寫,都是一樣的,主要熟悉一下編譯器。 |
|
| 3樓: | >>參與討論 |
| 作者: mrd180 于 2004/4/5 18:17:00 發(fā)布:
頂 |
|
| 4樓: | >>參與討論 |
| 作者: qiguoqiang 于 2004/4/6 12:57:00 發(fā)布:
把你的課題及困難說出來聽聽! |
|
| 5樓: | >>參與討論 |
| 作者: kingli 于 2004/4/6 13:35:00 發(fā)布:
雙龍的網(wǎng)站上有很多 |
|
| 6樓: | >>參與討論 |
| 作者: lolu77 于 2004/4/7 10:24:00 發(fā)布:
一個(gè)用過的調(diào)試程序,ICC編譯環(huán)境 #include <iom128v.h> #define UINT unsigned int #define UCHAR unsigned CHAR #define DA_INPUT (DDRD&=0xfd) #define DA_OUTPUT (DDRD|=0x02) #define DA_L (PORTD&=0xfd) #define DA_H (PORTD|=0x02) #define SCK_OUTPUT (DDRD|=0x01) #define SCK_L (PORTD&=0xfe) #define SCK_H (PORTD|=0x01) /********SD2001C函數(shù)聲名********/ void I2CWait(void); void I2CStart(void); void I2CStop(void); void I2CAck(void); void I2CNoAck(void); UCHAR I2CWaitAck(void); void I2CSendByte(UCHAR demand,UCHAR order); UCHAR I2CReceiveByte(void); void I2CReadDate(void); void I2CWriteStatus(void); void Delay(UINT nn); UCHAR SDA(void); UCHAR date[7]; //日期數(shù)組 //////*****主程序*****////// void main(void) { UCHAR i; asm("cli"); for (i=0; i<7; i++) date[i] = 0; I2CWriteStatus(); while(1) { I2CReadDate(); } } /*********I2C延時(shí)***********/ void I2CWait(void) { UCHAR i; for (i=0; i<20; i++); /* asm("nop"); asm("nop"); asm("nop"); asm("nop"); */ } //********開啟SD2001C的I2C總線***********// void I2CStart(void) { SCK_OUTPUT; DA_OUTPUT; DA_H; SCK_H; I2CWait(); DA_L; I2CWait(); SCK_L; } /********關(guān)閉SD2001C的I2C總線*******/ void I2CStop(void) { SCK_OUTPUT; DA_OUTPUT; DA_L; SCK_L; I2CWait(); SCK_H; I2CWait(); DA_H; } /*********確認(rèn)信號ACK*********/ void I2CAck(void) { SCK_OUTPUT; DA_OUTPUT; DA_L; I2CWait(); SCK_H; I2CWait(); SCK_L; } void I2CNoAck(void) { SCK_OUTPUT; DA_OUTPUT; DA_H; I2CWait(); SCK_H; I2CWait(); SCK_L; } UCHAR I2CWaitAck(void) { UCHAR errtime=255; DA_H; DA_INPUT; I2CWait(); SCK_H; I2CWait(); while(SDA()) { errtime--; if(!errtime) return 0; } SCK_L; return 1; } /************從SD2001C發(fā)送一個(gè)字節(jié)*************/ void I2CSendByte(UCHAR demand,UCHAR order) //order=1,H_L;order=0,L_H { UCHAR i=8; //order=1,發(fā)送命令 SCK_OUTPUT; DA_OUTPUT; /*demand=0; //order=0,發(fā)送數(shù)據(jù)*/ if(order) { while(i--) { SCK_L; I2CWait(); if (demand&0x80) DA_H; else DA_L; //SDA=(bit)(demand&0x80); demand<<=1; I2CWait(); SCK_H; I2CWait(); } SCK_L; } else { while(i--) { SCK_L; I2CWait(); if (demand&0x80) DA_H; else DA_L; //SDA=(bit)(demand&0x01); demand>>=1; I2CWait(); SCK_H; I2CWait(); } SCK_L; } } /*********MCU從SD2001C讀入(接收)一字節(jié)*********/ UCHAR I2CReceiveByte(void) { UCHAR i=8; UCHAR ddata=0; DA_H; SCK_OUTPUT; DA_INPUT; while(i--) { ddata>>=1; //數(shù)據(jù)從低位開始讀取 SCK_L; I2CWait(); SCK_H; I2CWait(); //從高位開始 ddata|=SDA;ddata<<=1 if(SDA()) { &nb |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 www.hbjingang.com 浙ICP證030469號 |