用百度云网盘怎么加好友啊怎么加你?

21ic官方微信-->
后使用快捷导航没有帐号?
请完成以下验证码
查看: 2398|回复: 4
MPU6050 读出来数据为0
&&未结帖(10)
主题帖子积分
实习生, 积分 6, 距离下一级还需 44 积分
实习生, 积分 6, 距离下一级还需 44 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 6, 距离下一级还需 44 积分
实习生, 积分 6, 距离下一级还需 44 积分
操作6050其他寄存器 都正常&&who am i的地址也读出来了& &但是加速度计和陀螺仪都没有读数是什么原因
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
主题帖子积分
专家等级:结帖率:0%打赏:0.00受赏:10.00
主题帖子积分
有可能是软件问题,以前很多网友反馈的结果大都这样。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
实习生, 积分 33, 距离下一级还需 17 积分
实习生, 积分 33, 距离下一级还需 17 积分
主题帖子积分
专家等级:结帖率:50%
主题帖子积分
实习生, 积分 33, 距离下一级还需 17 积分
实习生, 积分 33, 距离下一级还需 17 积分
LEADIY-M3C MPU6050 HMC5883L BMP180/BMP085 串口姿态模块
通信接口:串口,波特率115200
数据更新:每2.2MS---2.5MS输出一次姿态角度
小板尺寸:16mm*26mm
引脚间距:2.54mm(100mil)
供电电源:3V--5V(板上集成LDO)
通过串口或IIC接口读数据
本帖子中包含更多资源
才可以下载或查看,没有帐号?
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
初级技术员, 积分 75, 距离下一级还需 25 积分
初级技术员, 积分 75, 距离下一级还需 25 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
初级技术员, 积分 75, 距离下一级还需 25 积分
初级技术员, 积分 75, 距离下一级还需 25 积分
可能是没初始化好
喜欢吃甜食
主题帖子积分
实习生, 积分 18, 距离下一级还需 32 积分
实习生, 积分 18, 距离下一级还需 32 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 18, 距离下一级还需 32 积分
实习生, 积分 18, 距离下一级还需 32 积分
可能是没初始化好
什么没初始化好呢。能不能告诉我下呢
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
技术新星奖章
人才类勋章
时间类勋章
时间类勋章
技术高手奖章
人才类勋章
热门推荐 /2单片机开发板原理图
单片机开发板原理图
一 : 51单片机板子原理图二 : 单片机开发板原理图及其应用单片机开发板是一块电路板和诸多元器件组合在一起供平时学习、实验、开发等使用;是产品正式批量生产前,对其进行设计和开发的[)板子。  单片机开发板用途单片机开发板是用于学习51、STC、AVR型号的单片机实验设备。根据单片机使用的型号又有51单片机开发板、STC单片机开发板、AVR单片机开发板。常见配套有硬件、实验程序源码、电路原理图、电路PCB图等学习资料。例如电子人单片机开发板,针对部分学者需要特别配套有VB上位机软件开发,游戏开发等教程学习资料。开发此类单片机开发板的公司一般提供完善的售后服务与技术支持。单片机开发板优势有以下几点:1、速度快。速度可以达到1MIPS/秒,理论上是传统的51的12倍。2、片上资源丰富,包括:Boot代码区、16K的Flash、512字节的EEPROM、1K的SRAM、JTAG接口,仿真和下载、支持ISP 下载、三个带PWM的定时器、8路10位的AD转换器、UART(异步串口)、SPI(同步串口)、看门狗、TWI(IIC)接口、模拟比较器、3两个通 用I/O口。3、驱动能力强。I/O口可以直接驱动数码管、LED、继电器等器件。4、功耗低。低功耗虽然比不上430单片机,但是在单片机中也是佼佼者。5、可选择型号种类多,各种不同的型号可以满足不同的需求。6、性价比高。在高性能的前提下,并没有增加芯片的价格,价格可以和51相比,而功能却比51强的多。7、保密性好。在开发产品时,很难被解密。单片机开发板原理图单片机开发板原理图通过本文的介绍大家是不是对单片机开发板原理图及其应用有了简单的了解呢?希望对大家有所帮助。三 : 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册TX-1C单片机实验板使用手册天祥电子
Email: TEL: 1TX-1C单片机实验板使用手册目录TX-1C单片机实验板使用手册..................................................................................1目录.............................................................................................................................21.准备工作.................................................................................................................32学习方法介绍..........................................................................................................33.实验例程详细解答..................................................................................................33.1闪烁灯.............................................................................................................43.2流水灯.............................................................................................................63.3单键识别.........................................................................................................83.4 59秒计数器..................................................................................................103.5矩阵键盘检测...............................................................................................133.6利用定时器和蜂鸣器唱歌..........................................................................193.7模数转换ADC0804的应用.........................................................................233.8 数模转换DAC0832的应用........................................................................263.9 DS18B20温度测量显示实验......................................................................283.10 1602字符液晶显示...................................................................................343.11 EEPROM AT24C02实验.........................................................................373.12 串口通讯实验............................................................................................43联系方式...................................................................................................................454. WAVE使用说明...............................................................................................465. KEIL的使用.....................................................................................................516. STC-ISP软件的使用.......................................................................................58天祥电子
Email: TEL: 2TX-1C单片机实验板使用手册1.准备工作拿到实验板后首先需要做的几件事当用户拿到实验板后的第一件事是先看实验板供电是否正常、下载程序功能是否正常、各芯片功能是否都能成功实现,检测方法如下所示:1. 先把产品包装中的四个铜柱及镙母安装在实验板上,具体安装步骤请查看光盘中的视频教程。2. 将包装中的USB线两端分别插接实验板左侧的USB供电接口和电脑USB口,打开实验板上电源,这时会看到实验板左侧开关旁边的电源指示灯会亮,紧接着会看到实验板上数码管或是流水灯都有随机的亮灭现象出现,也有可能只看到电源指示灯亮而无其它现象,这是因为我们在发货前要对产品进行综合测试,单片机内部装有测试时的程序,用户不必奇怪,以上状态说明实验板供电系统正常。3. 安装STC单片机程序下载软件,下载光盘中写好的例程测试各功能是否正常,安装过程及下载方法在视频中都有详细介绍,关于STC单片机程序下载软件的STC-ISP安装,请查看本手册后面的说明或同光盘中的文档。4. 安装单片机编程软件KEIL或是WAVE,这两个软件在产品配套光盘里的软件目录下都有,用户可自由选择使用任何一种软件,这两种软件都支持单片机的C语言或是汇编语言编译,我们推荐用户使用KEIL,在TX-1C配套的单片机视频教学光盘中全部使用的是KEIL软件讲解,在视频教学的第1讲中有详细的KEIL软件建立工程及编译源代码的介绍,请大家自行查看。我们在手册中也做了详细的介绍,请大家查看本手册后面的说明。2学习方法介绍接下来最重要的工作便是跟着配套教学光盘一讲一讲的跟着老师做,把老师每讲的内容都及时的消化,遇到不懂的问题要及时查书,一个个搞明白,不要积累任何小问题,大部分用户都是从零开始学起,讲座中的内容也是从最简单的开始,一步步深入,只要大家愿意学、有信心、有毅力、相信大家跟着教学讲座走10天,之后必将会有非常大的收获。如果用户没有购买配套视频光盘,我们会赠送前三讲的内容,这三讲中非常详细的介绍了KEIL软件的使用方法,讲了流水灯设计流程,实验板上其余的功能就需要靠用户自来对它进行编程并实现它们了,这样学起来只是时间会稍长些,感觉会累点,但只要大家肯努力,终究也一定会学会的。3.实验例程详细解答注意:在我要讲具体实验之前这里有必要先介绍一下本实验板上用到的一些元天祥电子
Email: TEL: 3TX-1C单片机实验板使用手册件的操作方法,对于一个电子制作者或是电子爱好者来说学会怎么样搜索自己需要元件的资料是非常重要的,现在市场上各种各样的芯片非常的多,能实现同一个功能的芯片也有很多种,世界各大芯片制造公司都有生产。所以我们不可能把芯片的功能、名称及详细使用方法都记全,也没有这个必要,但是必须要知道在你需要实现某个功能的时候怎么样才能找到合适的芯片,下面先给大家推荐两个搜索网站:
以上两个网站是中国最大的搜索网站和世界最大的搜索网站,上面几乎可以搜到你需要的任何信息,大家一定要充分利用身边可利用的资源,问别人是最没有办法的办法,当自己在经过多重努力后仍然没有得到最佳答案,这时再去问别人。另外需要提醒大家一点,大部分芯片的资料全是英文,大家学了这么多年英文,现在正是你用它的时候了,对于电子爱好者来说,看芯片的英文介绍就应该达到看汉语一样的水平,建议大家以后装软件全装英文版的,看电影全看国外原声的,最好连自己电脑的操作系统也装英文版的,从点点滴滴中增长知识。再给大家介绍两个查芯片资料的网站: 这里的芯片资料比较全,如果没有找到你要的资料,那可参考,这里有全世界所有的芯片资料,并且每天都在更新。锁存器(74HC573):顾名思义,就是把输入端的数据锁存(或送)到输出端,请看下图中的U3元件,第11角(锁存端)为高电平的时候,右边D0-D7的输入与左边Q0-Q7的输出是直通的,就是说,输入端是什么电平,输出端就是什么电平,可以把它当作不存在。当第11角为低电平的时候,左右两端就被断开了,无论输入端怎么变化,输出端都不会变化,当第11角由低电平变为高电平的一瞬间,输入端的数据立刻被传送到输出端,并且在11角保持为高电平期间,输出端数据始终的输入端数据相同,如果此时我们再次把第11角设置为低电平,那么以后当输入端无论再怎么变化,输出端都不会变化而是保持刚才第11角在下降沿(由高电平到低电平跳变)之间时输入端的值,这样就达到了锁存数据的目的,这也就是所谓的总线设计思路,一个8位的数据线加一个锁存器后就可以扩接多个元件,当选通哪个元件的片选信号,就送数据给那个元件。先说这个元件,以后用到别的元件我们再解释。下面开始讲解例程。3.1闪烁灯[实验要求]点亮与单片机P1.0口相连的发光二极管,延时约0.2S,然后熄灭,再延天祥电子
Email: TEL: 4TX-1C单片机实验板使用手册时约0.2S,再点亮,如此循环下去。[实验目的]初步了解单片机IO口输出高低电平的方法,延时函数的时间估算。 关于延时函数的时间估算问题在视频第二讲有详细演示介绍。[硬件电路][源代码]#include&reg51.h&/**********************************************************上面这行是一个"文件包含"处理。所谓"文件包含"是指一个文件将另外一个文件的内容全部包含进来这里的程序虽然只写了一行,但C编译器在处理的时候却要处理几十或几百行,这里包含reg51.h的目的在于本程序要使用P1这个符号,而P1是在reg51.h这个头文件中定义的。大家可以在编译器目录下面用记事本打开这个文件看看。*********************************************************/sbit P1_0=P1^0; //定义IO口这步的目的是让编//译器知//道P1_0代表的就是单片机的P1.0口void delay02s(void) //延时0.2秒子程序{unsigned char i,j,k; //定义3个无符号字符型变量。for(i=20;i&0;i--) //三个FOR循环用来延时,这里为for(j=20;j&0;j--) //什么是0.2S大家可以用WAVE或KEIL for(k=248;k&0;k--); //设置断点仿真,就可知道大概} //是0.2S了。void main(void) //每一个C语言程序有且只有一个主函数,{天祥电子
Email: TEL: 5TX-1C单片机实验板使用手册while(1) //循环条件永远为真,以下程序一直执行下去。{P1_0=0; // I/O口P1.0输出低电平,小灯被点亮。delay02s(); //延时经过0.2秒。P1_0=1; // I/O口P1.0输出高电平,小灯熄灭。delay02s(); //延时经过0.2秒。}}3.2流水灯[实验要求]单片机P1口相连的8个发光二极管中的一个循环移位点亮,同时蜂鸣器发出滴滴的响声。蜂鸣器用一PNP三极管驱动,集电极(C极)通过蜂鸣器线圈接5V电源,基极(B极)是控制端,发射极(E极)接地,当三极管C,B极PN结正偏时,PN结导通,即B极为低电平时,三极管导通,蜂鸣器发声,视频中有介绍,若大家有疑问可参考模电书。[实验目的]掌握循环移位的工作原理和操作方法,学会使用C51封装好的函数库C51LIB,延时函数的时间估算。[硬件电路]天祥电子
Email: TEL: 6TX-1C单片机实验板使用手册[源代码]#include &reg51.h&#include &intrins.h& //后面要用到它里面的_crol_(k,l)函数这个函数的意思是把一个字符变量k循环左移l位,关于它的说明请查看安装KEIL目录下的\Keil\C51\HLP文件夹里面的c51lib,这个文件里面有各种用C语言封装好的函数库,我们在以后使用其中某些函数时可以直接使用而自己不必再写。unsigned char a,b,k,j; //定义四个字符变量sbit beep=P2^3; // 定义蜂鸣器的接口void delay10ms() //延时子程序,大约延时10ms{for(a=100;a&0;a--)for(b=225;b&0;b--);}void main(){k=0 //先给k一个初值等待移位while(1){天祥电子
Email: TEL: 7TX-1C单片机实验板使用手册delay10ms();beep=0; //打开蜂鸣器delay10ms(); //让它响10msbeep=1; //关闭蜂鸣器j=_crol_(k,1); //把k循环左移一位k=j; //把移完的值再送给kP1=j; //同时把值送到P1口点亮发光二极管} //再次循环}3.3单键识别[实验要求]每按一次独立键盘的S2键,与P1口相连的八个发光二极管中点亮的一个往下移动一位。注意:关于按键去抖动的解释,我们在手动按键的时候,由于机械抖动或是其它一些非人为的因素很有可能会造成误识别,一般手动按下一次键然后接着释放,按键两片金属膜接触的时间大约为50ms左右,在按下瞬间到稳定的时间为5-10ms,在松开的瞬间到稳定的时间也为5-10ms,如果我们再首次检测到键被按下后延时10ms左右再去检测,这时如果是干扰信号将不会被检测到,如果确实是有键被按下,则可确认,以上为按键识别去抖动的原理。[实验目的]独立按键的识别方法、键盘消抖等。[硬件电路]天祥电子
Email: TEL: 8TX-1C单片机实验板使用手册[源代码]#include &reg52.h&sbit BY1=P3^4; //定义按键的输入端S2键 //按键计数,每按一下,count加1unsigned char a,b;void delay10ms(void) //延时程序{unsigned char i,j;for(i=20;i&0;i--)for(j=248;j&0;j--);}key() //按键判断程序{if(BY1==0) //判断是否按下键盘,当单片机上电时所有IO口为高电平,S2键一端接地另一端接P3.4,所以当键被按下时P3.4口直接接地,此时检测P3.4肯定为低电平。{delay10ms(); //延时,软件去抖动干扰if(BY1==0) //再次检测确认按键按下{count++; //按键计数加1if(count==8) //计8次重新计数{count=0; //将count清零}}天祥电子
Email: TEL: 9TX-1C单片机实验板使用手册while(BY1==0);//等待按键释放,如果键未释放则一直在此等待。}}move() //广告灯向下移动移动函数{a=temp&& // 这三句为一个循环移位,相当于前面提到的b=temp&&(8-count);// _crol_()函数,这里是自己写的过程,大家可对比 P1=a|b; //下。}main(){count=0; //初始化参数设置temp=0P1=0P1=while(1) //永远循环,扫描判断按键是否按下{key(); //调用按键识别函数move(); //调用广告灯移动函数}}3.4 59秒计数器[实验要求]使用软件延时的方法实现0-59秒自动计数器,用数码管的前两位显示出来。[实验目的]练习进位操作,数码管动态显示。[硬件电路]天祥电子
Email: TEL: 10TX-1C单片机实验板使用手册[源代码]//59秒自动计数器#include&reg51.h&#define uchar unsigned charuchar j,k,i,a,A1,A2,sbit dula=P2^6; //锁存器控制端定义sbit wela=P2^7;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//数字编码 void delay(uchar i) //延时函数{天祥电子
Email: TEL: 11TX-1C单片机实验板使用手册for(j=i;j&0;j--)for(k=125;k&0;k--);}void display(uchar sh_c,uchar g_c) //显示函数 {dula=0;P0=table[sh_c]; //显示十位dula=1;dula=0;wela=0;P0=0wela=1;wela=0;delay(5); //亮5msP0=table[g_c]; //显示个位dula=1;dula=0;P0=0wela=1;wela=0;delay(5); //亮5ms}void main() //主函数{while(1){second++; //秒加一if(second==60) //判断是否到60second=0; //如果到了则清零A1=second/10; //没到则分离出十位和个位天祥电子
Email: TEL: 12TX-1C单片机实验板使用手册A2=second%10;for(a=50;a&0;a--) //显示部分。至于时间大概是多少{ //请用户用软件仿真看时间约等于1秒display(A1,A2);};//便可,如果需要精确定时请用定时器}}3.5矩阵键盘检测[实验要求]依次按下4*4矩阵键盘上从第1到第20个键,同时在六位数码管上依次显示0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。说明:本实验板上数码管为共阴极。静态数码管显示原理(视频中有详细介绍):这里就共阴极数码管显示原理进行讲解,一位数码管内一共有8个发光二极管,对共阴极来说其8个发光二极管的阴极在数码管内部全部接在一起,也就是“共阴”说法的来源,阳极是独立的,设计电路时一般把阴极接地,当我们从外部给任一个阳极加一个高电平时这个发光二极管就亮了,如果想要出一个8字,并且把右下角的小数点也点亮的话,那可以给8个阳极全总送高电平,想出几就给相对应的发光二极管送高电平,因此我们在显示数字的时候首先做的就是给0-9十个数字编好码,在要它亮什么数字的时候直接把这个编码送到它的阳极就行了。另外说一下,一般的数码管每一段亮至少需要10个毫安的电流,而单片机的IO口送不出如此大的电流,所以我们需要加数码管的驱动电路,可以用上拉电阻的方法,也可以使用专门的驱动芯片,本实验板使用的74HC573,其输出电流较大,足够点亮数码管。本实验板上的六位数码管中每个的相同段号(段指a,b,c,d,e,f,g,h)全部是接在一起的,其中每一个位(阴极)是独立的,所以在做静态显示的时候所有的数码管只能显示相同的数字,当然可以控制显示几位,如果让它们显示不同的数字那就得给每一个数码管加一套驱动电路了。但这样做是没有必要的,后面我们会讲到关于数码管动态显示原理。下面给出本实验板共阴极数码管数字编码天祥电子
Email: TEL: 13TX-1C单片机实验板使用手册矩阵键盘的四行分别与P3.0-P3.3连接,四列分别与P3.4-P3.7连接。[实验目的]学会矩阵键盘的检测,掌握数码管静态显示原理。[硬件电路]键盘电路见3.3[源代码]//4*4键盘检测程序,按下键后相应的代码显示在数码管上#include&reg51.h&sbit beep=P2^3; //蜂鸣器接口天祥电子
Email: TEL: 14TX-1C单片机实验板使用手册sbit dula=P2^6; //控制数码管段选的锁存器锁存端sbit wela=P2^7; //控制数码管位选的锁存器锁存端unsigned char i=100;unsigned char j,k,temp,void delay(unsigned char i) //可自定义延时长短的延时函数{ //当i=10时大约为10毫秒for(j=i;j&0;j--)for(k=125;k&0;k--);}unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; // 0-F编码display(unsigned char num) // 显示子函数{P0=table[num]; //将第num个显示编码送P0口dula=1; //一个下降沿将数据锁存dula=0;P0=0xc0; //位选通全部的数码管wela=1; //一个下降沿将数据锁存wela=0;}void main(){dula=0; //先关闭两个锁存器wela=0;while(1) //进入检测总循环{P3=0 //给P3.0送低电平,其余为高电平temp=P3; //把P3口数据读回来temp=temp&0xf0; //把P3口与相与if(temp!=0xf0) //如果有键按下刚一定不相等,于是进入//下一步检测{delay(10); //延时去抖动if(temp!=0xf0) //再次判断是否有键按下{temp=P3; //判断为有,再次读P3口数据switch(temp) //因为我们刚才是将第一行置的低{ //在这里再判断是第几列天祥电子
Email: TEL: 15TX-1C单片机实验板使用手册case 0xee: //如果temp=0xee则为第一行和第一列 key=0; //的交叉点,由此我们知道是矩阵键盘 //上的第一个键被按下,我们给key=0。 case 0xde: //以后依此类推key=1;case 0xbe:key=2;case 0x7e:key=3;}while(temp!=0xf0) //这段程序是检测按键是否被释放 {temp=P3; //如果没有释放就一直等待并且 temp=temp&0xf0;beep=0; //蜂鸣器一直响}beep=1; //释放后关闭蜂鸣器display(key); //显示按下相应键值的数据P1=0 //将第一个发光二极管点亮(我写 } //程序的时候测试用的)}P3=0temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);if(temp!=0xf0){temp=P3;switch(temp){case 0xed:key=4;天祥电子
Email: TEL: 16TX-1C单片机实验板使用手册case 0xdd:key=5; case 0xbd:key=6; case 0x7d:key=7; }while(temp!=0xf0) {temp=P3;temp=temp&0xf0; beep=0;}beep=1;display(key);P1=0}}P3=0temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);if(temp!=0xf0){temp=P3;switch(temp){case 0xeb:key=8; case 0xdb:key=9;天祥电子
Email: TEL: 17TX-1C单片机实验板使用手册case 0xbb:key=10; case 0x7b:key=11; }while(temp!=0xf0) {temp=P3;temp=temp&0xf0; beep=0;}beep=1;display(key);P1=0xf8;}}P3=0xf7;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);if(temp!=0xf0){temp=P3;switch(temp){case 0xe7:key=12; case 0xd7:key=13; case 0xb7:key=14;天祥电子
Email: TEL: 18TX-1C单片机实验板使用手册case 0x77:key=15;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;beep=0;}beep=1;display(key);P1=0xf0;}}}}3.6利用定时器和蜂鸣器唱歌[实验要求]用单片机的P2.3口输出不同占空比的方波来控制与它相连的蜂鸣器,当方波的占空比不同时蜂鸣器发出的音调就不同,由此根据歌曲的音调编程实现让蜂鸣器唱歌。占空比:一个周期中,高电平的长度比上总周期的长度的值再乘上100%。标准方波的占空比为50%.[实验目的]学会利用单片机的定时器,掌握蜂鸣器的发声操作。[硬件电路]天祥电子
Email: TEL: 19TX-1C单片机实验板使用手册[源代码]#include "reg51.h"unsigned char Csbit _Speak =P2^3 ; //蜂鸣器控制脚unsigned char code SONG[] ={ //祝你平安,以下为编码0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0天祥电子
Email: TEL: 20TX-1C单片机实验板使用手册x40,0x10,0x40,0x10,0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00,//路边的野华不要采 , 以下为这首歌的编码0x30,0x1C,0x10,0x20,0x40,0x1C,0x10,0x18,0x10,0x20,0x10,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,0x20,0x1C,0x20,0x18,0x20,0x20,0x80,0xFF,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0xFF,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0x20,0x30,0x1C,0x10,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x15,0x1F,0x05,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,0x80,0x00,};void Time0_Init() //定时器0初始化函数{TMOD = 0x01; //工作模式选择IE = 0x82; //中断设置TH0 = 0xD8; //装初值TL0 = 0xEF; //12MZ晶振,10ms}void Time0_Int() interrupt 1 //定时器0中断子函数{TH0 = 0xD8;TL0 = 0xEF;Count++; //长度加1}/*-------------------------------------------------1MS延时子程序-------------------------------------------------*/void Delay_xMs(unsigned int x){天祥电子
Email: TEL: 21四 : 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册TX-1C单片机实验板使用手册天祥电子 / Email: TEL: 1单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册目录TX-1C单片机实验板使用手册..................................................................................1目录.............................................................................................................................21.准备工作.................................................................................................................32学习方法介绍..........................................................................................................33.实验例程详细解答..................................................................................................33.1闪烁灯.............................................................................................................43.2流水灯.............................................................................................................63.3单键识别.........................................................................................................83.4 59秒计数器..................................................................................................103.5矩阵键盘检测...............................................................................................133.6利用定时器和蜂鸣器唱歌..........................................................................193.7模数转换ADC0804的应用.........................................................................233.8 数模转换DAC0832的应用........................................................................263.9 DS18B20温度测量显示实验......................................................................283.10 1602字符液晶显示...................................................................................343.11 EEPROM AT24C02实验.........................................................................373.12 串口通讯实验............................................................................................43联系方式...................................................................................................................454. WAVE使用说明...............................................................................................465. KEIL的使用.....................................................................................................516. STC-ISP软件的使用.......................................................................................58天祥电子 / Email: TEL: 2单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册1.准备工作拿到实验板后首先需要做的几件事当用户拿到实验板后的第一件事是先看实验板供电是否正常、下载程序功能是否正常、各芯片功能是否都能成功实现,检测方法如下所示:1. 先把产品包装中的四个铜柱及镙母安装在实验板上,具体安装步骤请查看光盘中的视频教程。[)2. 将包装中的USB线两端分别插接实验板左侧的USB供电接口和电脑USB口,打开实验板上电源,这时会看到实验板左侧开关旁边的电源指示灯会亮,紧接着会看到实验板上数码管或是流水灯都有随机的亮灭现象出现,也有可能只看到电源指示灯亮而无其它现象,这是因为我们在发货前要对产品进行综合测试,单片机内部装有测试时的程序,用户不必奇怪,以上状态说明实验板供电系统正常。3. 安装STC单片机程序下载软件,下载光盘中写好的例程测试各功能是否正常,安装过程及下载方法在视频中都有详细介绍,关于STC单片机程序下载软件的STC-ISP安装,请查看本手册后面的说明或同光盘中的文档。4. 安装单片机编程软件KEIL或是WAVE,这两个软件在产品配套光盘里的软件目录下都有,用户可自由选择使用任何一种软件,这两种软件都支持单片机的C语言或是汇编语言编译,我们推荐用户使用KEIL,在TX-1C配套的单片机视频教学光盘中全部使用的是KEIL软件讲解,在视频教学的第1讲中有详细的KEIL软件建立工程及编译源代码的介绍,请大家自行查看。我们在手册中也做了详细的介绍,请大家查看本手册后面的说明。2学习方法介绍接下来最重要的工作便是跟着配套教学光盘一讲一讲的跟着老师做,把老师每讲的内容都及时的消化,遇到不懂的问题要及时查书,一个个搞明白,不要积累任何小问题,大部分用户都是从零开始学起,讲座中的内容也是从最简单的开始,一步步深入,只要大家愿意学、有信心、有毅力、相信大家跟着教学讲座走10天,之后必将会有非常大的收获。如果用户没有购买配套视频光盘,我们会赠送前三讲的内容,这三讲中非常详细的介绍了KEIL软件的使用方法,讲了流水灯设计流程,实验板上其余的功能就需要靠用户自来对它进行编程并实现它们了,这样学起来只是时间会稍长些,感觉会累点,但只要大家肯努力,终究也一定会学会的。3.实验例程详细解答注意:在我要讲具体实验之前这里有必要先介绍一下本实验板上用到的一些元天祥电子 / Email: TEL: 3单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册件的操作方法,对于一个电子制作者或是电子爱好者来说学会怎么样搜索自己需要元件的资料是非常重要的,现在市场上各种各样的芯片非常的多,能实现同一个功能的芯片也有很多种,世界各大芯片制造公司都有生产。()所以我们不可能把芯片的功能、名称及详细使用方法都记全,也没有这个必要,但是必须要知道在你需要实现某个功能的时候怎么样才能找到合适的芯片,下面先给大家推荐两个搜索网站:
以上两个网站是中国最大的搜索网站和世界最大的搜索网站,上面几乎可以搜到你需要的任何信息,大家一定要充分利用身边可利用的资源,问别人是最没有办法的办法,当自己在经过多重努力后仍然没有得到最佳答案,这时再去问别人。另外需要提醒大家一点,大部分芯片的资料全是英文,大家学了这么多年英文,现在正是你用它的时候了,对于电子爱好者来说,看芯片的英文介绍就应该达到看汉语一样的水平,建议大家以后装软件全装英文版的,看电影全看国外原声的,最好连自己电脑的操作系统也装英文版的,从点点滴滴中增长知识。再给大家介绍两个查芯片资料的网站:
这里的芯片资料比较全,如果没有找到你要的资料,那可参考 ,这里有全世界所有的芯片资料,并且每天都在更新。锁存器(74HC573):顾名思义,就是把输入端的数据锁存(或送)到输出端,请看下图中的U3元件,第11角(锁存端)为高电平的时候,右边D0-D7的输入与左边Q0-Q7的输出是直通的,就是说,输入端是什么电平,输出端就是什么电平,可以把它当作不存在。当第11角为低电平的时候,左右两端就被断开了,无论输入端怎么变化,输出端都不会变化,当第11角由低电平变为高电平的一瞬间,输入端的数据立刻被传送到输出端,并且在11角保持为高电平期间,输出端数据始终的输入端数据相同,如果此时我们再次把第11角设置为低电平,那么以后当输入端无论再怎么变化,输出端都不会变化而是保持刚才第11角在下降沿(由高电平到低电平跳变)之间时输入端的值,这样就达到了锁存数据的目的,这也就是所谓的总线设计思路,一个8位的数据线加一个锁存器后就可以扩接多个元件,当选通哪个元件的片选信号,就送数据给那个元件。先说这个元件,以后用到别的元件我们再解释。下面开始讲解例程。3.1闪烁灯[实验要求]点亮与单片机P1.0口相连的发光二极管,延时约0.2S,然后熄灭,再延天祥电子 / Email: TEL: 4单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册时约0.2S,再点亮,如此循环下去。(][实验目的]初步了解单片机IO口输出高低电平的方法,延时函数的时间估算。 关于延时函数的时间估算问题在视频第二讲有详细演示介绍。[硬件电路][源代码]#include&reg51.h&/**********************************************************上面这行是一个"文件包含"处理。所谓"文件包含"是指一个文件将另外一个文件的内容全部包含进来这里的程序虽然只写了一行,但C编译器在处理的时候却要处理几十或几百行,这里包含reg51.h的目的在于本程序要使用P1这个符号,而P1是在reg51.h这个头文件中定义的。大家可以在编译器目录下面用记事本打开这个文件看看。*********************************************************/sbit P1_0=P1^0; //定义IO口这步的目的是让编//译器知//道P1_0代表的就是单片机的P1.0口void delay02s(void) //延时0.2秒子程序{unsigned char i,j,k; //定义3个无符号字符型变量。for(i=20;i&0;i--) //三个FOR循环用来延时,这里为for(j=20;j&0;j--) //什么是0.2S大家可以用WAVE或KEIL for(k=248;k&0;k--); //设置断点仿真,就可知道大概} //是0.2S了。void main(void) //每一个C语言程序有且只有一个主函数,{天祥电子 / Email: TEL: 5单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册while(1) //循环条件永远为真,以下程序一直执行下去。[]{P1_0=0; // I/O口P1.0输出低电平,小灯被点亮。delay02s(); //延时经过0.2秒。P1_0=1; // I/O口P1.0输出高电平,小灯熄灭。delay02s(); //延时经过0.2秒。}}3.2流水灯[实验要求]单片机P1口相连的8个发光二极管中的一个循环移位点亮,同时蜂鸣器发出滴滴的响声。蜂鸣器用一PNP三极管驱动,集电极(C极)通过蜂鸣器线圈接5V电源,基极(B极)是控制端,发射极(E极)接地,当三极管C,B极PN结正偏时,PN结导通,即B极为低电平时,三极管导通,蜂鸣器发声,视频中有介绍,若大家有疑问可参考模电书。[实验目的]掌握循环移位的工作原理和操作方法,学会使用C51封装好的函数库C51LIB,延时函数的时间估算。[硬件电路]天祥电子 / Email: TEL: 6单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册[源代码]#include &reg51.h&#include &intrins.h& //后面要用到它里面的_crol_(k,l)函数这个函数的意思是把一个字符变量k循环左移l位,关于它的说明请查看安装KEIL目录下的\Keil\C51\HLP文件夹里面的c51lib,这个文件里面有各种用C语言封装好的函数库,我们在以后使用其中某些函数时可以直接使用而自己不必再写。(]unsigned char a,b,k,j; //定义四个字符变量sbit beep=P2^3; // 定义蜂鸣器的接口void delay10ms() //延时子程序,大约延时10ms{for(a=100;a&0;a--)for(b=225;b&0;b--);}void main(){k=0 //先给k一个初值等待移位while(1){天祥电子 / Email: TEL: 7单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册delay10ms();beep=0; //打开蜂鸣器delay10ms(); //让它响10msbeep=1; //关闭蜂鸣器j=_crol_(k,1); //把k循环左移一位k=j; //把移完的值再送给kP1=j; //同时把值送到P1口点亮发光二极管} //再次循环}3.3单键识别[实验要求]每按一次独立键盘的S2键,与P1口相连的八个发光二极管中点亮的一个往下移动一位。[)注意:关于按键去抖动的解释,我们在手动按键的时候,由于机械抖动或是其它一些非人为的因素很有可能会造成误识别,一般手动按下一次键然后接着释放,按键两片金属膜接触的时间大约为50ms左右,在按下瞬间到稳定的时间为5-10ms,在松开的瞬间到稳定的时间也为5-10ms,如果我们再首次检测到键被按下后延时10ms左右再去检测,这时如果是干扰信号将不会被检测到,如果确实是有键被按下,则可确认,以上为按键识别去抖动的原理。[实验目的]独立按键的识别方法、键盘消抖等。[硬件电路]天祥电子 / Email: TEL: 8单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册[源代码]#include &reg52.h&sbit BY1=P3^4; //定义按键的输入端S2键 //按键计数,每按一下,count加1unsigned char a,b;void delay10ms(void) //延时程序{unsigned char i,j;for(i=20;i&0;i--)for(j=248;j&0;j--);}key() //按键判断程序{if(BY1==0) //判断是否按下键盘,当单片机上电时所有IO口为高电平,S2键一端接地另一端接P3.4,所以当键被按下时P3.4口直接接地,此时检测P3.4肯定为低电平。(]{delay10ms(); //延时,软件去抖动干扰if(BY1==0) //再次检测确认按键按下{count++; //按键计数加1if(count==8) //计8次重新计数{count=0; //将count清零}}天祥电子 / Email: TEL: 9单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册while(BY1==0);//等待按键释放,如果键未释放则一直在此等待。[]}}move() //广告灯向下移动移动函数{a=temp&& // 这三句为一个循环移位,相当于前面提到的b=temp&&(8-count);// _crol_()函数,这里是自己写的过程,大家可对比 P1=a|b; //下。}main(){count=0; //初始化参数设置temp=0P1=0P1=while(1) //永远循环,扫描判断按键是否按下{key(); //调用按键识别函数move(); //调用广告灯移动函数}}3.4 59秒计数器[实验要求]使用软件延时的方法实现0-59秒自动计数器,用数码管的前两位显示出来。[实验目的]练习进位操作,数码管动态显示。[硬件电路]天祥电子 / Email: TEL: 10单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册[源代码]//59秒自动计数器#include&reg51.h&#define uchar unsigned charuchar j,k,i,a,A1,A2,sbit dula=P2^6; //锁存器控制端定义sbit wela=P2^7;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//数字编码 void delay(uchar i) //延时函数{天祥电子 / Email: TEL: 11单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册for(j=i;j&0;j--)for(k=125;k&0;k--);}void display(uchar sh_c,uchar g_c) //显示函数 {dula=0;P0=table[sh_c]; //显示十位dula=1;dula=0;wela=0;P0=0wela=1;wela=0;delay(5); //亮5msP0=table[g_c]; //显示个位dula=1;dula=0;P0=0wela=1;wela=0;delay(5); //亮5ms}void main() //主函数{while(1){second++; //秒加一if(second==60) //判断是否到60second=0; //如果到了则清零A1=second/10; //没到则分离出十位和个位天祥电子 / Email: TEL: 12单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册A2=second%10;for(a=50;a&0;a--) //显示部分。()至于时间大概是多少{ //请用户用软件仿真看时间约等于1秒display(A1,A2);};//便可,如果需要精确定时请用定时器}}3.5矩阵键盘检测[实验要求]依次按下4*4矩阵键盘上从第1到第20个键,同时在六位数码管上依次显示0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。说明:本实验板上数码管为共阴极。静态数码管显示原理(视频中有详细介绍):这里就共阴极数码管显示原理进行讲解,一位数码管内一共有8个发光二极管,对共阴极来说其8个发光二极管的阴极在数码管内部全部接在一起,也就是“共阴”说法的来源,阳极是独立的,设计电路时一般把阴极接地,当我们从外部给任一个阳极加一个高电平时这个发光二极管就亮了,如果想要出一个8字,并且把右下角的小数点也点亮的话,那可以给8个阳极全总送高电平,想出几就给相对应的发光二极管送高电平,因此我们在显示数字的时候首先做的就是给0-9十个数字编好码,在要它亮什么数字的时候直接把这个编码送到它的阳极就行了。另外说一下,一般的数码管每一段亮至少需要10个毫安的电流,而单片机的IO口送不出如此大的电流,所以我们需要加数码管的驱动电路,可以用上拉电阻的方法,也可以使用专门的驱动芯片,本实验板使用的74HC573,其输出电流较大,足够点亮数码管。本实验板上的六位数码管中每个的相同段号(段指a,b,c,d,e,f,g,h)全部是接在一起的,其中每一个位(阴极)是独立的,所以在做静态显示的时候所有的数码管只能显示相同的数字,当然可以控制显示几位,如果让它们显示不同的数字那就得给每一个数码管加一套驱动电路了。但这样做是没有必要的,后面我们会讲到关于数码管动态显示原理。下面给出本实验板共阴极数码管数字编码天祥电子 / Email: TEL: 13单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册矩阵键盘的四行分别与P3.0-P3.3连接,四列分别与P3.4-P3.7连接。()[实验目的]学会矩阵键盘的检测,掌握数码管静态显示原理。[硬件电路]键盘电路见3.3[源代码]//4*4键盘检测程序,按下键后相应的代码显示在数码管上#include&reg51.h&sbit beep=P2^3; //蜂鸣器接口天祥电子 / Email: TEL: 14单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册sbit dula=P2^6; //控制数码管段选的锁存器锁存端sbit wela=P2^7; //控制数码管位选的锁存器锁存端unsigned char i=100;unsigned char j,k,temp,void delay(unsigned char i) //可自定义延时长短的延时函数{ //当i=10时大约为10毫秒for(j=i;j&0;j--)for(k=125;k&0;k--);}unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; // 0-F编码display(unsigned char num) // 显示子函数{P0=table[num]; //将第num个显示编码送P0口dula=1; //一个下降沿将数据锁存dula=0;P0=0xc0; //位选通全部的数码管wela=1; //一个下降沿将数据锁存wela=0;}void main(){dula=0; //先关闭两个锁存器wela=0;while(1) //进入检测总循环{P3=0 //给P3.0送低电平,其余为高电平temp=P3; //把P3口数据读回来temp=temp&0xf0; //把P3口与相与if(temp!=0xf0) //如果有键按下刚一定不相等,于是进入//下一步检测{delay(10); //延时去抖动if(temp!=0xf0) //再次判断是否有键按下{temp=P3; //判断为有,再次读P3口数据switch(temp) //因为我们刚才是将第一行置的低{ //在这里再判断是第几列天祥电子 / Email: TEL: 15单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册case 0xee: //如果temp=0xee则为第一行和第一列 key=0; //的交叉点,由此我们知道是矩阵键盘 //上的第一个键被按下,我们给key=0。() case 0xde: //以后依此类推key=1;case 0xbe:key=2;case 0x7e:key=3;}while(temp!=0xf0) //这段程序是检测按键是否被释放 {temp=P3; //如果没有释放就一直等待并且 temp=temp&0xf0;beep=0; //蜂鸣器一直响}beep=1; //释放后关闭蜂鸣器display(key); //显示按下相应键值的数据P1=0 //将第一个发光二极管点亮(我写 } //程序的时候测试用的)}P3=0temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);if(temp!=0xf0){temp=P3;switch(temp){case 0xed:key=4;天祥电子 / Email: TEL: 16单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册case 0xdd:key=5; case 0xbd:key=6; case 0x7d:key=7; }while(temp!=0xf0) {temp=P3;temp=temp&0xf0; beep=0;}beep=1;display(key);P1=0}}P3=0temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);if(temp!=0xf0){temp=P3;switch(temp){case 0xeb:key=8; case 0xdb:key=9;天祥电子 / Email: TEL: 17单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册case 0xbb:key=10; case 0x7b:key=11; }while(temp!=0xf0) {temp=P3;temp=temp&0xf0; beep=0;}beep=1;display(key);P1=0xf8;}}P3=0xf7;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);if(temp!=0xf0){temp=P3;switch(temp){case 0xe7:key=12; case 0xd7:key=13; case 0xb7:key=14;天祥电子 / Email: TEL: 18单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册case 0x77:key=15;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;beep=0;}beep=1;display(key);P1=0xf0;}}}}3.6利用定时器和蜂鸣器唱歌[实验要求]用单片机的P2.3口输出不同占空比的方波来控制与它相连的蜂鸣器,当方波的占空比不同时蜂鸣器发出的音调就不同,由此根据歌曲的音调编程实现让蜂鸣器唱歌。[]占空比:一个周期中,高电平的长度比上总周期的长度的值再乘上100%。标准方波的占空比为50%.[实验目的]学会利用单片机的定时器,掌握蜂鸣器的发声操作。[硬件电路]天祥电子 / Email: TEL: 19单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册[源代码]#include "reg51.h"unsigned char Csbit _Speak =P2^3 ; //蜂鸣器控制脚unsigned char code SONG[] ={ //祝你平安,以下为编码0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0天祥电子 / Email: TEL: 20单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册x40,0x10,0x40,0x10,0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00,//路边的野华不要采 , 以下为这首歌的编码0x30,0x1C,0x10,0x20,0x40,0x1C,0x10,0x18,0x10,0x20,0x10,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,0x20,0x1C,0x20,0x18,0x20,0x20,0x80,0xFF,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0xFF,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0x20,0x30,0x1C,0x10,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x15,0x1F,0x05,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,0x80,0x00,};void Time0_Init() //定时器0初始化函数{TMOD = 0x01; //工作模式选择IE = 0x82; //中断设置TH0 = 0xD8; //装初值TL0 = 0xEF; //12MZ晶振,10ms}void Time0_Int() interrupt 1 //定时器0中断子函数{TH0 = 0xD8;TL0 = 0xEF;Count++; //长度加1}/*-------------------------------------------------1MS延时子程序-------------------------------------------------*/void Delay_xMs(unsigned int x){天祥电子 / Email: TEL: 21单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册unsigned int i,j;for( i =0;i &i++ ){for( j =0;j&3;j++ );}}/*-------------------------------------------------功能:歌曲播放子程序i为播放哪一段曲目-------------------------------------------------*/void Play_Song(unsigned char i){unsigned char Temp1,Temp2;unsigned int ACount = 0; //中断计数器清0 Addr = i * 217;while(1){Temp1 = SONG[Addr++];if ( Temp1 == 0xFF ) //休止符 {TR0 = 0;Delay_xMs(100);}else if ( Temp1 == 0x00 ) //歌曲结束符 {}else{Temp2 = SONG[Addr++];TR0 = 1;while(1){_Speak = ~_SDelay_xMs(Temp1);if ( Temp2 == Count ){Count = 0;天祥电子 / Email: TEL: 22单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册}}}}}/*-------------------------------------------------功能:主程序-------------------------------------------------*/void main(){Time0_Init(); //定时器0中断初始化while(1){Play_Song(0); //播放}}3.7模数转换ADC0804的应用[实验要求]从ADC0804 的模拟量通道输入0-5V 之间的模拟电压,通过ADC0804 转换成数字量送给单片机,经单片机处理后在数码管上以十进制形成显示出来。()[实验目的]学习如果用单片机控制ADC0804芯片进行数模转换,掌握数码管动态扫描显示的原理。动态扫描:就六位数码管显示123456举例说明如下:先让第一个数码管显示1,其余的全部不亮,1大约亮几毫秒,然后熄灭,紧接着立即让第二个数码管显示2,其余的全部不亮,2同样亮几毫秒,依次这样亮到第六个数码管,然后再回来显示1,如此这样以很快的速度不断循环下去,由于人眼的视觉暂留时间大约为20毫秒左右,所以是感觉不出有不亮的数码管存在的,看见的是六个数码管同时在显示,数值是123456,如果我们把这个过程一点点放慢,看见的是从第一个数码管显1,然后移到第二个再显2,。。。也就是说在任一时刻只有一位数码管是亮的。这就是数码管动态扫描显示的原理。ADC0804: ADC0804是8位全MOS中速A/D 转换器、它是逐次逼近式A/D天祥电子 / Email: TEL: 23单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册转换器,片内有三态数据输出锁存器,可以和单片机直接接口。()单通道输入,转换时间大约为100us。ADC0804 转换时序是:当CS=0 许可进行A/D 转换。WR由低到高时,A/D开始转换。CS与WR同时有效时启动A/D转换,转换结束产生INTR 信号(低电平有效),可供查询或者中断信号。在CS和RD 的控制下可以读取数据结果。本实验没有使用INTR信号。[硬件电路][源代码]//拧动AD旁边的电位器,会在数码管的前三位显示0-255之间的数值。这就是把模拟信号转换成数字信号,即模数转换。说明:由于不同AD的自身特性不同,所以时序如果掌握不好的话,很有可能在数码管上不会动态显示变化数值,但按下实验板上复位键后可更新内容。#include&reg51.h&#include &intrins.h&#define uint unsigned int //宏定义,详情请看C语言书。#define uchar unsigned charsbit adrd=P3^7; //AD读引角sbit adwr=P3^6; //AD写引角sbit diola=P2^5;sbit dula=P2^6; //数码管段选锁存sbit wela=P2^7; //数码管位选锁存unsigned char j,k,void delay(unsigned char i) //延时程序{天祥电子 / Email: TEL: 24单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册for(j=i;j&0;j--)for(k=125;k&0;k--);}uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//数码管编码void display(uchar bai_c,uchar sh_c,uchar g_c) //显示程序{dula=0;P0=table[bai_c]; //显示百位dula=1;dula=0;wela=0;P0=0x7e;wela=1;wela=0;delay(5);dula=0;P0=table[sh_c]; //显示十位dula=1;dula=0;wela=0;P0=0x7d;wela=1;wela=0;delay(5);P0=table[g_c]; //显示个位dula=1;dula=0;P0=0x7b;wela=1;wela=0;delay(5);}void main() 主程序{uchar a,A1,A2,A2t,A3;diola=0;while(1) //主循环程序不断的采样、显示天祥电子 / Email: TEL: 25单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册{adwr=0; //AD写入(随便写个什么都行,主要是为了启动//AD转换) _nop_(); //一个延时字函数adwr=1;adrd=0;adval=P1; //AD数据读取adrd=1;delay(10);A1=adval/100; //分出百,十,和个位A2t=adval%100;A2=A2t/10;A3=A2t%10;for(a=10;a&0;a--) // 显示十次,然后去采集一次电压信号{display(A1,A2,A3);} //送去显示各位。[]};}3.8 数模转换DAC0832的应用[实验要求]通过用单片机控制DAC0832输出锯齿波,让实验板上发光二极管D12由暗到亮变化,循环下去。[实验目的]学会用单片机控制数模转换芯片DAC0832。DAC0832:DAC0832是8位全MOS中速D/A 转换器,采用R—2RT 形电阻解码网络,转换结果为一对差动电流输出,转换时间大约为1us。使用单电源+5V―+15V 供电。参考电压为-10V-+10V。在此我们直接选择+5V 作为参考电压。DAC0832 有三种工作方式:直通方式,单缓冲方式,双缓冲方式;在此我们选择直通的工作方式,将XFER、WR2、CS 管脚全部接数字地。管脚8 接参考电压,在此我们接的参考电压是+5V。我们在控制P0口输出数据有规律的变化将可以产生三角波,锯齿波,梯型波等波形了。[硬件电路]天祥电子 / Email: TEL: 26单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册[源代码]//TX-1BDA测试程序,下载后可观察到D12发光二极管由暗变亮再熄//灭过程, #include&reg51.h&sbit wela=P2^7; //数码管位选sbit dula=P2^6; //段选sbit dawr=P3^6; //DA写数据sbit csda=P3^2; //DA片选unsigned char a,j,k;void delay(unsigned char i) //延时{for(j=i;j&0;j--)for(k=125;k&0;k--);}void main(){wela=0;dula=0;csda=0;天祥电子 / Email: TEL: 27单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册a=0;dawr=0;while(1){P0=a; //给a不断的加一,然后送给DAdelay(50); // 延时50ms 左右,再加一,再送DA。[]a++;}}注意:随着给DA送的数字量的不断增加,其转换成模拟量的电流也不断的增大,所以我们观察发光二极管D12就会从暗变亮,熄灭。。。3.9 DS18B20温度测量显示实验[实验要求]用单片机控制实验板上的DS18B20数字温度传感器,读取当前环境温度,精度达0.1度,温度范围0-99度,并用数码管的前三位显示出来。同时实验板上的单片机还能把温度值通过串口发送到计算机,在计算机上安装该目录下的.exe文件后,打开应用程序可看到温度值。注意:DS18B20 数字温度传感器是DALLAS 公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计。DS18B20 产品的特点(1)、只要求一个I/O 口即可实现通信。(2)、在DS18B20 中的每个器件上都有独一无二的序列号。(3)、实际应用中不需要外部任何元器件即可实现测温。(4)、测量温度范围在-55 到+125摄氏度之间。(5)、数字温度计的分辨率用户可以从9 位到12 位选择。(6)、内部有温度上、下限告警设置。 DS18B20 详细引脚功能描述1、GND 地信号;2、DQ数据输入出引脚。开漏单总线接口引脚。当被用在寄生电源下,也可以向器件提供电源;3、VDD可选择的VDD 引脚。当工作于寄生电源时,此引脚必须接地。DS18B20 的使用方法。由于DS18B20 采用的是1-Wire 总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S52 单片机来说,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的天祥电子 / Email: TEL: 28单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册时序:初始化时序、读时序、写时序。()所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。[实验目的]学习单总线器件的读写方法,数值合成,数字类型变化等。[硬件电路][源代码]//安装目录下的EXE文件,通过串口线连接计算机与实验板,打开//软件后可在软件界面上显示当前温度值。#include &reg52.h&#define uchar unsigned char#define uint unsigned intsbit DS=P2^2; //define interface 定义DS18B20接口 // variable of temperatureuchar flag1; // sign of the result positive or negativesbit dula=P2^6;sbit wela=P2^7;unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,天祥电子 / Email: TEL: 29单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//不带小数点编码。[] unsigned char code table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd, 0x87,0xff,0xef}; // 带小数点编码。 void delay(uint count) //延时子函数{while(count){i=200;while(i&0)i--;count--;}}///////功能:串口初始化,波特率9600,方式1///////void Init_Com(void){TMOD = 0x20;PCON = 0x00;SCON = 0x50;TH1 = 0xFd;TL1 = 0xFd;TR1 = 1;}void dsreset(void) //发送初始化及复位信号{ //DS18B20初始化DS=0;i=103;while(i&0)i--;DS=1;i=4;while(i&0)i--;}bit tmpreadbit(void) //read a bit 读一位{天祥电子 / Email: TEL: 30单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册DS=0;i++; //i++ for delay 小延时一下DS=1;i++;i++;dat=DS;i=8;while(i&0)i--;return (dat);}uchar tmpread(void) //read a byte date 读一个字节{uchar i,j,dat=0;for(i=1;i&=8;i++){j=tmpreadbit();dat=(j&&7)|(dat&&1); //读出的数据最低位在最前面,这样刚好//一个字节在DAT里}return(dat); //将一个字节数据返回}void tmpwritebyte(uchar dat) //write a byte to ds18b20{ //写一个字节到DS18B20里for(j=1;j&=8;j++){testb=dat&0x01;dat=dat&&1;if(testb) //write 1 写1部分{DS=0;i++;i++;DS=1;i=8;while(i&0)i--;}天祥电子 / Email: TEL: 31单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册else{DS=0; //write 0 写0部分i=8;while(i&0)i--;DS=1;i++;i++;}}}void tmpchange(void) //DS18B20 begin change 发送温度转换命令 {dsreset(); //初始化DS18B20delay(1); //延时tmpwritebyte(0xcc); // 跳过序列号命令tmpwritebyte(0x44); //发送温度转换命令}uint tmp() //get the temperature 获得温度{uchar a,b;dsreset();delay(1);tmpwritebyte(0xcc);tmpwritebyte(0xbe); //发送读取数据命令a=tmpread(); //连续读两个字节数据b=tmpread();temp=b;temp&&=8; //two byte compose a int variable temp=temp|a; //两字节合成一个整型变量。()tt=temp*0.0625; //得到真实十进制温度值,因为DS18B20//可以精确到0.0625度,所以读回数据的最低位代表的是//0.0625度。temp=tt*10+0.5; //放大十倍,这样做的目的将小数点后第一位 //也转换为可显示数字,同时进行一个四舍五入操作。 //返回温度值}void readrom() //read the serial 读取温度传感器的序列号天祥电子 / Email: TEL: 32单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册{ //本程序中没有用到此函数 uchar sn1,sn2;dsreset();delay(1);tmpwritebyte(0x33);sn1=tmpread();sn2=tmpread();}void delay10ms() //delay{uchar a,b;for(a=10;a&0;a--)for(b=60;b&0;b--);}void display(uint temp) //显示程序{uchar A1,A2,A2t,A3,ser=temp/10; //分离出三位要显示的数字 SBUF=A1=temp/100;A2t=temp%100;A2=A2t/10;A3=A2t%10;dula=0;P0=table[A1]; //显示百位dula=1;dula=0;wela=0;P0=0x7e;wela=1;wela=0;delay(1);dula=0;P0=table1[A2]; //显示十位 带小数点的dula=1;dula=0;wela=0;P0=0x7d;天祥电子 / Email: TEL: 33单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册wela=1;wela=0;delay(1);P0=table[A3]; //显示个位dula=1;dula=0;P0=0x7b;wela=1;wela=0;delay(1);}void main() //主函数{Init_Com(); //初始化串口do{tmpchange(); //温度转换for(a=10;a&0;a--){display(tmp()); //显示十次}}while(1);}3.10 1602字符液晶显示[实验要求]在1602液晶屏上指定的位置显示出自己想要的数字或字符,学会使用1602液晶做滚动字符显示。(][实验目的]学习1602液晶的操作。注意:实验板附带的1602安装方法请看光盘里的液晶使用方法,插好液晶后如果显示字符不清楚,请调节1602液晶对比度调节电位器,顺时针拧动直到液晶上面一行能显示出黑色的方格为止。天祥电子 / Email: TEL: 34单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册关于1602液晶的资料请查看光盘里元件资料下的资料。(][硬件电路][源代码]#include&reg52.h&#define uchar unsigned char //宏定义#define uint unsigned int //宏定义sbit rs=P3^5; //液晶数据命令选择端 sbit lcden=P3^4; //液晶写数据控制端 sbit dula=P2^6;sbit wela=P2^7;uchar table1[]="TX-1B MCU"; //要显示的字表uchar table2[]=""; //要显示的字表 void delay(uint x) //延时子函数{uint a,b;for(a=x;a&0;a--)for(b=10;b&0;b--);}void delay1(uint x) //延时子函数{uint a,b;for(a=x;a&0;a--)天祥电子 / Email: TEL: 35单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册for(b=100;b&0;b--);}void write_com(uchar com) //写命令函数{P0=rs=0;lcden=0;delay(10);lcden=1;delay(10);lcden=0;}void write_date(uchar date) 写数据函数{P0=rs=1;lcden=0;delay(10);lcden=1;delay(10);lcden=0;}void init() //初始化函数{dula=0; //关闭数码管显示 wela=0;write_com(0x38); //液晶显示方式设置 delay(20);write_com(0x0f); //光标设置delay(20);write_com(0x06); //数据指针顺序设计 delay(20);write_com(0x01); //液晶屏幕清屏命令 delay(20);天祥电子 / Email: TEL: 36单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册}void main() //主函数{init();write_com(0x80+17); //先写在液晶数据缓冲区第一行不能显示的地方 delay(20);for(a=0;a&9;a++) //依次把第一个表格中的字符全写入{write_date(table1[a]);delay(20);}write_com(0xc0+17); //先写在液晶数据缓冲区第二行不能显示的地方 delay(50);for(a=0;a&13;a++) //依次把第二个表格中的字符全写入{write_date(table2[a]);delay(40);}for(a=0;a&16;a++) //写16个0x18把字符从右边移入进来显示在液晶上 { //0x18命令是移动字符的指令write_com(0x18);delay1(200);}while(1);}3.11 EEPROM AT24C02实验[实验要求]利用24C08 断电以后存储的数据不消失的特点,可以做一个断电保护装置。(] 首先利用单片机做一个0-99 秒的自动计时器。然后随机关断电源,在通电以后计时器接着断电前的状态继续计时。[实验目的]天祥电子 / Email: TEL: 37单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册掌握IIC总线工作原理及其操作方法,视频中有一讲专门讲IIC。(]说明:首先简单的说明以下I2C 总线,I2C 总线是一种串行数据总线,只有二根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。在I2C 总线上传送的一个数据字节由八位组成。总线对每次传送的字节数没有限制,但每个字节后必须跟一位应答位。数据传送首先传送最高位(MSB)。首先由主机发出启动信号“S”(SDA在SCL 高电平期间由高电平跳变为低电平),然后由主机发送一个字节的数据。启动信号后的第一个字节数据具有特殊含义:高七位是从机的地址,第八位是传送方向位,0 表示主机发送数据(写),1表示主机接收数据(读)。被寻址到的从机设备按传送方向位设置为对应工作方式。标准I2C 总线的设备都有一个七位地址,所有连接在I2C 总线上的设备都接收启动信号后的第一个字节,并将接收到的地址与自己的地址进行比较,如果地 址相符则为主机要寻访的从机,应答在第九位时钟脉冲时向SDA 线送出低电平作为应答。除了第一字节是通用呼叫地址之外第二字节开始即数据字节。数据传送完毕,由主机发出停止信号“P”(SDA在SCL 高电平期间由低电平跳变为高电平)。AT24C 系列串行E2PROM 具有I2C 总线接口功能,功耗小,宽电源电压(根 据不同型号2.5V~6.0V),工作电流约为3mA,静态电流随电源电压不同为 30μA~110μA。由于I2C 总线可挂接多个串行接口器件,在I2C 总线中每个器件应有唯一的器件地址,按I2C 总线规则,器件地址为7 位数据(即一个I2C 总线系统中理论上可挂接128 个不同地址的器件),它和1 位数据方向位构成一个器件寻址字节,最低位D0 为方向位(读/写)。器件寻址字节中的最高4 位(D7~D4)为器件型号地址,不同的I2C 总线接口器件的型号地址是厂家给定的,如AT24C 系列E2PROM的型号地址皆为1010,器件地址中的低3 位为引脚地址A2 A1 A0,对应器件寻址字节中的D3、D2、D1 位,在硬件设计时由连接的引脚电平给定。对AT24C 系列E2PROM的读写操作完全遵守I2C 总线的主收从发和主发从收的规则。[硬件电路]天祥电子 / Email: TEL: 38单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册[源代码]#include&reg51.h&#include &intrins.h&#define uint unsigned int#define uchar unsigned char //定义计数值,每过1秒,sec加1 //定时中断次数bit write=0; //写24C08的标志;sbit sda=P2^0; //IIC接口SDA定义sbit scl=P2^1; //IIC接口SCL定义sbit dula=P2^6;sbit wela=P2^7;unsigned char j,k;void delay(unsigned char i) //延时程序{for(j=i;j&0;j--)for(k=125;k&0;k--);}uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, //数码管编码 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};天祥电子 / Email: TEL: 39单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册void display(uchar bai_c,uchar sh_c) //显示程序 {dula=0;P0=table[bai_c]; //显示百位dula=1;dula=0;wela=0;P0=0x7e;wela=1;wela=0;delay(5);dula=0;P0=table[sh_c]; //显示十位dula=1;dula=0;wela=0;P0=0x7d;wela=1;wela=0;delay(5);}/////////24C02读写驱动程序////////////////////void delay1(unsigned char x) //延时子函数{for(i=0;i&x;i++);}void flash() //延时子函数{ ; ; }void x24c08_init() //24c02初始化子程序{scl=1; flash(); sda=1; flash();}void start() //启动I2C总线{sda=1; flash(); scl=1; flash(); sda=0; flash(); scl=0; flash();} void stop() //停止I2C总线{sda=0; flash(); scl=1; flash(); sda=1; flash();}void writex(unsigned char j) //写一个字节{ unsigned char i,temp=j;for (i=0;i&8;i++)天祥电子 / Email: TEL: 40单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册{temp=temp&&1; scl=0; flash(); sda=CY; flash(); scl=1; flash();} scl=0; flash(); sda=1; flash();}unsigned char readx() //读一个字节{unsigned char i,j,k=0;scl=0; flash(); sda=1;for (i=0;i&8;i++){ flash(); scl=1; flash();if (sda==1) j=1;else j=0;k=(k&&1)|j;scl=0;}flash(); return(k);}void clock() //I2C总线应答子函数{unsigned char i=0;scl=1; flash();while ((sda==1)&&(i&255))i++;scl=0; flash();}////////从24c02的地址address中读取一个字节数据/////unsigned char x24c08_read(unsigned char address){start(); writex(0xa0);clock(); writex(address);clock(); start();writex(0xa1); clock();i=readx(); stop();delay1(10);return(i);}//////向24c02的address地址中写入一字节数据info/////void x24c08_write(unsigned char address,unsigned char info) {EA=0;天祥电子 / Email: TEL: 41单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册start(); writex(0xa0);clock(); writex(address);clock(); writex(info);clock(); stop();EA=1;delay1(50);}void t0(void) interrupt 1 using 0 //定时中断服务函数 {TH0=()/256; //对TH0 TL0赋值TL0=()%256; //重装计数初值tcnt++; //每过250ust tcnt加一if(tcnt==20) //计满20次(1秒)时{tcnt=0; //重新再计sec++;write=1; //1秒写一次24C02if(sec==100) //定时100秒,在从零开始计时 {sec=0;}}}void main() //主函数{TMOD=0x01; //定时器工作在方式1ET0=1; EA=1; //开中断x24c08_init(); //初始化24C08sec=x24c08_read(2); //读出保存的数据赋于sec TH0=()/256; //对TH0 TL0赋值TL0=()%256; //使定时器0.05秒中断一次 TR0=1; //启动定时器while(1){i=10;while(i--){ display(sec/10,sec%10); }if(write==1) //判断计时器是否计时一秒天祥电子 / Email: TEL: 42单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册{write=0; //清零x24c08_write(2,sec); //在24c02的地址2中写入数据sec}}}3.12 串口通讯实验[实验要求]由串口调试助手以16进制向单片机发送一数据,如01,如果单片机接收到数据将会原样返回给计算机,并且显示在串口调试助手的接收框内。(][实验目的]学会用单片机与计算机之间通过串口通讯。注意:RS-232 是美国电子工业协会正式公布的串行总线标准,也是目前最常用的串行接口标准,用来实现计算机与计算机之间、计算机与外设之间的数据通讯。RS-232 串行接口总线适用于:设备之间的通讯距离不大于15m,传输速率最大为20kBps。RS-232 协议以-5V--15V 表示逻辑1;以+5V-+15V 表示逻辑0。我们是用MAX232 芯片将RS232 电平转换为TTL 电平的。一个完整的RS-232 接口有22根线,采用标准的25 芯插头座。我们在这里使用的是简化的9 芯插头座。注意我们在这里使用的晶振是11.0592M 的,而不是12M。因为要设置准确的波特率需选用11.0592M。“串口调试助手V2.1.exe” 软件的使用很简单,只要将串口号选择对,波特率设置正确,数据位为8 位。打开串口(如果关闭的话)。然后在发送区里输入要发送的数据,单击手动发送就将数据发送出去了。注意,如果选中‘十六进制发送’那么发送的数据是十六进制的,必须输入两位数据。如果没有选中,则发送的是ASCLL 码。在给单片机下载程序的时候需要把串口调试助手的端口关闭,否则会产品串口冲突,下载完程序后再打开串口。[硬件电路]天祥电子 / Email: TEL: 43单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册[源代码]#include&reg52.h&#define uchar unsigned charuchar a,void main(){TMOD=0x20; //设置定时器1为模式2TH1=0 //装初值设定波特率TL1=0TR1=1; //启动定时器SM0=0; //串口通信模式设置SM1=1;REN=1; //串口允许接收数据EA=1; //开总中断ES=1; //开串行中断while(1){if(flag==1) //如果有数据则进入这个语句{ES=0; //进入发送数据时先关闭串行中断 flag=0;SBUF=a; //将数据原样发回while(!TI); //等待数据发完天祥电子 / Email: TEL: 44单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册TI=0;ES=1; //退出进再开串行中断}}}void serial() interrupt 4 //串行中断函数{P1=SBUF; //将数据发送给P1口显示(测试用)a=SBUF; //收取数据flag=1; //标志置位RI=0;}至此,本实验板例程讲解完毕,欢迎用户提出宝贵意见,我们争取把产品做得更好,用户在使用的过程有技术疑问请与我们联系。()联系方式通信地址:哈尔滨工程大学8系06研 郭天祥邮编:150001邮箱:网站:手机:工行帐号:10
户名:郭天祥开户行:哈尔滨市森融支行宣桥储蓄所中国银行:00
户名:郭天祥开户行:中国银行黑龙江省分行哈尔滨工程大学分理处农业银行:32
户名:郭天祥开户行:哈尔滨市太平支行红河分理处希望大家充分利用你们年轻的时间,尽快掌握单片机。天祥电子 / Email: TEL: 45单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册4. WAVE使用说明目前应用在单片机的编程语言主要有汇编语言和C语言,汇编语言相对C语言来说执行效率较高,但编程啰嗦烦杂,程序的可移植性较差,也就是说用户对某个芯片或电路编写的驱动程序只在一套电路板上可使用,而当换个电路后用户又要自己重新编写这套驱动程序。[)这样就在使用的过程中带来了不少麻烦,其次其指令很多,也不方便记忆,因此我建议初学者直接学习用C语言给单片机编程就可以,无需学汇编语言。从我个人就两种语言都会的角度来看,无需知道一点汇编知识直接学C语言同样完全可以学好单片机。本实验板所配的例程大部分由C语言编写成。因此在本手册中的例程讲解大多采用C语言,有各别几个用汇编语言。下面首先讲解WAVE编译器的使用方法.1. 安装SETUP文件(建议安装在C盘下)。2. 复制光盘:软件\编译器下的COMP51整个文件夹到C盘目录下。WAVE编译程序时用的编译器就在这个文件夹里面,这一步务必做。3. 首次启动后,编辑框内会有几个默认的程序加载,大家不用管它,选择“文件-关闭项目”将它们关闭。4. 如果你想用WAVE公司标准的建立工程项目的方法建立你的项目,那么请点击“帮助-&WAVE6000使用手册”这里面讲的非常仔细,对于这种标准程序我在这里就不再讲了。5. 但是如果你要用另一种比较简单的方法快速的建立项目呢,可按照我下面的方法来做,我已使用多年,保证没有问题。5.1关闭所有已打开的项目5.2如果你没有硬件仿真器,那只能用软件仿真,请这样设置:点击“仿真器-&仿真器设置“分别按以下四幅图设置。天祥电子 / Email: TEL: 46单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册天祥电子 / Email: TEL: 47单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册5.3点击新建文件图标后会在编译框内出来一个以NONAME为标题的空文本,如下图:天祥电子 / Email: TEL: 48单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册此时的保存按钮为灰色,原因是文本框内没任何字符,所以无法保存任何东西,接下来我就TX-1B单片机开发板上点亮与单片机P1.0口相连的一个发光二极管为例,详细介绍WAVE的使用方法:在上图新建的NONAME1编辑框内输入以下字符://本程序为点亮与单片机P1.0口相连的发光二极管注意://后面的字符在C语言中为注释,不参与编译,在C语言中注释有两种方法:一种方法是加“//“,如果有多行注释,每行都需要加//;第二种方法用“/*…这里为注释….*/”,不加双引号,两个*中间为注释。(]此时再查看保存按钮已变成可点击状态,我们点击保存按钮,弹出如下对话框,你可以自己先建立一个你自己的文件夹,将刚才建立的文件命名为test1.c,如下图所示。test1这个名字你可以自己取,但是后面必须要以.c结束,因为我们写的是C语言程序,(汇编语言,以***.asm为名)。写好文件名字后点SAVE保存文件,此地会发现编译框内的文字颜色发生了变化,这说明此时的文字内容已经变成可以被编译器所识别的字符。天祥电子 / Email: TEL: 49单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册5.4 接着在文本框内再输入以下信息#include &reg51.h&sbit light1=P1^0;void main(){light1=0;}注意:(1)#include &reg51.h&意思是将reg51.h头文件的内容全部放到本行处,该文本内容是51单片机各引脚地址及其内部寄存器地址定义,若要看详细的内容请打开C:\COMP51 下reg51.h文件查看,该文件夹下还有其他常用到的头文件。[)(2)sbit light1=P1^0; 把单片机的P1.0口定义成light1,你可以自己随便取你喜欢的名字,但sbit ****=P1^0;格式不可变。(3)void main() 无返回值型主函数,如果还不懂那请自己回去看C语言吧。(4) light1=0; 将P1.0口置为低电平,在单片机的C语言中,高电平用“1“来表示,低电平用”0“来表示。输入完上面的文字后点击编译快捷按钮,如果输入没有错误则会在下面的信息窗口中显示若干个对勾,如下图所示:天祥电子 / Email: TEL: 50单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册注意:编写程序时必须是严格的C语言格式,在编辑框中不能有多余的字符出现,建议初学者从一开始就要差成一个好的编程习惯和自己的编程风格,要及时的为每一模块函数加上注释说明,不该多写的地方不要多写,不能少写的地方不要少写,这样对将来编写大规模程序有会有很好的帮助。[)当点击完编译按钮后若出现上图信息窗口中显示的信息,那说明你写的程序已经成功编译,并且已经在你保存文件的目录下面生成了可往单片机内下载的BIN和HEX文件。5. KEIL的使用2.1 安装,请自己仔细看配套光盘里的安装说明。2.2 安装成功后,首次启动界面如下图:天祥电子 / Email: TEL: 51单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册2.3 我们先新建一个工程文件,点击“Project-&New Project…”.选择工程文件要存放的路径,并且输入工程文件名,这里我们用test2作为工程文件名,这里就不用在后面加.c了。[]图片如下:2.4 点击Save 后弹出选择CPU及型号的对话框:天祥电子 / Email: TEL: 52单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册2.5 由于本实验板所配的单片是STC公司的,而KEIL中并没有STC公司的产品,不过STC公司的单片机和传统的51单片机是兼容的,所以这里我们就选择Atmel公司的AT89C52。[)天祥电子 / Email: TEL: 53单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册2.6 新建一个C51文件,单击左上角的New File 如下图所示:2.7 保存新建的文件,单击保存按钮。[]2.8 输入文件名test2.c,这里必须以**.c为文件名。天祥电子 / Email: TEL: 54单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册2.9 保存好后我们还需要把文件加入到工程项目中,如下图所示在Source Group1 上单击右键,选择Add Files to ‘Group Source Group1’2.10 然后选择刚才建立的test2.c文件,单击Add。()天祥电子 / Email: TEL: 55单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册这时我们看左边工程信息窗口中的Source Group1 下面多了test2.c文件,这说明添加文件成功了。(]2.11 在编辑框内输入下列字符2.12 接着我们编译工程项目,如下图点击编译天祥电子 / Email: TEL: 56单片机开发板原理图 单片机开发板原理图TX-1CTX-1C单片机实验板使用手册如果在下面的信息窗口中显示0 Error(s),0 Warning(s).则说}

我要回帖

更多关于 百度云网盘怎么加好友啊 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信