89s52上机指导书.doc

(带图纸和文档)8051单片机c语言编程入门指导书单片机资料

收藏

资源目录
跳过导航链接。
(带图纸和文档8051单片机c语言编程入门指导书单片机资料.zip
8051单片机C语言编程入门指导书单片机资料
8051单片机C语言编程入门指导书
CAD制图样板.dwg
压缩包内文档预览:(预览前20页/共47页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:21243453    类型:共享资源    大小:986.21KB    格式:ZIP    上传时间:2019-07-31 上传人:QQ24****1780 IP属地:浙江
30
积分
关 键 词:
图纸 以及 文档 单片机 语言 编程 入门 指导书 资料
资源描述:
(带图纸和文档)8051单片机c语言编程入门指导书单片机资料,图纸,以及,文档,单片机,语言,编程,入门,指导书,资料
内容简介:
8051单片机C语言编程入门指导书 大学生电子创新协会编印 前 言单片机具有体积小、集成度高、应用灵活、运行稳定可靠、价格低廉以及面向控制等特点,因此在工业数控、数据采集、仪器仪表、智能化设备和各种家用电器等领域得到广泛的应用,而且发展非常迅猛。随着单片机应用技术水平不断提高,半导体工艺的不断发展,目前单片机的应用领域已经遍及几乎所有的生活领域。单片机开发板是以ATMEL公司生产的AVR单片机Mega8515和MCS-51系列的AT89S52为核心,以简单实用的外围电路为基础并有操作方便的程序下载功能,是集精简开发程序下载电路实验为一体的模块化、多功能开发板。该套单片机开发板由电源电路,I/O端口电路,音频电路,数码显示电路,下载电路,复位电路,串口通信电路,晶振电路,I/O扩展电路,键盘电路,I2C存储电路等模块组成。是专为大、中专院校,电子爱好者进行电子实习、课程设计、毕业设计、电子制作及电子竞赛所设计的,也可作为单片机项目初期研发使用。开发板采用USB电源供电,携带方便!可使学员在掌握单片机软件的同时,熟练单片机硬件电路的设计与制作,是学习单片机学习者入门的好帮手。本书为实验指导书。第一部分为单片机的硬件基础知识;第二部分为实验部分。本书取材于最新原文资料,总结实践和应用经验,编程实例丰富。望本书能让单片机爱好者更上一层楼。由于程序众多,编写时难免出现遗漏之处,肯请读者更正以及提出宝贵的意见。编著:大学生电子创新协会 2007-3-14目 录第一部分 基础知识一 、单片机的历史.1二、软件的应用.3三、 8051的内部结构.6四、 实验装置简介.8第二部分 实验部分实验一 数制转换与单片机端口的控制.10实验二 数码管显示与扫描原理.14实验三 键盘电路的控制与应用.20实验四 计数器定时器的应用.22实验五 液晶显示与串行通信的应用26实验六 单片机音乐播放器的制作28附录: 1. 原理图.35 2.单片机最小系统.36 3. 音乐程序详细参数对照表37一、 单片机的历史1.1 单片机的由来:从1971年微型计算机问世以来,由于实际应用的需要,微型计算机向两个不同的方向发展:一个是向高速度、大容量、高性能的高档微机方向发展;而另一个则是向稳定可靠、体积小和价格廉的单片机方向发展。但两者在原理和技术上是紧密联系的。1.2单片机的名称:单片机因将其主要组成部分集成在一个芯片上而得名,具体说就是把中央处理器CPU,随机存储器RAM,只读存储器ROM、中断系统、定时器计数器以及I/O接口电路等主要微型机部件,集成在一块芯片上。虽然单片机只是一个芯片,但从组成和功能 上看,它已具备有了计算机系统的属性,为此称它为单片微型计算机SCMC,简称单片机。1.3 单片机的发展1971年微处理器的研制成功,不久后就出现了单片的微型计算机即单片机,最早的单片机是一位的。现在已经发展到32位。1976年INTEL公司推出了8位的MCS48系列单片机,它以体积小、控制功能全、价格低廉等特点受到广泛的应用和好评。其后,在MCS48成功的刺激下,许多半导体芯片商研制自己的产品。到80年代末,世界各地已经相继研制大约50多个系列300多个品种的单片机产品。其中Motorola公司的6801、6802,Zilog公司的Z-8系列,Rockwell公司的6501、6502等。从开始的一位机到现在的32位,单片机以惊人的速度向前发展。1.4单片机的应用领域单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:1.在智能仪器仪表上的应用。单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。2.在工业控制中的应用。单片机可以构成形式多样的控制系统、数据采集系统。3.在家用电器中的应用。可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。4.在计算机网络和通信领域中的应用。现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。5.单片机在医用设备领域中的应用。单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。二、 软件的应用1.开发软件的使用说明单片机开发板使用的编程软件可以用S52编程软件WAVE6000进行编写AT89S52单片机的源程序(汇编语言和C语言),并产生 .hex程序代码,利用S52下载软件Easy pro51将程序代码应用S52下载线下载到目标单片机AT89S52的Flash中,相应的配套软件在光盘中可找到。当开发板的单片机使用的AVR系列Mega8515时,可用AVR的C语言编程软件ICCAVR进行C语言程序编写,用AVR汇编语言编程软件进行汇编程序编写,产生.hex程序代码,利用AVR下载软件PonyProg将程序代码应用AVR下载线下载到目标单片机Mega8515的Flash中,相应的配套软件也在光盘中可找到。在光盘中还附有软件应用的安装教程,可使单片机学习者方便快捷地掌握单片机开发软件。2.编程软件WAVE 6000的使用文件新建文件保存文件保存文件名为xxx.c新建文件软件设置晶振选择CPU为8752,其功能引脚与S52完全相同编译器路径为,WAVE安装目录下的C51文件夹编译方法将程序输入后,芯片选择2.下载软件双龙MCU下载器的使用程序下载下载线端口设置下载速度选择下载程序窗口三、 8051的内部结构1、中央处理器(CPU): 通常把运算器和控制器合在一起称为中央处理器(Central Processing Unit),简称CPU。2、内部数据存储器(RAM): 8051芯片共有256个RAM单元,其中后128单元被专用寄存器占用(稍后我们详解),能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。地址范围为00HFFH(256B)。是一个多用多功能数据存储器,有数据存储、通用工作寄存器、堆栈、位地址等空间。 3、内部程序存储器(ROM):在前面也已讲过,8051内部有4KB的ROM,用于存放程序、原始数据或表格。因此称之为程序存储器,简称内部RAM。地址范围为0000HFFFFH(64KB)。 4、定时器/计数器 8051共有2个16位的定时器/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。定时时靠内部分频时钟频率计数实现,做计数器时,对P3.4(T0)或P3.5(T1)端口的低电平脉冲计数。 5、并行I/O口 MCS-51共有4个8位的I/O口(P0、P1、P2、P3)以实现数据的输入输出。具体功能在后面章节中将会详细论述。 6、串行口 MCS-51有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为移位器使用。RXD( P3.0)脚为接收端口,TXD(P3.1)脚为发送端口。 7、中断控制系统 MCS-51单片机的中断功能较强,以满足不同控制应用的需要。共有5个中断源,即外中断2个,定时中断2个,串行中断1个,全部中断分为高级和低级共二个优先级别。 8、时钟电路 MCS-51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率为12MHZ;四、 实验装置简介一 单片机开发板功能介绍配套元件清单:1单片机开发实验板 1块2AT89S52下载线 1条3串口调试RS232线 1条4USB电源线 1条5扬声器8欧/0.25W 1个68线扩展线 2条7配套光盘软件 1张二、硬件结构框图及简要说明数码管显示单片机活动插座10针CAPUSBP0.0 P3.7S11S21S31S41AVR1S521RS232接口powerJ1kLM3 8 6J274LS4774LS13824C02串口电路J5J3J4J6C1J7J8J9J0 A1 图1 硬件框图表1:以上框图说明 注: 表示芯片第一个引脚power直流电源5V输入10针CAP程序下载端口电源指示灯RS232接口串口调试端口USBUSB电源输入J3、J4串口调试接入短路子K电源开关J6、J7霓虹灯电路接入短路子J1外扩5V电源端口J0数码显示电路控制端C1串口调试端口J8、J9I2C存储电路接入短路子LM386音乐放大电路24C022K程序存储器J2外接扬声器数码管显示四位七段共阳数码管J5音乐放大接入短路子74LS47共阳数码管驱动S52AT89S52单片机复位按钮74LS1383-8译码器,数码管位选择AVRMega8515单片机复位按钮S1-S4键盘电路接P3.2-P3.5A1芯片复位端子选择短路子P0.0-P3.7外扩32个I/O端口实验一 数制转换与单片机端口的控制一、实验目的1、熟悉十进制数与二、十六进制数的相互转换2、了解各进制数在程序中的运用3、学习单片机的四个I/O口4、掌握I/O口对LED的控制二、实验设备单片机最小系统I/O口输出LED按键一个三、实验内容1、对二、十、十六进制数进行转换2、编写一段程序,用P1口作为输出端,控制八位LED轮流点亮3、编写一段程序,P1口为输出口,P3.2为输入端口,当P3.2按下时,P1口控制的LED点亮,当P3.2没有按下时,P1口控制的LED不点亮。四、实验步骤任务一:1、数码是构造一种数制所用的不同符号。各种进制的数码为:二进制:0,1十进制:0,1,2,3,4,5,6,7,8,9十六进制:0,1,2,3,4,5,6,7,8,9,A(a),B(b),C(c),D(d),E(e),F(f)2、用余数法将十进制整数转换成二进制整数。把十进制整数不断地用2去除,将所得到的余数0或1依次记为K0,K1,K2, ,直到商是0为止,将最后一次所得的余数记为Kn,则KnKn-1 K1K0即为该整数的二进制表示。例11 (59)10=( ) 2=(Kn K1K0)2竖式演算如下: 2 59 余数1=K0 2 29 余数1=K1 2 14 余数0=K2 2 7 余数1=K3 2 3 余数1=K4 2 1 余数1=K5 0 (59)10=(K5K4K3K2K1K0)2=(111011)2例12 把0.47转换成二进制。用线图形式可演算如下: 0.470.940.880.760.520.042 整数 0 1 1 1 1 K-1 K-2 K-3 K-4 K-5 在取5位小数时有(0.47)10=(K-1 K-2 K-3 K-4 K-5 )2=(0.01111)2 3、将二进制转换成十进制把二进制数按多项式展开求和即可。(101.101)2=(122+021+120+12-1+02-2+12-3)10 =(14+11+10.5+10.125)10 =(5.625)104、二进制转十六进制一般使用8421码进行转换如:(11111011)28 4 2 1 8 4 2 11 1 1 1 1 0 1 18+4+2+1=15=F;8+0+2+1=11=B;即(111110111)=(FB)16任务二:1、打开WAVE软件,新建一个文件,输入以下程序:#include /头文件main()int i,j,k;P1=0xff;for(j=0;j1000;j+)for(k=0;k100;k+); /延时while(1) P1=P11; for(i=0;i8;i+) 发 for(j=0;j1000;j+) for(k=0;k100;k+); /延时 P1=(P11)+1; /单个左移 2、保存文件(文件名.c);3、按下图连接电路;4、编译程序(可按快捷键F9);任务三:1、打开WAVE软件,新建一个文件,输入以下程序:#includesbit a0=P32; /定义单个口main()P1=0xff; while(1) if(a0=0)P1=0x00; else P1=0xff; 2、保存文件;3、按照下图连接电路;4、编译程序并烧写程序;实验二 数码管显示与扫描原理一、实验目的1、了解数码管的显示原理;2、掌握单片机控制数码管;二、实验设备单片机最小系统数码管二个按键一个三、实验内容1、数码管显示原理分析;2、编写一个程序,使四个数码管同时从19;3、编写一个程序,使数码管从199计数,并用按键控制数码管,当键按下,数码管暂停计数,不按下,继续计数;四、实验步骤任务一:1、 数码管管脚图如下: 2、按下图连接:3、芯片7447管脚图:4、7447控制真值表如下:5、芯片74138管脚图:6、74138真值表如下:任务二:1、打开WAVE软件,新建一个文件,输入以下程序:#includemain()int i,j,k,l; while(1) P0=0x00; for(i=0;i10;i+) for(l=0;l500;l+) for(j=0;j4;j+) P0=P0+0x10; for(k=0;k100;k+); P0=P0+0x01; 2、保存并编译程序;任务三:1、打开WAVE软件,新建一个文件,输入以下程序:#includechar date2;sbit a0=P32;main()int i,k,l,m,t; while(1) date0=0x00; date1=0x10; for(m=0;m10;m+) for(i=0;i10;i+) for(l=0;l500;l+) P0=date0; for(k=0;k50;k+); P0=date1; for(k=0;k50;k+); if(a0=1) date0=date0+0x01; t=i; else i=t; date0=0x00; date1=date1+0x01; 实验三 键盘电路的控制与应用一、实验目的1、了解键盘原理;2、掌握基本焊接;3、掌握键盘扫描程序的编写;二、实验设备单片机最小系统4*4键盘数码管两个三、实验内容1、焊接键盘2、键盘的基本结构3、编写一个程序,当键盘按下按钮时,数码管显示相应数值四、实验步骤任务一:1、4*4键盘基本结构如下:2、键盘位显示数值(可根据需要对键盘的按键作用进行编排);0123456789101112131415任务二:1、打开WAVE软件,新建一个文件,输入以下程序:#includechar jianma16=0x7e,0xbe,0xde,0xee,0x7d,0xbd,0xdd,0xed, 0x7b,0xbb,0xdb,0xeb,0x77,0xb7,0xd7,0xe7;char c4=0xef,0xdf,0xbf,0x7f; main()int m,n,k,j,a=0; while(1) for(m=0;m4;m+) P1=cm; for(n=0;n16;n+) if(P1=jianman) P0=0xe0+n%10; for(k=0;k50;k+); P0=0xd0+n/10; for(k=0;k50;k+); j=n; a=1; else if(a=1) P0=0xe0+j%10; for(k=0;k100;k+); P0=0xd0+j/10; for(k=0;k100;k+); 2、 保存并编译程序;实验四 计数器定时器的应用一、实验目的1、 了解89s52的五个中断要求;2、 掌握定时器/计数器在单片机上的运用;3、 了解外部中断的运用;二、实验设备单片机最小系统数码管两个三、实验内容1、 定时器、计数器及外部中断的各种方式和要求;2、 编写一个程序,用定时器的一秒定时作为秒表计时;3、 编写一个程序,用外部中断控制灯的显示方式;四、实验步骤任务一:1、 五个中断要求:个定时器中断、个外部中断、个串行端口中断2、 中断控制寄存器()IE(中断使能寄存器)EAESET1EX1ET0EX0EX0:使能外部INT0的中断;ET0:使能TIMER0的中断;EX1: 使能外部INT1的中断;ET1: 使能TIMER1的中断;ES:使能串行口的中断。EA:如果EA=0时,屏蔽所有中断;如果EA=1,则各中断由各中断为加以设定;()IP(中断优先权控制寄存器)PSPT1PX1PT0PX0PX0:定义外部/INT0的优先权;PT0:定义外部TIMER0的优先权;PX1:定义外部/INT1的优先权;PT1:定义外部TIMER1的优先权;PS:定义串行端口的优先权;3、 定时器0和定时器1和外部中断定时器或计数器的功能是由特殊功能寄存器内TMOD的C/T位所决定的。这两个定时器有4种工作方式,它是由TMOD内的两个位M1和M0加以选择。()TMOD(定时器模式控制寄存器)说明如下:TIMER1TIMER0GATEC/TM1M0GATEC/TM1M0定时器模式控制器各位名称M1 M0:工作方式,如下表所示:M1M0工作方式功 能00MODE013位定时器计数器01MODE116位定时器计数器10MODE28位定时器计数自动载入11MODE3(TIMER0)TL0为8位定时器计数器,由T0控制;TH0为另一个8位定时器,由T1控制11MODE3(TIMER1) 定时器计数器1停止定时计数GATE:当TRX=1且GATE=1时,定时器只在/INTX引脚为高电平时才会计时;当GATE=0时,则定时器只在TRX=1时会计时;C/T:C/T=0时为定时器,C/T=1时为计数器。()TCON(定时器控制寄存器)TF1TR1TF0TR0IE1IT1IE0IT0TCON定时器控制寄存器各位名称IT0:/INT的中断电位控制,IT0时为下降沿触发,IT0=0时为低电平触发;IE0:/INT的中断标志位,当中断发生时,硬件会设定此位;当中断被处理时,硬件会清除此位。IT1:/INT的中断电位控制,IT1=时为下降沿触发,IT1=时为低电平触发;IE1:/INT的中断标志位,当中断发生时,硬件会设定此位;当中断被处理时,硬件会清除此位。TR0:TIMER0的启动位,TR0=1时为启动,0时为停止;TF0:TIMER0的溢出标志位,当TIMER0溢出时,会设定为;当执行中断子程序时会清除为。TR1:TIMER1的启动位,TR1=1时为启动,0时为停止;TF1:TIMER1的溢出标志位,当TIMER1溢出时,会设定为;当执行中断子程序时会清除为。任务二:1、 打开WAVE软件,新建一个文件,输入以下程序:#includesbit a0=P35;sbit a1=P34;char date3;int C100us;int m=0,n=0,o=0;void T0Int(void) interrupt 1 using 0 /T0中断服务函数 C100us-; if(C100us=0) /100us计数器为0,重置计数器 C100us=20000; m+; date0=date0+1; if(m=10) n+; m=0; date0=0x00; date1=date1+1; if(n=6) o+; n=0; date1=0x10; date2=date2+1; if(n=10)n=0; date1=0x20; void main(void) /主函数unsigned int i,j=0; TMOD=0X02; /设置T0工作方式与初值 TH0=0xd2; TL0=0x00; IE=0X82; /开中断 date0=0x00; date1=0x10; date2=0x20; C100us=20000; while(1) TR0=0; P0=date0; for(i=0;i100;i+); P0=date1; for(i=0;i100;i+); P0=date2; for(i=0;i100;i+); if(a0=0) j=1; TR0=1; /启动定时器0 while(j) P0=date0; for(i=0;i100;i+); P0=date1; for(i=0;i100;i+); P0=date2; for(i=0;i100;i+); if(a1=0)j=0;TR0=0; if(a1=0) if(a0=0) date0=0x00; date1=0x10; date2=0x20; 2、 保存并编译程序;任务三:、 打开WAVE软件,新建一个文件,输入以下程序:#includevoid int0 () interrupt 0 using 0unsigned int z=8,j; P1=0Xfe; for(j=0;j30000;j+); while(z) z-; P1=P11; for(j=0;j0); P2=0x00; for(i=50000;i-;i0); 、 保存并编译程序;实验五 液晶显示与串行通信的应用一、 实验目的1、 学会液晶基本外部电路的焊接;2、 掌握用程序控制液晶显示;3、 了解串口通信的基本原理;4、 掌握用程序实现串口通信;二、 实验设备单片机最小系统1602液晶一块串口线一条三、 实验内容1、 液晶电路的焊接;2、 编写一个程序,使液晶显示“welcome to here! study happy!”3、编写一个程序,四、 实验步骤任务一:1、液晶引脚功能如下:编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/O2VDD电源正极10D3Data I/O3VL液晶显示偏压信号11D4Data I/O4RS数据/命令选择端12D5Data I/O5R/W使能信号13D6Data I/O6EData I/O14D7Data I/O7D0Data I/O15BLA背光电源正极8D1Data I/O16BLK背光电源负极2、基本操作时序:读状态:RS=L,RW=H,E=H 输出:D0D7=状态字写指令:RS=L,RW= L,D0D7=指令码,E=高脉冲 输出:无读数据:RS= H,RW=H,E=H 输出:D0D7=数据写数据:RS= H,RW= L,D0D7=数据,E=高脉冲 输出:无3、显示模式设置:指令码功能00111000设置1602*2显示,5*7点阵,8位数据口4、显示开/关机光标设置:指令码功能00001DCBD=1 开显示;D=0 关显示;C=1 显示光标;C=0 不显示光标;B=1 光标闪烁;B=0 光标不显示000001NSN=1 当读或写一个字符后地址指针加一,且光标加一N=0当读或写一个字符后地址指针减一,且光标减一S=1 当写一个字符,整屏显示左移(N=1)任务二:、 打开WAVE软件,新建一个文件,输入以下程序:#include#define uchar unsigned charsbit rs=P30;sbit rw=P31;sbit e=P35;delay(uchar time)while(time0) time-;void enrw()rs=0; rw=0; e=0; delay(250); e=1;write_data(uchar c)P1=c; rs=1; rw=0; e=0; delay(250); e=1;init_lcd(void)/初始化P1=0x01;/清屏幕enrw();P1=0x38;/数据长度为8位,双行显示,5*7字符。enrw();P1=0x0c;/打开显示开关enrw();P1=0x06;/地址计数递增,显示屏不移动enrw();write_cmd(uchar m)/写命令,注意与写数据的区别 P1=m; enrw();position(uchar row,uchar colum)/写位置uchar p; if(row=1) p=0x82+colum-1; else p=0xC0+colum-1; write_cmd(p);display(uchar *s)/写字符串,简单的指针应用for(;*s!=0;s+) write_data(*s);void main()unsigned int m,n; m=1; n=2; init_lcd(); position(m,1); display(welcome to here! ); position(n,1); display(study happy!); while(1);、 保存并编译程序;任务三:1、串口寄存器89s52的串行口是全双工的UART,可同时接收和发送数据,是使用特殊寄存器内的SBUF寄存器及SCON串行控制寄存器。(1)SCON串行控制寄存器SM0SM1SM2RENTB8RB8TIRIRI:接收中断标志位。在模式0下,当第8 位结束时,硬件会将其设置为1,在其他模式下载停止位的一半时由硬件设定,此位必须由软件清除;TI:发送中断标志位。在模式0下,当第八位结束时,硬件会将其设置为1,在其他模式下载停止位的一半时由硬件设定,此位必须由软件清除;RB8: 在模式2或3时,发送时的第九数据位放入此位,在模式1时,若SM2=0,则RB8为接收到的停止位,模式0时,RB8没用;TB8:在模式2或3时,发送时的第九数据位由软件控制;REN由软件设定或清除,以决定是否接收串行数据,1为接收,0为发送;SM2:当串行口模式为2或3时,使能多处理器通信的功能,在模式0时,SM2必须为0;SM1:串行口模式选择;SM0:串行口模式选择;(2)PCON电源控制寄存器SMODGF1GF0PDIDLSMOD:双倍波特率。当串行工作于模式1、2或3时,如使用TIMER1做波特率发生器,且SMOD=1则波特率为双倍;GF1、GF0:通用标志位;PD:电源下降位,PD为1时进入掉电状态;IDL:IDLE模式位,IDL为1时进入空闲工作方式;(3)合法波特率:110、300、600、1200、2400、9600、14400、19200、28800、38400、56000、128000, 256000任务四:1、打开WAVE软件,新建一个文件,输入以下程序:#include#define uchar unsigned charchar date3;main()int a,i;date0=0x00;date1=0x10; SCON=0x50; / 工作方式 TMOD=0x20; TH1=0xfd; TL1=0xfd; PCON=PCON&0x7f; TR1=1; while(1) date0=0x00; date1=0x10; date2=0x20; while(!RI) P0=date0+a%100%10; for(i=0;i100;i+); P0=date1+a%100/10; for(i=0;i100;i+); P0=date2+a/100; for(i=0;i100;i+); a=SBUF; /把接收到的数据传给变量a RI=0; 3、 保存并编译程序;实验六 单片机音乐播放器制作一、实验目的1. 了解单片机发生原理2. 熟悉乐谱的编辑二、实验设备单片机最小系统LM386功放模块三、实验内容1.制作一个音乐播放器四、实验步骤1、相关知识要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用定时器计出这个半周期的时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可以在I/O脚上得到此频率的脉冲。计数脉冲值与频率的关系公式如下:N=Fi2Fr N:计数值Fi:内部计数时一次为1us,故其频率为1MHz Fr: 要产生的频率其计数值的求法如下:T=65536-N = 65536- Fi2Fr例如:已知中音DO(523Hz),求其计数值T = 65536 500000 / 523 = 645802、按图连接:2、常用节拍对照表:/*music.c*created by zhangyongchang*date 2006 4.5/*/#include unsigned char m; /m为频率常数unsigned char n=0; /n为节拍常数 unsigned char i=0;sbit bell=P17;unsigned char code music_tab =0x18, 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,0x2
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:(带图纸和文档)8051单片机c语言编程入门指导书单片机资料
链接地址:https://www.renrendoc.com/p-21243453.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!