80C51单片机通过模拟SPI口驱动UZZ9001读写操作

发布者:会飞的笨鱼最新更新时间:2015-06-24 来源: 51hei关键字:80C51  单片机  模拟SPI口  UZZ9001  读写操作 手机看文章 扫描二维码
随时随地手机看文章
#include   
#include   
#include    
#include   
sbit CS  = P2^0;   
sbit CLK = P2^1;   
sbit DATA= P2^2;   
/*宏定义8155的A口,B口和控制口*/   
#define PA8155 XBYTE[0x7101]   
#define PB8155 XBYTE[0x7102]   
#define COM8155 XBYTE[0x7100]   

//显示[0,1,2,3,4,5,6,7,8,9,A,b,c,d,e,f]的代码;   
unsigned char code  Table[16]={0X0FC,0X60,0X0DA,0X0F2,0X66,0X0B6,0X0BE,0X0E0,0X0FE,0X0F6,0xee,0x3e,0x9c,0x7a,0xde,0x8e};   
unsigned char Buf[4]={0,0,0,0};             //对应四个数码管显示数据的缓冲区   


void delay(unsigned int time)  //延时                                           
{      
    while(time--);     
}   

/*************************************************  
函数名称:数码管显示  
功能:将四个缓冲区单元的内容分别显示到四个数码管上面  
参数:unsigned charp *Bufptr  
返回值:无  
**************************************************/   
void DISP_LED(unsigned char *Bufptr)   
{   
    unsigned char disi;   
    unsigned char BitCT=0X10;   
    for(disi=0;disi<4;disi++)   
    {   
        PA8155=BitCT;                                       //选中个位数码管   
        PB8155=Table[*Bufptr++]+(disi==1);                          //取段码   
        BitCT=_crol_(BitCT,1);                              //左移一位   
        delay(500);   
    }   
}   


unsigned int uzz9001(void)   
{   
    unsigned int i,temp=0;   
    CLK=1;   
    CS=1;   
    delay(5);   
    CS=0;   
    delay(1);   
    i=16;   
    while(i--)   
    {   
        temp<<=1;   
        CLK=0;   
        delay(5);   
        CLK=1;   
        if(DATA==1)   
            temp |=0x0001;   
        else   
            temp &=0xfffe;   
        delay(5);   
    }   
    CS=1;   
    return(temp);   
}   

float angle(void)   
{   
    unsigned int i,temp0,temp1,temp2=0;   
    float jiaodu;   
    for(i=0;i<8;i++)   
    {   
       temp0=uzz9001();   
       temp1=temp0&0x3f00;   
       temp1>>=1;   
       temp0&=0x007f;   
       temp0=temp0+temp1;   
       temp2+=temp0;   
    }   
    jiaodu=temp2*180.000/65536.000;   
    return(jiaodu);   
}   


void main()   
{   
  unsigned char count;   
  unsigned int jiaodu;   
  COM8155=0x03;   
  TMOD=0X01;   
  TH0=0X3c;       //初始化,定时50MS   
  TL0=0Xb0;   
  count=0;   
  TR0=1;   

  while(1)   
    {   
       DISP_LED(Buf);   
       if(TF0==1)    
       {   

          TF0=0;   
          count++;   
          if(count==10)   //20*50MS=1S   
          {   
              count=0;   
              jiaodu=(unsigned int) (angle()*10.0);   
               DISP_LED(Buf);   
              Buf[3]=jiaodu/1000;   
              Buf[2]=jiaodu%1000/100;      
              Buf[1]=jiaodu%100/10;   
              Buf[0]=jiaodu%10;   

          }   
       }   
    }   

}   
关键字:80C51  单片机  模拟SPI口  UZZ9001  读写操作 引用地址:80C51单片机通过模拟SPI口驱动UZZ9001读写操作

上一篇:51单片机_1602液晶自定义心形图案
下一篇:51单片机驱动8*8LED点阵屏显示沙漏形状汇编程序

推荐阅读最新更新时间:2024-03-16 14:04

处理单片机的未使用引脚
通常我们并不会把所有的单片机的引脚都用完,有时候我们也在同一个产品上分高低配,因此如何对待一些不使用的引脚就成了一个问题。首先我们看一下单片机引脚的结构。 我们可以发现,一般单片机的IO口都是可以配置的。 CMOS 器件引脚由N沟道和P沟道场效应管,通常在一个时刻,只有一个管子是开通的,但是,有一个非常短的时间转换期,这两种管子都会部分导通,在一个管子关闭而另一个开启的时候。一个没有端接的输入口可能振荡或在一个中间电平上浮动,导致所有场效应管设备都将在一个微导通的状态,导致了管子的损耗,增加了噪声,并要消耗额外的电源电流。 (Input Only)输入专用管脚 1.使用上拉或下拉电阻,将每个未使用的引脚拉到VSS或V
[单片机]
处理<font color='red'>单片机</font>的未使用引脚
AVR单片机(学习ing)—(十一)、ATMEGA16驱动12864—01—①
十一、ATMEGA16驱动12864液晶(驱动器为HD61202) 十一—(01)、今天只是个简单的动态的驱动~~(以后还会更新的~~移位什么的~~毕竟这些显示屏还是挺重要的~~而且更重要的是赶紧买板子~~ ) 先上图片~~ 这个是用ATMEGA16仿真的(我真的很疼~~对比一下下面51仿真的,数据被压缩,完全不能理解~~数据完全一样~~) 然后是程序: IAR11_1.c //------------------------------------------------------------------------------ //main #include ioavr.h #include intrinsic
[单片机]
AVR<font color='red'>单片机</font>(学习ing)—(十一)、ATMEGA16驱动12864—01—①
基于PIC16F877 单片机的低成本、多回路温度控制系统
1.引言 对于塑料制瓶工艺, 塑料加热处于溶融状态, 经高压注射成为管胚, 短时间冷却以后, 经过高压空气的吹胀, 在制瓶模具中成型。其工艺特点之一是: 溶融状态下的塑料定时流动; 成为管胚之后, 将与外部空气接触 2 秒钟时间左右, 产品质量不可避免地受到环境温度的影响。 制瓶工艺要求在不同的制瓶过程中, 恒定在不同的温度下, 其温度控制是制瓶的关键技术之一。目前这种设备的温度控制装置通常采用单回路的通用温度控制仪表, 温度控制无法与工艺过程直接产生联系, 使得温度控制达不到最优状态, 而且受到环境温度的影响, 必须随环境温度的变化调整温度控制参数, 否则产品质量受到影响。另一方面, 单回路的通用温度控制仪表价格也比较高, 且多
[单片机]
基于PIC16F877 <font color='red'>单片机</font>的低成本、多回路温度控制系统
N76E003 单片机 IIC 软模拟
/* -----------------------------------------头文件-----------------------------------------*/ #include iic.h /* -----------------------------------------宏定义-----------------------------------------*/ #define IIC_SDA(N) IIC_SDA = N #define IIC_SCL(N) IIC_SCL = N /*选择SDA的数据方向*/ #define IIC_SDA_Input() {P13_PushPull_M
[单片机]
集成三相桥式驱动的微控制器—AiP8F7201
简介; 常规的无刷直流电机没有换向器和电刷,需要配置适当的驱动器控制电机换向。中微爱芯电子有限公司推出的AiP8F7201将三相桥式驱动器和微控制器集成在一块IC上,相比于传统的无刷直流电机控制方案(控制器+驱动器)减小了PCB面积和不必要的外围元件,更小的模块意味着更短的信号路径和更少的杂散电感和电容,提高了系统可靠性。 AiP8F7201产品特点; 产品性能; 1T高速高性能8051CPU 1K字节XRAM,32K字节FLASH 19个可编程多功能I/O 三路定时器Timer0/Timer1/TimerC和一路UART0 8个内部中断源和2个外部中断源 2组12bitADC 2V~5.5V宽工作电压 3个90V半桥栅极驱动
[嵌入式]
集成三相桥式驱动的<font color='red'>微控制器</font>—AiP8F7201
自制单片机之九……写给对制做并口ISP下载线有疑惑的朋友
一、器件的选用   制做并口ISP下载在网上有很多的电路和对应的PC端下载软件。很多人疑惑,不知该用哪张图,用哪个下载软件。我看了一下,采用的器件主要是74HC373、74HC541和74HC244。其实用哪个器件都可以,基本上用哪个软件也都可以使用。只要搞清了它们的并口引脚和控制线的控制方法。我先上这几个器件的图: iframe id="iframe_0.24380238400772214" src="data:text/html;charset=utf8,%3Cimg%20id=%22img%22%20src=%22http://hiphotos.baidu.com/txz01/pic/item/cbde31d02c5df
[单片机]
自制<font color='red'>单片机</font>之九……写给对制做并口ISP下载线有疑惑的朋友
GP超霸变身 改装成自停放电器
除了最早出现的日系电池,GP超霸是最先出现在国内市场上的非日货。GP全称 Golden Peak,是一家地道的澳洲公司。本部和总厂位于澳大利亚,主要生产供给欧美日的产品,品质一流,售价也与日系电池是同档次。马来西亚也有一家分厂,生产的电池销往除欧美日和 中国 大陆的全球其它地方。中国大陆销售的GP呢,当然是GP惠州分厂自产自销的,不同分厂生产的电池则很明显的货分三档...... 另外,由于国内GP电池上市早、 品牌 知名度较高加上价格相对低、销量大,假冒产品也一直很泛滥。 一个 设计 优秀的充电器或放电器,电池夹接触电阻是个很重要的问题。若电池夹没有去重视没有去用心做好,足以让整个产品功亏一篑。 看了西风瘦马兄的强帖《充电
[模拟电子]
GP超霸变身 改装成自停放电器
硬件小百科:单片机串行介绍
串行口是单片机与外界进行信息交换的工具。 ■ 8051单片机的通信方式有两种: 并行通信:数据的各位同时发送或接收。 串行通信:数据一位一位次序发送或接收。 参看下图: 串行通信的方式包括异步通信和同步通信。 异步通信 它用一个起始位表示字符的开始,用停止位表示字符的结束。其每帧的格式如下: 在一帧格式中,先是一个起始位0,然后是8个数据位,规定低位在前,高位在后,接下来是奇偶校验位(能省略),最后是停止位1。用这种格式表示字符,则字符能一个接一个地传送。 在异步通信中,CPU与外设之间必须有两项规定,即字符格式和波特率。字符格式的规定是双方能够在对同一种0和1的串理解成同一种意义。原则上字符格式能由通信的双方自由
[单片机]
硬件小百科:<font color='red'>单片机</font>串行<font color='red'>口</font>介绍
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved