资源简介
用两片ATmega16做了个SPI双机通信的仿真,开发环境为ICCAVR ,没有用到中断,只须修改头文件便可移值到GCC上去。
代码片段和文件信息
#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--;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 92692 2008-11-01 13:55 two_spi.DSN
文件 1166 2008-11-01 13:07 display._h
文件 1236 2008-11-04 12:00 salve._c
文件 3438 2008-11-03 13:52 two_spi.PWI
文件 3953 2008-11-01 13:50 display.c
文件 1166 2008-11-01 13:11 display.h
文件 3953 2008-11-01 13:49 display._c
文件 49319 2008-10-05 10:42 Last Loaded spi.DBK
文件 1365 2008-11-04 12:09 master._c
文件 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
文件 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
............此处省略6个文件信息
- 上一篇:库仑计芯片4150手册中文版
- 下一篇:MineSweeper
相关资源
- VCSEL激光器的Pspice模型文件
- spiflash 驱动代码
- ad7794_spi操作源文件
- ADXL345 STM32 SPI 代码亲测可用
- 图像压缩,使用SPIHT算法进行图像压缩
- 基于80C51的RS485双机通信程序_01
- Auto Spice CMMI 26262差异对比
- 自己编写的使用Verilog通过SPI读写EEP
- Hspice使用详细教程
- FlashWavRecorder(eguid修改版).zip
- AVR_PQ1A.H
- SPI总线操作时序详解
- SPI从机通信设置
- SPI_OLED硬件与软件
- 基于Atmega16湿度传感器源代码
- SSM框架(一) 基于eclipseJee搭建Sping
- Verilog版本的SPI程序
- ucos-ii实时嵌入式操作系统在AVR+mega系
- dsPIC对于直流无刷BLDC无传感器电机控
- ad7190的spi通讯
- SPI经典IP内核verilog
- 软件模拟USB AVRUSB
- arduino avrdude 5.11.1 for Windows with JesseJ
- PIC单片机SPI通信 带proteus仿真
- 基于ti 的单片机msp430g2553的硬件spi控制
- MSP430SPI调试AD7708
- STM32F10x_SPI硬件接口读写Flash25Q16.zip
- 力天电子AVR源代码
- MFRC522与89C52单片机通信参考例程
- 可配置式GPIO模拟SPI总线方法的设计与
评论
共有 条评论