• lzs_open
    了解作者
  • C/C++
    开发工具
  • 4KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 30
    下载次数
  • 2008-12-26 10:38
    上传日期
LM75A数字接口温度传感器,使用 IIC接口的驱动 程序。结果通过串口回传显示。使用 M16CPU,硬件IIC。
lm75a.rar
  • lm75a
  • I2C.H
    9.2KB
  • LM75.H
    1.3KB
  • LM75.c
    2.5KB
  • www.pudn.com.txt
    218B
内容介绍
//ICC-AVR application builder : 2007-6-4 20:56:48 // Target : M16 // Crystal: 3.6864Mhz //功能 数字温度测量 //包含文件 LM75.h,I2C.H,LM75.H #include <iom16v.h> #include <macros.h> #include <LM75.h> void send_a_byte(unsigned char i); unsigned char get_temp; void port_init(void) { //PORTB = 0x00; //DDRB = 0x00; PORTC = 0x03; //SCL SDA上拉 DDRC = 0x00; //PORTD = 0x00; //DDRD = 0x00; } void c_tmp(unsigned int aa) //字符方式显示温度值 {//正温度显示 unsigned char cc; if((aa&0x0400)==0) { send_a_byte('+'); } else //负温度显示 { aa=(0x07ff-aa)+1; send_a_byte('-'); } cc=(char)(aa>>3); send_a_byte(cc/100+0x30); send_a_byte(cc%100/10+0x30); send_a_byte(cc%100%10+0x30); send_a_byte('.'); send_a_byte('C'); send_a_byte(0x0a); send_a_byte(0x0d); } void LM75_init(void) { LM75_Write(CONFIG,2,0,0); //POINT // LM75_Write(TSET,0x7d,0,1);//125 c // LM75_Write(THYST,0x64,0,1);//100 c } void send_a_byte(unsigned char i) { while ( !( UCSRA & (1<<UDRE)) );//发送数据 UDR=i; } //UART0 initialize // desired baud rate: 9600 // actual: baud rate:9600 (0.0%) void uart0_init(void) { UCSRB = 0x00; //disable while setting baud rate UCSRA = 0x00; UCSRC = BIT(URSEL) | 0x06; UBRRL = 0x17; //set baud rate lo UBRRH = 0x00; //set baud rate hi UCSRB = 0x98; } // #pragma interrupt_handler uart0_rx_isr:iv_USART0_RXC void uart0_rx_isr(void) { unsigned char i; i=UDR; send_a_byte('T'); send_a_byte(0x0a); send_a_byte(0x0d); get_temp=1; } //TWI initialize // bit rate:8 void twi_init(void) { TWCR= 0X00; //disable twi TWBR= 0x08; //set bit rate 100KHz TWSR= 0x00; //set prescale TWAR= 0x00; //set slave address TWCR= 0x04; //enable twi } //call this routine to initialize all peripherals void init_devices(void) { //stop errant interrupts until set up CLI(); //disable all interrupts port_init(); twi_init(); uart0_init(); MCUCR = 0x00; GICR = 0x00; TIMSK = 0x00; //timer interrupt sources SEI(); //re-enable interrupts //all peripherals are now initialized } // void main(void) { //unsigned char i; unsigned char *resever,re; unsigned int temper; init_devices(); //insert your functional code here... while(1) { if(get_temp) { get_temp=0; re=LM75_Read(TEMP,resever,2);//)==0);//返回0=错误 temper=*resever-1; temper=((((temper<<8)+*resever)>>5)&0x07ff); //存放温度值 //re=(char)temper;//存放温度值 //send_a_byte(re); c_tmp(temper); } } }
评论
    相关推荐
    • iic.zip
      iic实现对lm75a的访问。包括对寄存器的读和写操作
    • LM3S_lm75a.rar
      LM3S系列通过IIC读取LM75的参考程序。
    • IIC.rar
      嵌入式系统及单片机的IIC子程序,用于IIC通讯
    • LM75A.rar
      AVR与LM75A通过IIC通信,使用LCD12864显示温度
    • 51mcu_pin.rar
      学习51编程,必须了解51的内部结构,这个文章很好。
    • RT3.rar
      第1 步 焊接LM75 将LM75 如上图的样子放在单片机的第21 到23 脚上。 将LM75 芯片的第1 至4 脚如上图焊接在单片机上面,注意2、3 脚合在一起焊接。 剪一段普通直插电阻的引脚,把LM75 另一边的第5 至8 脚焊接在...
    • STM32 IIC 状态机 DMA 控制MPU60x0和burst读取MPU6050 FIFO
      STM32状态机架构 通过 硬件IIC外设 和DMA burst 读取MPU6050的 FIFO, 每10ms Timer触发一次routine work trigger进行数据采集。...附送LM75A的硬件IIC操作,只需要在Timer的中断里面根据你的需要时间间隔触发一下
    • IIC协议LM75A温度驱动程序
      基于STM32F103的IIC软件模拟,LM75A温度驱动程序源码,keil打开可直接运行。
    • Proteus7.12.rar
      Proteus7.12完美破解版.rar电路仿真软件很好用可以仿真单片数字模拟电路
    • VHDL 的实例程序,共44个.rar
      经典VHDL 的实例程序,共44个!要下载的尽快