完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用CodeVisionAVR无法生成下面TWI程序的HEX文件
#include #include #include #define uchar unsigned char #define uint unsigned int #define EEPROM_BUS_ADDRESS 0xa0 #asm .equ__i2c_port=0x15 .equ__sda_bit=1 .equ__scl_bit=0 #endasm #define D1 PORTB.4 #define D2 PORTB.5 #define C1 PORTB.6 #define C2 PORTB.7 flash uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uchar disp_h,disp_l; uchar i; uchar eeprom_read(uint address) { uchar data; i2c_start(); i2c_write(EEPROM_BUS_ADDRESS); i2c_write(address>>8); i2c_write(address); i2c_start(); i2c_write(EEPROM_BUS_ADDRESS|1); data=i2c_read(0); i2c_stop(); return data; } void eeprom_write(uint address,uchar data) { i2c_start(); i2c_write(EEPROM_BUS_ADDRESS); i2c_write(address>>8); i2c_write(address); i2c_write(data); i2c_stop(); delay_ms(10); } void display() { disp_h=i/10; disp_l=i%10; C1=1; PORTB=table[disp_h]; delay_ms(10); C1=0; C2=1; PORTB=table[disp_l]; delay_ms(10); C2=0; } void main() { DDRB=0xff; PORTB=0xff; DDRD=0xff; PORTD=0x00; i2c_init(); i=eeprom_read(0x35); if(i==10) i=1; else i++; eeprom_write(0x35,i); while(1) { if(i<=5) { D1=0; D2=1; } else { D1=1; D2=0; } display(); } } |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
AVR Atmega16 Bootloader程序与上位机LabView程序
5130 浏览 6 评论
#include <ioavr.h>这个头文件我应该下什么编译器
7772 浏览 0 评论
3033 浏览 2 评论
3107 浏览 1 评论
10061 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 03:08 , Processed in 0.490190 second(s), Total 42, Slave 30 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号