首页 文章 精选 留言 我的

精选列表

搜索[文件对比],共10000篇文章
优秀的个人博客,低调大师

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

不多说,先来非总线型的51的1602液晶显示器的显示程序: #include<reg52.h> #include <intrins.h> #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 <AT89X51.H> #include <absacc.h> #define LCD_COM XBYTE[0XD000] #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'; 先上板子的原理图: 简单分析一下: P0口线既用作地址线,又用作数据线(分时复用),因此需要加一个8位的锁存器。 使用ALE作为地址锁存的通选信号,以实现低8位地址的锁存。 地址I/O是从P2.7到P2.0,接着P0.7到P0.0,这里可以很明显的理解 #define LCD_COM XBYTE[0XD000] #define LCD_Data XBYTE[0xD001] 这两句话了。 剩下直接看main()函数里面的了,里面也是按照1602的资料写的,但是是直接给出的,不是看高低电平判断延时时间写的,省事不少呀。 虽然只是简单阐述了一下,但是按照总线型来设计电路图,来写程序,真心好。当然除此之外还有CAN总线,IIC,SPI,以及dala公司的一根线搞定,哈哈。再说一下总线吧,三总线简称ADC,这总是让我想起ADC的芯片,A是地址总线,D是数据总线,C是控制总线,是控制片外ROM、RAM和I/O的。这学期学单片机这门课程,之前没有上过微机原理那些,老师几个课时直接讲完,实在是精彩。当时也说过了解了总线型的话后面开发ARM芯片都很容易了,唉,我要走的路还很长呀。 本文转自我爱物联网博客园博客,原文链接:http://www.cnblogs.com/yydcdut/p/3480811.html,如需转载请自行联系原作者

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册