资源简介
用两片AVR(ATmega16)单片机 实现双机通信(双向,并带反馈)。开发环境为ICCAVR。文件中不但有完整的源代码,还有用PROTEUS作的仿真图。-
代码片段和文件信息
#include “display.h“
//===================MAX7219的核心函数,接收单片机的数据=====================
void SEND(unsigned char addunsigned char dat)//发送2个字节的子函数第一个字节为地址第二个字节为操作数
{
unsigned char adsjx;
unsigned int i;
i=0;
MAX7219_LOAD_0;//load=0
while(i<16)
{
// if(add==1||add==5) dat=dat|0x80; //小数点问题解决
if (i<8){ads=add;}
else {ads=dat;}
for(j=8;j>=1;j--)
{
x=ads&0x80;
if (x==0){MAX7219_DIN_0;}
else {MAX7219_DIN_1;}
ads=ads<<1;
MAX7219_CLK_1;//clk=1
MAX7219_CLK_0;//clk=0
}
i=i+8;
}
MAX7219_LOAD_1;//load=1
}
//=====================================
//==============SEG亮度================
void SEG_LIGHT(unsigned light)
{
SEND(0x0alight&0x0f);
}
//===================================
//==============SEG开================
void SEG_OPEN(void)
{
SEND(0x0c0x01);
}
//===================================
//==============SEG关================
void SEG_CLOSE(void)
{
SEND(0x0c0x00);
}
//===================================
//==============SEG清屏==============
void SEG_CLEAR(unsigned char part)
{
switch(part)
{
case 0://左
{
SEND(0x010x0f);
SEND(0x020x0f);
SEND(0x030x0f);
SEND(0x040x0f);
}break;
case 1://右
{
SEND(0x050x0f);
SEND(0x060x0f);
SEND(0x070x0f);
SEND(0x080x0f);
}break;
default://全部
{
SEND(0x010x0f);
SEND(0x020x0f);
SEND(0x030x0f);
SEND(0x040x0f);
SEND(0x050x0f);
SEND(0x060x0f);
SEND(0x070x0f);
SEND(0x080x0f);
}break;
}
}
//==============SEG初始化=============
void SEG_INIT(void)
{
MAX7219_OUT_DDR|=(1< MAX7219_OUT_PORT|=(1< SEND(0x0c0x01);
SEND(0x0b0x07);
SEND(0x0a0x05);
SEND(0x090xff);
SEG_CLEAR(3);
}
//=============SEG左四显示数字==============
void SEG_L(unsigned int number)
{
unsigned char i=4;
SEND(0x010x0f); //先清除左四位左四位黑屏
SEND(0x020x0f);
SEND(0x030x0f);
SEND(0x040x0f);
if(number>9999)//要显示的数值超过4位,则显示4个H
{
SEND(0x010x0c);
SEND(0x020x0c);
SEND(0x030x0c);
SEND(0x040x0c);
}
else//小于四位可以显示
{
/* for(i=4;i>0;i--)
{
SEND(inumber%10);
number=(number-number%10)/10;
} */
do
{
SEND(inumber%10);
number=(number-number%10)/10;
i--;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3953 2008-11-01 13:50 display.c
文件 1166 2008-11-01 13:11 display.h
文件 3953 2008-11-01 13:49 display._c
文件 1166 2008-11-01 13:07 display._h
文件 49319 2008-10-05 10:42 Last Loaded spi.DBK
文件 1365 2008-11-04 12:10 master.c
文件 2375 2008-11-04 12:10 MASTER.cof
文件 1332 2008-11-04 12:10 MASTER.dbg
文件 69 2008-11-04 12:10 master.dp2
文件 808 2008-11-04 12:10 MASTER.hex
文件 11742 2008-11-04 12:10 master.lis
文件 11 2008-11-04 12:10 MASTER.lk
文件 6620 2008-11-04 12:10 MASTER.lst
文件 555 2008-11-04 12:10 MASTER.mak
文件 2089 2008-11-04 12:10 MASTER.mp
文件 2822 2008-11-04 12:10 master.o
文件 999 2008-11-04 12:10 master.prj
文件 4924 2008-11-04 12:10 master.s
文件 43 2008-11-01 20:01 MASTER.SRC
文件 1365 2008-11-04 12:09 master._c
文件 1286 2008-11-04 12:07 salve.c
文件 5459 2008-11-04 12:07 SALVE.cof
文件 3581 2008-11-04 12:07 SALVE.dbg
文件 175 2008-11-04 12:07 salve.dp2
文件 2516 2008-11-04 12:07 SALVE.hex
文件 36508 2008-11-04 12:07 salve.lis
文件 10 2008-11-04 12:07 SALVE.lk
文件 21798 2008-11-04 12:07 SALVE.lst
文件 654 2008-11-04 12:07 SALVE.mak
文件 2440 2008-11-04 12:07 SALVE.mp
文件 8699 2008-11-04 12:07 salve.o
............此处省略7个文件信息
- 上一篇:STM32+W5500(远程更新程序的上位机)
- 下一篇:AVR M16例程大全
相关资源
- sony IMX290 driver (SPI)
- Automotive SPICE PRM v4.5中文
- 乐鑫esp8266 NONOS SDK 3.0编程使用 SPI 驱动
- ADXL345加速度传感器SPI通信程序
- VHDL控制进行SPI读写
- SPI FLASH 仿真模型
- SPI按键显示接口设计
- dspic33的PWM调试程序
- dspic33f的AD采样程序
- ZigBee 协议在Linux上的实现
- PCAP01_SPI_main编程代码.zip
- 50nm工艺 CMOS bsim4模型
- tdc GPX2芯片配置程序
- SPI协议Verilog实现
- STM32F103X SPI2 DMA 驱动LCD.zip
- 基于ATMega16的freemodbus主站程序移植
- RC带通滤波器pspice仿真电路
- SSP作SPI从机实验.rar
- 基于粒子群算法优化Spiking神经网络
- 基于STM32F4xx,MS5611气压传感器使用S
- STCMCU-SPI演程
- ISD1700SPI通讯总结
- HSpice电路仿真软件教程与
- 32位SPI通信FPGA
- STM32-硬件SPI-4004语音播放实验
- OrCAD的PSpice元件库
- SPI通信协议中文版SPIV3
- MPU6050的DMP程序 基于ATMEGA16 可移植
- ATmega16模数转换
- 基于stm32f103c8t6的已实现模拟iic和模拟
评论
共有 条评论