uP51S 单片机学习开发板 毕业论文.doc

上传人:小小飞 文档编号:3903348 上传时间:2019-10-10 格式:DOC 页数:28 大小:448.52KB
返回 下载 相关 举报
uP51S 单片机学习开发板 毕业论文.doc_第1页
第1页 / 共28页
uP51S 单片机学习开发板 毕业论文.doc_第2页
第2页 / 共28页
uP51S 单片机学习开发板 毕业论文.doc_第3页
第3页 / 共28页
uP51S 单片机学习开发板 毕业论文.doc_第4页
第4页 / 共28页
uP51S 单片机学习开发板 毕业论文.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《uP51S 单片机学习开发板 毕业论文.doc》由会员分享,可在线阅读,更多相关《uP51S 单片机学习开发板 毕业论文.doc(28页珍藏版)》请在三一文库上搜索。

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

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

3、片插座;93C46芯片插座;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端口各引脚,而正极则接到正电源端,发光二极管亮的条件是

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

6、0P2.3,集电极分别向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; 串行时钟

9、SDA BIT P1.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,只是接口方

10、式不同。AT24C芯片使用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 B

11、IT P1.3SO 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

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

15、时,闭合BEEP,否则断开。四、字符型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 IS

16、P插座接线标号名称描述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

17、 char LED;LED = 0xfe;P0 = LED;while(1)delayms(250); LED = _crol_(LED,1);/循环右移1位,点亮下一个LEDP0 = LED;3.2节、警报声程序程序说明:#include #include sbitSPK = 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 timer0()

18、 interrupt 1 using 1TH0 = 0xfe;TL0 = frq;SPK = SPK;void delayms(unsigned char ms)/ 延时子程序unsigned char i;while(ms-)for(i = 0; i 120; i+);3.3节、单片机唱歌程序说明:SPKEQUP3.7; 蜂鸣器所在端口ORG0000HJMPSTARTSTART:MOVR3,#00HNEXT:MOVA,R3MOVDPTR,#TABLEMOVCA,A+DPTRJZSTARTMOVR7,AINCR3MOVA,R3MOVCA,A+DPTRMOVR2,AACALLSONGINCR3S

19、JMPNEXT;= 歌曲播放子程序 =SONG:MOVA,R2; 取出节拍RLAJNZKEEPMOVA,#01HKEEP:MOVR2,AREPEAT:ACALLEIGHTHDJNZR2,REPEATRET;= 产生1/8拍延时子程序 =EIGHTH:MOVA,R7; 查表取出廷时参数,保存到R4MOVDPTR,#DELAY_TMOVCA,A+DPTRMOVR4,AMOVA,R7; 查表取出1/8拍周期数,保存到R5MOVDPTR,#S_PARAMOVCA,A+DPTRMOVR5,ANEXTCYC:ACALLSOUNDDJNZR5,NEXTCYCRET;= 发声子程序 =SOUND:SETBSP

20、KACALLSDELAYCLRSPKACALLSDELAYRET;= 延时子程序 =SDELAY:MOVA,R4; 廷时值在R4内MOVR0,AXL2:MOVR1,#03HDL1:NOPDJNZR1,DL1DJNZR0,XL2RET;= 1/8拍周期表 =S_PARA:DS1DHDB15H,16H,00DB19H,00H,1CH,00H,1FH,21H,00H,25HDB00H,29H,2CH,00H,31H,34H,37H,00HDB3EH,41H,00H,49H,00H,52H,57H,00HDB62H;= 延时参数表 =DELAY_T:DS1DHDB7EH,77H,00HDB6AH,00

21、H,5EH,00H,54H,4FH,00H,46HDB00H,3FH,3BH,00H,35H,32H,2FH,00HDB2AH,27H,00H,23H,00H,1FH,1DH,0C0HDB1AH;= 歌曲表 =TABLE:DW2202H,2902H,2902H,2902H,2906H,2702H;我从山中来DW2502H,2702H,2502H,2402H,2208H;带着兰花草DW2E02H,2E02H,2E02H,2E02H,2E06H,2C02H;种在小园中DW2902H,2C02H,2D02H,2A02H,2908H;祈祷花开早DW2902H,2E02H,2E02H,2C02H,290

22、6H,2702H;一日看三回DW2502H,2702H,2502H,2402H,2206H,1D02H;看得花时过DW1D02H,2502H,2502H,2402H,2206H,2902H;兰花却依然DW2702H,2502H,2402H,2002H,2208H;苞也无一个DW0000H;END3.4节、LED数码显示#include #include #define bit(x) 1xunsigned char data dis_digit;unsigned char code dis_code11=0xc0,0xf9,0xa4,0xb0,/ 0, 1, 2, 30x99,0x92,0x82

23、,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 = 0xff;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_buf

24、5 = dis_code0x6;dis_buf6 = dis_code0x7;dis_buf7 = dis_code0x8;dis_digit = 0xfe;dis_index = 0;TR0 = 1;while(1);void timer0() interrupt 1/ 定时器0中断服务程序, 用于数码管的动态扫描/ dis_index - 显示索引, 用于标识当前显示的数码管和缓冲区的偏移量/ dis_digit - 位选通值, 传送到P2口用于选通当前数码管的数值, 如等于0xfe时,/选通P2.0口数码管/ dis_buf - 显于缓冲区基地址TH0 = 0xFC;TL0 = 0x17

25、;P2 = 0xff;/ 先关闭所有数码管P0 = dis_bufdis_index;/ 显示代码传送到P0口P2 = dis_digit;/ dis_digit = _crol_(dis_digit,1);/ 位选通值左移, 下次中断时选通下一位数码管 dis_index+;/ dis_index &= 0x07;/ 8个数码管全部扫描完一遍之后,再回到第一个开始下一次扫描3.5节、按键扫描程序程序说明:#include #include unsigned char scan_key();void proc_key(unsigned char key_v);void delayms(unsi

26、gned char ms);sbitAN1 = P32;sbitAN2 = P33;unsigned char leddata=0xfe;main()unsigned char key_s,key_v;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

27、 = 0x00;key_s |= AN2;key_s = 1;key_s |= AN1;return key_s;void proc_key(unsigned char 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节、串行通讯

28、程序说明:#include #include unsigned char key_s, key_v, tmp;char code str = welcome! nr;void send_str();bitscan_key();void proc_key();void delayms(unsigned char ms);void send_char(unsigned char txd);sbitAN1 = P32;main()TMOD = 0x20;/ 定时器1工作于8位自动重载模式, 用于产生波特率TH1 = 0xFD;/ 波特率9600TL1 = 0xFD;SCON = 0x50;/ 设定

29、串行口工作方式PCON &= 0xef;/ 波特率不倍增TR1 = 1;/ 启动定时器1IE = 0x0;/ 禁止任何中断while(1)if(scan_key()/ 扫描按键delayms(10);/ 延时去抖动if(scan_key()/ 再次扫描key_v = key_s;/ 保存键值proc_key();/ 键处理if(RI)/ 是否有数据到来RI = 0;tmp = SBUF;/ 暂存接收到的数据P0 = tmp;/ 数据传送到P0口send_char(tmp);/ 回传接收到的数据bit scan_key()/ 扫描按键key_s = 0x00;key_s |= AN1;retur

30、n(key_s key_v);void proc_key()/ 键处理if(key_v & 0x01) = 0)/ AN1按下send_str();/ 传送字串welcome!.void send_char(unsigned char txd)/ 传送一个字符SBUF = txd;while(!TI);/ 等特数据传送TI = 0;/ 清除数据传送标志void send_str()/ 传送字串unsigned char i = 0;while(stri != 0)SBUF = stri;while(!TI);/ 等特数据传送TI = 0;/ 清除数据传送标志i+;/ 下一个字符void del

31、ayms(unsigned char ms)/ 延时子程序unsigned char i;while(ms-)for(i = 0; i 120; i+);第四章、附录4.1、UP51S开发板电路图284.2、参考文献1、 李朝清。单片机原理及接口技术。北京:航空航天大学出版社,19992、 何立民。单片机应用系统设计。北京:航空航天大学出版社,19903、 张洪润。单片机应用技术教程。北京:清华大学出版社,19974、 张友德,相胜球。MCS-51单片机实验指导。上海:复旦大学出版社,19935、 计算机硬件实践指南编写组编著。计算机硬件实践指南。南京:东南大学出 版社,19946、 曹巧媛。微型计算机原理及其应用。长沙:湖南科技出版社,19947、 沈德金,陈奥初。MCS-51系列单片机接口电路于应用程序实例。北京:航空航天大学出版社,19928、 李勋,李新民。MCS-96系列8089单片微型计算机。北京:航空航天大学出版社,19919、 孙涵芳,徐爱卿。MCS=51/96系列单片机原理及应用。北京:航空航天大学出版社,198810、 鄢定明。单片计算机应用技术。北京:人民邮电出版社,198811、 陈章龙。实用单片机大全。哈尔滨:黑龙江科学技术出版社,1989

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1