ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:319.11KB ,
资源ID:26249419      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26249419.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电子技术.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电子技术.docx

1、电子技术摘 要单片机就是在一块硅片上集成了各种部件的 微型计算机,这些器件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器计数器和多种IO接口电路。uP51S 单片机学习开发板是一款学习单片机的实用工具,支持89S 系列单片机和ATMega8515 管脚兼容的AVR 单片机!配有丰富的代码例子,让您更快进入单片机的世界! 学习单片机离不开实验,以往单片机的实验往往依赖于仿真机和单片机学习系统,价格昂贵,至使学习单片机的门槛很高,很多人不能跨入单片机学习的大门。近年来,随着FLASH型单片机的广泛应用,采用软件模拟加写片验证成为一种经济实用的实验方法,尤其是随着单片机技术的发展,

2、很多单片机都具有了ISP 功能,只要一根下载线即可以编程,开始学习时,不再需要仿真机、编程器,使得单片机的入门门槛大大降低,学习单片机的人越来越多。UP51S 就是这样一款具有实验、下载、编程功能与一体的实验板,配合仿真模块+KEIL软件环境还可以实现硬件的仿真功能。实现单步、过程单步、设置断点等调试手段调试程序。关键字:AT89S5X,X5045,At24C,16X2字符液晶,93C46。引言uP51S 单片机学习开发板总体定位是一款单片机入门级的学习开发板。板上安装了4 位共阳数码管;8 个发光二极管;四个按钮开关;一个简单的音响电路;At24C类芯片插座;X5045 芯片插座;93C46

3、芯片插座;RS232 串行接口;字符型LCD 插座;带有标准ISP 插座,可用下载线对AT89S5X单片机编程;去掉笨重的变压器采用USB 供电;4 位拨码开关;全部资源都引出的多功能扩展接口;大面积实验区;所有的资源全部都可以使用跳线选择,方便明了;主芯片安装位留有足够位置,既可以安装芯片插座,也可以安装ZIF 插座(配合下载线可将该板作为编程器用);有扩展接口,可方便地扩展其他串行接口芯片,我将举出配套使用的128x64 点阵液晶模块、USB 开发模块、TCP/IP 模块、AD/DA 模块、电机实验模块等更多模块。使用这块实验板可以进行流水灯、人机界面程序设计、音响、计数器等基本编程练习,

4、还可以学习I2C 接口芯片使用、SPI 接口芯片使用、字符型液晶接口技术、与PC 机进行串行通讯等目前较为流行的技术。论文目录第一章、 硬件结构4第二章、 开发板使用说明8第三章、 常用实验举例103.1、LED流水灯控制103.2、警报声程序113.3、单片机唱歌123.4、LED数码显示153.5、按键扫描程序173.6、串行通迅19第四章、 附录224.1、UP51S开发板电路图224.2、参考文献27 第一章、硬件结构一、发光二极管:单片机的P0 端口接了8 个发光二极管,这些发光二极管的负极通过一个排电阻接到P0端口各引脚,而正极则接到正电源端,发光二极管亮的条件是P0 口相应的引脚

5、为低电平,即如果P0 口某引脚输出为0,相应的灯亮,如果输出为1,相应的灯灭。例:MOV P0,#0FH该行程序将使发光二极管LD1-LD4 熄灭,而LD5-LD8 点亮。二、数码管:单片机的P0 口和P2 口的部份引脚构成了4 位LED 数码管驱动电路,这里LED 数码管采用了共阳型,共阳型数码管的笔段(即对应abcdefgh)引脚是二极管的负极,所有二极管的正极连在一起,构成公共端,即片选端,对于这种数码管的驱动,要求在片选端提供电流,为此,使用了PNP 型三极管作为片选端的驱动,共使用4 只三极管,所有三极管的发射极连在一起,接到正电源端,基极则通过限流电阻分别接P2.0P2.3,集电极

6、分别向4 只数码管供电。图2 共阳型数LED 显示器以下是根据硬件连线而写的字形码:字01234567字形码0C0H0F9H0A4H0B0H99H92H82H0F8H字89ABCDEF字形码80H90H88H83H0C6H0A1H86H8EHUP51S 单片机实验板显示器接口电路原理图三、串行接口:串行通讯功能是目前单片机应用中经常要用到的功能,80C51 系列单片机P3.0 和P3.1引脚的第二功能是串行口RXD 与TXD,其内部的串行接口电路具有全双工异步通讯功能,但是单片机输出的信号是TTL 电平,为获得电平匹配,实验板上扩充了一片MAX232 芯片,利用该芯片进行电平转换,该芯片内部有

7、电荷泵,只要单一的5V 电源供电即可自行产生RS232 所需的高电压,使用方便。四、按键输入:P3 口的P3.2P3.5 接了K1K4 共4 个按钮开关,用作键盘。五、音响接口:电路板上的三极管驱动一个无源蜂鸣器,构成一个简单的音响电路,该电路利用单片机的P3.7 脚引脚作为音源,经三极管放大后发声。由于P3.7 同时作为按键输入使用,为了避免按键操作对发声电路的影响,使用Beep 资源跳线,只在需要时才用短路子将两个引脚连起来,这时P3.7 作为输出口来使用。六、AT24C芯片接口:在单片机应用中,经常会有一些数据需要长期保存,传统的方法是用RAM 加后备电池的方法,但这种方法成本较高,电路

8、也较复杂。近年来,非易失性存储器技术发展很快,EEPROM 就是其中的一种,和RAM 相比,EEPROM 不能够无限多次地擦除和写入(一般可以做到1000000 万次,也有可以做到10000000 次的),这是它的缺点,但是断电之后,不需要特殊的断电保护措施,这是其优点。24 系列是EEPROM 中应用广泛的一类,该系列芯片仅有8 个引脚,采用2 线制I2C 接口。为学习该芯片的使用,设计了通用I2C 接口电路,可进行AT24C01A、AT24C02 等芯片的读写试验。电路中P1.0 引脚接串行时钟线,P1.1 接串行数据线。有关定义如下:SCL BIT P1.0; 串行时钟SDA BIT P

9、1.1; 串行数据单片机将一组数据先写入24c01 中,写入24c01 的数据如下unsigned char code discode = 0x7e,0xbd,0xdb,0xe7,0xdb,0xbd,0x7e,0xff;/ 写入到AT24C01 的数据串然后才从24c01 读出每个数据送到8 个led 上显示。将跳线J3 设置到2-3,可以看到8 个LED 的随读取的数据变化花样。J3 跳线说明:J3 短路2、3 实验流水灯,J3 短路1、2 实验数码管显示,J3 不短路实验液晶电路。七、93C46 芯片接口:93c46 和AT24C芯片的功能一样,也是eprom,只是接口方式不同。AT24C

10、芯片使用I2C 两线接口,而93C46 采用的SPI 接口。定义如下:sbit CS = P16;sbit SK = P10;sbit DI = P17;sbit DO = P36;八、X5045 接口X5045 是一片多功能的芯片,它具有以下的一些功能:上电复位、电压跌落检测、看门狗定时器、512 字节的EEPROM。该芯片采用三线制SPI 接口方式与单片机相连,这也是目前一个应用比较广泛的芯片,通过学习这块芯片与单片机接口的方法,还可以了解和掌握三线制SPI 总线接口的工作原理及一般编程方法。硬件电路上,有关定义如下:CS BIT P1.2SI BIT P1.4SCK BIT P1.3SO

11、 BIT P1.5例如:对X5045 测试,设计了具有如下功能的一个程序。X5045 读写演示程序先用字节写入: 写入11H 到地址55H (字节写入)读取55H 的数据送给8 个灯显示再用页方式写入: 页写入22H/33H/44H 到地址1F0/1/2H连续读取地址1F0/1/2H 的数据送给8 个灯显示九、字符型液晶接口:液晶显示器由于体积小、重量轻、功耗低等优点,日渐成为各种便携式电子产品的理想显示器。从液晶显示器显示内容来分,可分为段式、字符式和点阵式三种。其中字符式液晶显示器以其价廉、显示内容丰富、美观、无须定制、使用方便等特点成为LED 显示器的理想替代品。字符型液晶显示器专门用于

12、显示数字、字母、图形符号并可显示少量自定义符号。这类显示器均把LCD 控制器、点阵驱动器、字符存贮器等做在一块板上,再与液晶屏一起组成一个显示模块,因此,这类显示器安装与使用都较简单。字符型液晶一般均采用HD44780 及兼容芯片作为控制器,因此,其接口方式基本是标准的。本板上带有LCD 接口,可直接与字符型液晶相连。本板上数据线被连到P0 口,P2.0 接RS 端,P2.1 接RW 端,P2.2 接E 端。有关定义如下:sbit rs = P20;sbit rw = P21;sbit ep = P22;第二章、开发板使用说明本实验板是面对的是入门者,因此在设计时充分考虑了可用性。一、电源提供

13、:本板需外接电源。外接电源有两种方法,如果你手边已有5V 稳压电源,那么可以通过右上角标号为+5VIN 的接口向实验板供电,极性已在板上标出,写有“5V IN”的接正电源,另一端GND 接负电源。第二种方式直接使用USB 电源供电,轻巧方便。二、复位选择:本板提供了3 种复位电路,即RC 复位、按键复位、外接芯片复位。J5 用于复位选择,在该插针座下标有Reset Select 字样,很容易辨认。该跳线用于选择RC 复位电平的选择,用于选择51 系列芯片还是AVR 芯片(注:51 和管脚兼容的AVR 单片机只是在复位电平上相反),51 芯片接2-3 跳到VCC 一边,AVR 芯片接1-2 跳到

14、GND 一边。如果要使用X5045 的复位则将跳线CB1 闭合就可以了。选择X5045 复位,可用于测试X5045 芯片的看门狗特性。不论短路子是否插于左侧,X5045芯片内部的EEPROM 存储器总是可用的。注意:在使用ISP 在线可编程功能时,必须将CB1 短路拨除,不选择X5045 复位,由下载线控制复位端。如果做AVR 单片机芯片复位实验需要将X5045 芯片拨出,换上一块X5043 芯片(需自行购买,不随板提供),然后将短路子CB1 闭合。三、音响电路工作选择:BEEP 用于选择P3.7 究竟工作于输出方式还是输入方式,当需要将P3.7 作为驱动音响电路工作的输出端时,闭合BEEP,

15、否则断开。四、字符型LCD 实验:做LCD 实验时,需断开数码管的供电电路,J3 跳线拿掉。J3 用于选择显示器究竟选择哪一种。J3 闭合1-2 选择4 位数码管,J3 闭合2-3 选择8 个LED,J3 拿掉选择16x2LCD本板提供了供LCD 使用的16 针标准接线插座,标号为U7,并且在U7 上方标有LCD管脚的定义,安装是注意顺序。R6,R7 是调结对比度的分压电阻,如果感觉效果不理想,可以自己实验调节。五、ISP 功能的使用:标号为ISP PORT 的插座为ISP 下载插座,标准ATMEL ISP 下载线定义。将下载电缆与实验板正确连接具体接法如下表所示:表1 ISP插座接线标号名称

16、描述1SCK串行时钟3MISO主器件输入-从器件输出4Vcc电源5RST复位端9MOSI主器件输出-从器件输入2、10GND地6、7、8NC未接六、仿真功能的使用:使用本板提供的仿真模块,可以直接与Keil 联机,使用Mon51 提供的单步、过程单步、设置断点等调试方法进行程序的调试。第三章、常用实验举例 3.1节、LED流水灯控制程序说明:#include#include void delayms(unsigned char ms) / 延时子程序 unsigned char i; while(ms-) for(i = 0; i 120; i+); main()unsigned char L

17、ED;LED = 0xfe;P0 = LED;while(1)delayms(250); LED = _crol_(LED,1); /循环右移1位,点亮下一个LEDP0 = LED;3.2节、警报声程序程序说明:#include #include sbit SPK = P37;unsigned char frq; void delayms(unsigned char ms);main() TMOD = 0x01; frq = 0x00; TH0 = 0x00; TL0 = 0xff; TR0 = 1; IE = 0x82; while(1) frq+; delayms(1); void tim

18、er0() interrupt 1 using 1 TH0 = 0xfe; TL0 = frq; SPK = SPK; void delayms(unsigned char ms) / 延时子程序 unsigned char i; while(ms-) for(i = 0; i 120; i+); 3.3节、单片机唱歌程序说明:SPK EQU P3.7 ; 蜂鸣器所在端口 ORG 0000H JMP STARTSTART: MOV R3,#00HNEXT: MOV A,R3 MOV DPTR,#TABLE MOVC A,A+DPTR JZ START MOV R7,A INC R3 MOV A

19、,R3 MOVC A,A+DPTR MOV R2,A ACALL SONG INC R3 SJMP NEXT ;= 歌曲播放子程序 =SONG: MOV A,R2 ; 取出节拍 RL A JNZ KEEP MOV A,#01HKEEP: MOV R2,AREPEAT: ACALL EIGHTH DJNZ R2,REPEAT RET;= 产生1/8拍延时子程序 = EIGHTH: MOV A,R7 ; 查表取出廷时参数,保存到R4 MOV DPTR,#DELAY_T MOVC A,A+DPTR MOV R4,A MOV A,R7 ; 查表取出1/8拍周期数,保存到R5 MOV DPTR,#S_P

20、ARA MOVC A,A+DPTR MOV R5,ANEXTCYC: ACALL SOUND DJNZ R5,NEXTCYC RET;= 发声子程序 = SOUND: SETB SPK ACALL SDELAY CLR SPK ACALL SDELAY RET;= 延时子程序 =SDELAY: MOV A,R4 ; 廷时值在R4内 MOV R0,AXL2: MOV R1,#03HDL1: NOP DJNZ R1,DL1 DJNZ R0,XL2 RET;= 1/8拍周期表 =S_PARA: DS 1DH DB 15H,16H,00 DB 19H,00H,1CH,00H,1FH,21H,00H,2

21、5H DB 00H,29H,2CH,00H,31H,34H,37H,00H DB 3EH,41H,00H,49H,00H,52H,57H,00H DB 62H;= 延时参数表 =DELAY_T: DS 1DH DB 7EH,77H,00H DB 6AH,00H,5EH,00H,54H,4FH,00H,46H DB 00H,3FH,3BH,00H,35H,32H,2FH,00H DB 2AH,27H,00H,23H,00H,1FH,1DH,0C0H DB 1AH;= 歌曲表 =TABLE: DW 2202H,2902H,2902H,2902H,2906H,2702H ;我从山中来 DW 2502

22、H,2702H,2502H,2402H,2208H ;带着兰花草 DW 2E02H,2E02H,2E02H,2E02H,2E06H,2C02H ;种在小园中 DW 2902H,2C02H,2D02H,2A02H,2908H ;祈祷花开早 DW 2902H,2E02H,2E02H,2C02H,2906H,2702H ;一日看三回 DW 2502H,2702H,2502H,2402H,2206H,1D02H ;看得花时过 DW 1D02H,2502H,2502H,2402H,2206H,2902H ;兰花却依然 DW 2702H,2502H,2402H,2002H,2208H ;苞也无一个 DW

23、0000H ; END 3.4节、LED数码显示#include #include #define bit(x) 1xunsigned char data dis_digit;unsigned char code dis_code11=0xc0,0xf9,0xa4,0xb0, / 0, 1, 2, 3 0x99,0x92,0x82,0xf8,0x80,0x90, 0xff;/ 4, 5, 6, 7, 8, 9, off unsigned char data dis_buf8;unsigned char data dis_index;void main() P0 = 0xff; P2 = 0xf

24、f; TMOD = 0x01; TH0 = 0xFC; TL0 = 0x17; IE = 0x82; dis_buf0 = dis_code0x1; dis_buf1 = dis_code0x2; dis_buf2 = dis_code0x3; dis_buf3 = dis_code0x4; dis_buf4 = dis_code0x5; dis_buf5 = dis_code0x6; dis_buf6 = dis_code0x7; dis_buf7 = dis_code0x8; dis_digit = 0xfe; dis_index = 0; TR0 = 1; while(1);void t

25、imer0() interrupt 1/ 定时器0中断服务程序, 用于数码管的动态扫描/ dis_index - 显示索引, 用于标识当前显示的数码管和缓冲区的偏移量/ dis_digit - 位选通值, 传送到P2口用于选通当前数码管的数值, 如等于0xfe时,/ 选通P2.0口数码管/ dis_buf - 显于缓冲区基地址 TH0 = 0xFC; TL0 = 0x17; P2 = 0xff; / 先关闭所有数码管 P0 = dis_bufdis_index; / 显示代码传送到P0口 P2 = dis_digit; / dis_digit = _crol_(dis_digit,1); /

26、位选通值左移, 下次中断时选通下一位数码管 dis_index+; / dis_index &= 0x07; / 8个数码管全部扫描完一遍之后,再回到第一个开始下一次扫描3.5节、按键扫描程序程序说明:#include #include unsigned char scan_key();void proc_key(unsigned char key_v);void delayms(unsigned char ms);sbit AN1 = P32;sbit AN2 = P33;unsigned char leddata=0xfe;main() unsigned char key_s,key_v;

27、 key_v = 0x03; P0 = leddata; while(1) key_s = scan_key(); if(key_s != key_v) delayms(10); key_s = scan_key(); if(key_s != key_v) key_v = key_s; proc_key(key_v); unsigned char scan_key() unsigned char key_s; key_s = 0x00; key_s |= AN2; key_s = 1; key_s |= AN1; return key_s; void proc_key(unsigned cha

28、r key_v) if(key_v & 0x01) = 0) leddata = _cror_(leddata,1); else if(key_v & 0x02) = 0) leddata = _crol_(leddata, 1); P0=leddata;void delayms(unsigned char ms) / 延时子程序 unsigned char i; while(ms-) for(i = 0; i 120; i+); 3.6节、串行通讯程序说明:#include #include unsigned char key_s, key_v, tmp;char code str = welcome! nr;void send_str();bit scan_key();void proc_key();void delayms(

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1