资源简介
用两片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例程大全
相关资源
- Spire API文档
- The direction of synaptic plasticity mediated
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51模拟SPI读写SD卡(包括Fat和Fat32文件
- 28335写的用spi读取传感器数据并用CA
- STM32F103 CC2500完整驱动(模拟SPI)
- MCGS与单片机通信
- 手机短信api接口(源代码)
- atmega16硬件产生方波的程序
- cs5530的SPI程序
- 9s12单片机SPI功能代码
- stm32 用SPI 方式读写 SDHC
- SPI Master 的Verilog源代码
- Spire.Doc 破解版
- Spin-1目标的广义parton分布的多项式和
- 介子和S波氘核的四极矩以及对spin-1系
- 基于SPCE061A和PTR8000的模拟SPI总线通信
- 用8位spi实现16位spi
- linux SPI设备注册和驱动小结
- 用Verilog语言写的CPLD和MCU通讯的SPI接口
- Spirent iTest用户手册详细介绍iTest的各
- 精确结果为3d N $$ \\ mathcal {N} $$ = 2 S
- 从Poincaré代数的闭合中得
- Temperature dependence of electron-spin cohere
- QCD中三个循环处的Spin-2形状因子
- STM32分别以串口硬件SPI模拟并口驱动
- stm32利用spi驱动tm1803
- ATmega16A DataSheet
- 戴尔Inspiron笔记本 摄像头工具webcam
- 戴尔DELL Inspiron 14R N4010网卡驱动 最新
评论
共有 条评论