51单片机总线与非总线的程序对比

发布者:清新时光最新更新时间:2016-06-08 来源: eefocus关键字:51单片机  总线  非总线 手机看文章 扫描二维码
随时随地手机看文章
#include
#include 
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="The distance is ";
uchar code table1[]="     00.0cm     ";
sbit shuru=P1^0;
sbit yidianling=P1^0;
sbit yidianyi=P1^3;//延时
void delay(uint z)
{
    uint x,y;
    for(x=z;x>0;x--)
        for(y=110;y>0;y--);
}

//1602写地址
void write_com(uchar com)
{
    yidianling=0;
    yidianyi=0;
    P0=com;
    delay(5);
    shuru=1;
    delay(5);
    shuru=0;
} 
//1602写数据                                                                        
void write_data(uchar date)
{
    yidianling=1;
    yidianyi=0;
    P0=date;
    delay(5);
    shuru=1;
    delay(5);
    shuru=0;
}
//初始化
void init()
{
    uchar num;
    shuru=0;    
    write_com(0x38);
    write_com(0x0c);
    write_com(0x06);
    write_com(0x01);
    write_com(0x10);
    write_com(0x80);
    for(num=0;num<16;num++)
    {
        write_data(table[num]);
        delay(2);
    }
    write_com(0x80+0x40);//0x53
    for(num=0;num<16;num++)
    {
        write_data(table1[num]);
        delay(2);
    }
}
//1602选 写的位置和数据
void write_sfm(uchar add,uchar date)
{
    write_com(0x80+0x40+add);
    write_data(0x30+date);    
}
//主函数
void main()
{
    P1=0xff;
    P0=0xff;
    init();
    while(1);
}

  板子原理图是当时自己画的,目测找不到了。T T.但是看程序还是可以看出点什么吧~

  这是以前的程序了,当时是用来红外测距,测的数据经AD转换显示出来,我把AD部分都删去了。

  很明显,非总线型的1602程序就是完全按照1602数据手册上的高低电平来控制的,写了很多代码。

接下来,看总线型的1602显示程序吧:

#include 
#include 
#define LCD_COM XBYTE[0XD]
#define LCD_Data XBYTE[0xD001]
delay()
{
 unsigned short i,j;
 for(i=0;i<=200;i++)
 {
  for(j=0;j<=200;j++);
 }
}
void main()
{ 
 LED=0X55;
 LCD_COM=0X01;
 delay();
 LED=0XAA;
 delay();
 LED=0X55;
 LCD_COM=0X01;
 delay();
 LED=0XAA;
 LCD_COM=0X38;
 delay();
 LCD_COM=0X38;
 delay();
 LCD_COM=0X38;
 delay();
 LCD_COM=0X38;
 delay();
 LCD_COM=0X08;
 delay();
 LED=0XAA;
 LCD_COM=0X01;
 delay();
 LCD_COM=0X06;
 delay();
 LCD_COM=0X0F;
 delay();
 while(1);
}

 

眨眼一看,程序确实少了很多,如果要写数据,在while(1);前面加数据便可。

LCD_Data='a';

 

先上板子的原理图:

51单片机总线与非总线的程序对比
51单片机总线与非总线的程序对比

简单分析一下:

  P0口线既用作地址线,又用作数据线(分时复用),因此需要加一个8位的锁存器。

  使用ALE作为地址锁存的通选信号,以实现低8位地址的锁存。

  地址I/O是从P2.7到P2.0,接着P0.7到P0.0,这里可以很明显的理解

#define LCD_COM XBYTE[0XD]
#define LCD_Data XBYTE[0xD001]

  这两句话了。

  剩下直接看main()函数里面的了,里面也是按照1602的资料写的,但是是直接给出的,不是看高低电平判断延时时间写的,省事不少呀。

 

  虽然只是简单阐述了一下,但是按照总线型来设计电路图,来写程序,真心好。当然除此之外还有CAN总线,IIC,SPI,以及dala公司的一根线搞定,。再说一下总线吧,三总线简称ADC,这总是让我想起ADC的芯片,A是地址总线,D是数据总线,C是控制总线,是控制片外ROM、RAM和I/O的。这学期学单片机这门课程,之前没有上过微机原理那些,老师几个课时直接讲完,实在是精彩。当时也说过了解了总线型的话后面开发ARM芯片都很容易了,唉,我要走的路还很长呀。

关键字:51单片机  总线  非总线 引用地址:51单片机总线与非总线的程序对比

上一篇:51单片机多任务机制的实现策略
下一篇:51单片机实现对24C02进行页写、顺序读取并显示验证

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

现场总线控制系统在火电厂的应用和前景
20世纪80年代,DCS(数字式分散控制系统)开始进入电站自动化控制领域,由于其在安全生产与经济效益等方面带来的正面作用是以往任何一种控制系统无法与其相提并论的,因此,DCS在电站被广泛使用。 目前300MW以上机组,无论是国产机组还是引进机组,无一例外采用DCS,就连200MW、100MW机组也在使用DCS来进行改造,甚至于一些自备电厂的25MW、12MW的火电机组也采用DCS系统。 那么,作为20世纪90年代才走向实用化的,在自动化领域内最为新型的控制系统——现场总线控制系统(fieldbus control system,FCS),能否也像DCS系统一样被电站接受并广为推广使用 1 FCS与DCS相比较最显著的特
[嵌入式]
USB总线的体系结构
USB(通用串行总线),由Intel公司提出,带宽为12Mbps,与传统接口总线相比,主要优点有三个,1.可接入多达127个设备,目前计算机外设越来越多,PC机内有限的插槽和接口已经不能满足要求,USB缓解了这一矛盾。2.可以热插拔,在电脑通电的情况下可以随时热插拔所连接的设备。3.可即插即用。   设计USB的设备就必须深入了解USB的体系结构。USB通用串行总线同其他串行并行接口不同,它是一个软硬件相结合的系统体系,对于刚刚进入USB设计的工程师来说,这个结构是复杂的。为此,下面论述了USB的一些体系结构和基本概念。 USB总线的总体结构 整个USB总线可以分为3个部分进行描述:USB连接、USB设备、USB主机(如图1
[嵌入式]
51单片机I/O口使用经验
按常规,在51端口(P1、P2、P3)某位用作输入时,必须先向对应的锁存器写入1,使FET截止。一般情况是这样,也有例外。所谓IO口内部与电源相连的上拉电阻而非一常规线性电阻,实质上,该电阻是由两个场效应管并联在一起:一个FET为负载管,其阻值固定;另一个FET可工作在导通或截止两种状态(姑且叫可变FET)。使其总电阻值变化近似为0或阻值较大(20千欧--40千欧)两种情况。当和端口锁存器相连的FET由导通至截止时,该阻值近似为0,可将引脚快速上拉至高电平;当和锁存器相连的FET由截止至导通时,该电阻呈现较大阻值,限制了和端口锁存器相连的FET的导通电流。 51I/O口作为输入端和外部信号相连有时必须考虑上述特性,本人在设计LT
[单片机]
STM32 APB1总线时钟配置问题
调试载波通信系统的时候遇到这样一个问题:两台设备分别为A何B,他们都使用了定时器2~4来进行通讯,A设备的PCLK1配置为HCLK,而B设备的PCLK1配置为1/2HCLK,通讯过程发现A,B两个设备偶尔能通讯偶尔不能通讯,表现出通讯部稳定。理论上应该完全不能通讯才是,深入研究STM32F101C8T6的数据手册发现问题所在,截图如下: 图1 STM32功能框图 图2 STM32 时钟系统 从图1可以看到APB1总线挂接了TIM2~4,UART2~2...WWD等设备。然后从图2中可以看到只有外设直接使用了APB1的时钟作为实际时钟,而TIM2~4根据APB1的时钟进行了调整。因此当设备B的PCLK1配置为1/2HCL
[单片机]
STM32 APB1<font color='red'>总线</font>时钟配置问题
基于51单片机的大气温度采集和记录系统
1 引 言 大气温度的测量具有重要意义, 一般是采用各种温度计进行人工测量, 并定时记录测量结果, 这种方法费时费工, 十分不便。本文提出了一种非常小巧的大气温度测量和记录装置, 能对范围为- 55 ℃ ~ + 125 ℃ 的温度进行定时自动测量, 同时记录测量结果, 精度最高可达0. 0625℃ 。 2 系统原理 系统结构如图1所示。系统主要由AT89C2051单片机和外围电路构成。其基本思想是由串行时钟芯片DS1306 提供时间基准, 由温度传感器DS18B20进行温度测量, 温度数据存储在DS2433中。AT89C2051单片机负责整个系统的协调控制。 AT89C2051是一款低电压, 高性能的CMOS 8位单片机, 片内含
[单片机]
基于<font color='red'>51单片机</font>的大气温度采集和记录系统
51单片机--时钟芯片ds1302
1.ds1302的性能指标 1)可以计算2100年之前的秒、分、时、日、星期、月、年,并且可以调整闰年。 2)内部有31个字节静态RAM,供用户访问 3)串行数据传送方式(SPI3线接口) 4)工作电压:2.0~5.5v 5) 工作电流:2v时,小于300nA(功耗低) 6)时钟或RAM数据的读写,有两种传送方式:单字节传送、多字节传送 7)主电源和负电源双电源供电(备份电源可以用电池或大电容实现) 2.SPI 1)spi的中文意思是“串行外围接口” 2)spi的应用场景:EEPROM,FLASH,实时时钟,AD转换器,数字信号处理器,数字信号解码器 3)spi接口是在CPU和外围低速器件之间进行同步串行数据传输。在主器件的移
[单片机]
<font color='red'>51单片机</font>--时钟芯片ds1302
51单片机 用数码管显示动态检测结果
注:本数码管为共阴极,P2为位选口,P0为数据口 本实验是一个60s计数器,当满60s后,此时又从00开始计数 #include reg51.h unsigned char Tab ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char int_time; unsigned char second; void delay(void) { unsigned char i; for(i=0;i 250;i++) ; } void Display(unsigned char k) { P2=0xfd; P0=Tab ;
[单片机]
基于FPGA的PCI总线接口设计
摘 要:PCI是一种高性能的局部总线规范,可实现各种功能标准的PCI总线卡。本文简要介绍了PCI总线的特点、信号与命令,提出了一种利用高速FPGA实现PCI总线接口的设计方案。 关键词:PCI总线;信号;命令;协议 ---在现代数据采集及处理系统中,ISA、EISA、MCA等扩展总线已无法适应高速数据传输的要求,而PCI局部总线以其优异性价比和适应性成为大多数系统的主流总线。 PCI总线特点 ---PCI总线宽度32位,可升级到64位;最高工作频率33MHz,支持猝发工作方式,使传输速度更高;低随机访问延迟(对从总线上的主控寄存器到从属寄存器的写访问延迟为60ns);处理器/内存子系统能力完全一致;隐含的中央仲裁器;多路复
[半导体设计/制造]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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