没有合适的资源?快使用搜索试试~ 我知道了~
TM1638程序(AVR
5星 · 超过95%的资源 需积分: 11 65 下载量 98 浏览量
2012-03-20
17:03:54
上传
评论 1
收藏 5KB TXT 举报
温馨提示
试读
8页
TM1638的测试程序,适用于AVR单片机使用
资源推荐
资源详情
资源评论
TM1638键显测试程序(AVRGCC)
//tm1638.h头文件
#ifndef _TM1638_H
#define _TM1638_H
#include <avr/io.h>
#include <util/delay.h>
#include <avr/pgmspace.h>
typedef struct
{
unsigned char bit0:1;
unsigned char bit1:1;
unsigned char bit2:1;
unsigned char bit3:1;
unsigned char bit4:1;
unsigned char bit5:1;
unsigned char bit6:1;
unsigned char bit7:1;
}bit_feild;
#define GET_BITSFIELD(addr) (*((volatile bit_feild *)(addr)))
#define GET_BITFIELD(addr,n) GET_BITSFIELD(addr).bit##n
#define DATA_COMMAND 0X40
#define DISP_COMMAND 0x80
#define ADDR_COMMAND 0XC0
/* #define SET_BIT(PORT,BIT) PORT|=(1<<BIT)
//tm1638.h头文件
#ifndef _TM1638_H
#define _TM1638_H
#include <avr/io.h>
#include <util/delay.h>
#include <avr/pgmspace.h>
typedef struct
{
unsigned char bit0:1;
unsigned char bit1:1;
unsigned char bit2:1;
unsigned char bit3:1;
unsigned char bit4:1;
unsigned char bit5:1;
unsigned char bit6:1;
unsigned char bit7:1;
}bit_feild;
#define GET_BITSFIELD(addr) (*((volatile bit_feild *)(addr)))
#define GET_BITFIELD(addr,n) GET_BITSFIELD(addr).bit##n
#define DATA_COMMAND 0X40
#define DISP_COMMAND 0x80
#define ADDR_COMMAND 0XC0
/* #define SET_BIT(PORT,BIT) PORT|=(1<<BIT)
#define CLR_BIT(PORT,BIT) PORT&=~(1<<BIT)
#define BIT_IN(DDR,BIT) DDR&=~(1<<BIT)
#define BIT_OUT(DDR,BIT) DDR|=(1<<BIT)
#define READ_BIT(PIN,BIT) (PIN&(1<<BIT)) */
//TM1638与MCU的连接关系
#define DIO PD7
#define CLK PD6
#define STB PD4
#define TM1638_DP &PORTD //数据端口,写
#define TM1638_DDR &DDRD //方向控制
#define TM1638_PIN &PIND //引脚端口,读
#define DIO_high GET_BITFIELD(TM1638_DP,DIO)=1
#define DIO_low GET_BITFIELD(TM1638_DP,DIO)=0
#define CLK_high GET_BITFIELD(TM1638_DP,CLK)=1
#define CLK_low GET_BITFIELD(TM1638_DP,CLK)=0
#define STB_high GET_BITFIELD(TM1638_DP,STB)=1
#define STB_low GET_BITFIELD(TM1638_DP,STB)=0
#define DIO_IN GET_BITFIELD(TM1638_DDR,DIO)=0 //输入状态
#define DIO_OUT GET_BITFIELD(TM1638_DDR,DIO)=1 //输出状态
#define DIO_READ GET_BITFIELD(TM1638_PIN,DIO) //读引脚电平
/*
#define DIO_IN DDRD&=~(1<<PD7) //输入状态
#define DIO_OUT DDRD|=(1<<PD7) //输出状态
#define DIO_READ PIND&(1<<PD7) //读引脚电平
//引脚定义
#define BIT_IN(DDR,BIT) DDR&=~(1<<BIT)
#define BIT_OUT(DDR,BIT) DDR|=(1<<BIT)
#define READ_BIT(PIN,BIT) (PIN&(1<<BIT)) */
//TM1638与MCU的连接关系
#define DIO PD7
#define CLK PD6
#define STB PD4
#define TM1638_DP &PORTD //数据端口,写
#define TM1638_DDR &DDRD //方向控制
#define TM1638_PIN &PIND //引脚端口,读
#define DIO_high GET_BITFIELD(TM1638_DP,DIO)=1
#define DIO_low GET_BITFIELD(TM1638_DP,DIO)=0
#define CLK_high GET_BITFIELD(TM1638_DP,CLK)=1
#define CLK_low GET_BITFIELD(TM1638_DP,CLK)=0
#define STB_high GET_BITFIELD(TM1638_DP,STB)=1
#define STB_low GET_BITFIELD(TM1638_DP,STB)=0
#define DIO_IN GET_BITFIELD(TM1638_DDR,DIO)=0 //输入状态
#define DIO_OUT GET_BITFIELD(TM1638_DDR,DIO)=1 //输出状态
#define DIO_READ GET_BITFIELD(TM1638_PIN,DIO) //读引脚电平
/*
#define DIO_IN DDRD&=~(1<<PD7) //输入状态
#define DIO_OUT DDRD|=(1<<PD7) //输出状态
#define DIO_READ PIND&(1<<PD7) //读引脚电平
//引脚定义
剩余7页未读,继续阅读
qq363546178
- 粉丝: 4
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页