




免费预览已结束,剩余23页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
up51s 单片机学习开发板摘要单片机就是在一块硅片上集成了各种部件的 微型计算机,这些器件包括中央处理器cpu、数据存储器ram、程序存储器rom、定时器计数器和多种io接口电路。up51s 单片机学习开发板是一款学习单片机的实用工具,支持89s 系列单片机和atmega8515 管脚兼容的avr 单片机!配有丰富的代码例子,让您更快进入单片机的世界! 学习单片机离不开实验,以往单片机的实验往往依赖于仿真机和单片机学习系统,价格昂贵,至使学习单片机的门槛很高,很多人不能跨入单片机学习的大门。近年来,随着flash型单片机的广泛应用,采用软件模拟加写片验证成为一种经济实用的实验方法,尤其是随着单片机技术的发展,很多单片机都具有了isp 功能,只要一根下载线即可以编程,开始学习时,不再需要仿真机、编程器,使得单片机的入门门槛大大降低,学习单片机的人越来越多。up51s 就是这样一款具有实验、下载、编程功能与一体的实验板,配合仿真模块+keil软件环境还可以实现硬件的仿真功能。实现单步、过程单步、设置断点等调试手段调试程序。关键字:at89s5x,x5045,at24c,16x2字符液晶,93c46。引言up51s 单片机学习开发板总体定位是一款单片机入门级的学习开发板。板上安装了4 位共阳数码管;8 个发光二极管;四个按钮开关;一个简单的音响电路;at24c类芯片插座;x5045 芯片插座;93c46芯片插座;rs232 串行接口;字符型lcd 插座;带有标准isp 插座,可用下载线对at89s5x单片机编程;去掉笨重的变压器采用usb 供电;4 位拨码开关;全部资源都引出的多功能扩展接口;大面积实验区;所有的资源全部都可以使用跳线选择,方便明了;主芯片安装位留有足够位置,既可以安装芯片插座,也可以安装zif 插座(配合下载线可将该板作为编程器用);有扩展接口,可方便地扩展其他串行接口芯片,我将举出配套使用的128x64 点阵液晶模块、usb 开发模块、tcp/ip 模块、ad/da 模块、电机实验模块等更多模块。使用这块实验板可以进行流水灯、人机界面程序设计、音响、计数器等基本编程练习,还可以学习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 口相应的引脚为低电平,即如果p0 口某引脚输出为0,相应的灯亮,如果输出为1,相应的灯灭。例:mov p0,#0fh该行程序将使发光二极管ld1-ld4 熄灭,而ld5-ld8 点亮。二、数码管:单片机的p0 口和p2 口的部份引脚构成了4 位led 数码管驱动电路,这里led 数码管采用了共阳型,共阳型数码管的笔段(即对应abcdefgh)引脚是二极管的负极,所有二极管的正极连在一起,构成公共端,即片选端,对于这种数码管的驱动,要求在片选端提供电流,为此,使用了pnp 型三极管作为片选端的驱动,共使用4 只三极管,所有三极管的发射极连在一起,接到正电源端,基极则通过限流电阻分别接p2.0p2.3,集电极分别向4 只数码管供电。图2 共阳型数led 显示器以下是根据硬件连线而写的字形码:字01234567字形码0c0h0f9h0a4h0b0h99h92h82h0f8h字89abcdef字形码80h90h88h83h0c6h0a1h86h8ehup51s 单片机实验板显示器接口电路原理图三、串行接口:串行通讯功能是目前单片机应用中经常要用到的功能,80c51 系列单片机p3.0 和p3.1引脚的第二功能是串行口rxd 与txd,其内部的串行接口电路具有全双工异步通讯功能,但是单片机输出的信号是ttl 电平,为获得电平匹配,实验板上扩充了一片max232 芯片,利用该芯片进行电平转换,该芯片内部有电荷泵,只要单一的5v 电源供电即可自行产生rs232 所需的高电压,使用方便。四、按键输入:p3 口的p3.2p3.5 接了k1k4 共4 个按钮开关,用作键盘。五、音响接口:电路板上的三极管驱动一个无源蜂鸣器,构成一个简单的音响电路,该电路利用单片机的p3.7 脚引脚作为音源,经三极管放大后发声。由于p3.7 同时作为按键输入使用,为了避免按键操作对发声电路的影响,使用beep 资源跳线,只在需要时才用短路子将两个引脚连起来,这时p3.7 作为输出口来使用。六、at24c芯片接口:在单片机应用中,经常会有一些数据需要长期保存,传统的方法是用ram 加后备电池的方法,但这种方法成本较高,电路也较复杂。近年来,非易失性存储器技术发展很快,eeprom 就是其中的一种,和ram 相比,eeprom 不能够无限多次地擦除和写入(一般可以做到1000000 万次,也有可以做到10000000 次的),这是它的缺点,但是断电之后,不需要特殊的断电保护措施,这是其优点。24 系列是eeprom 中应用广泛的一类,该系列芯片仅有8 个引脚,采用2 线制i2c 接口。为学习该芯片的使用,设计了通用i2c 接口电路,可进行at24c01a、at24c02 等芯片的读写试验。电路中p1.0 引脚接串行时钟线,p1.1 接串行数据线。有关定义如下:scl bit p1.0; 串行时钟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,只是接口方式不同。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 bit p1.3so bit p1.5例如:对x5045 测试,设计了具有如下功能的一个程序。x5045 读写演示程序先用字节写入: 写入11h 到地址55h (字节写入)读取55h 的数据送给8 个灯显示再用页方式写入: 页写入22h/33h/44h 到地址1f0/1/2h连续读取地址1f0/1/2h 的数据送给8 个灯显示九、字符型液晶接口:液晶显示器由于体积小、重量轻、功耗低等优点,日渐成为各种便携式电子产品的理想显示器。从液晶显示器显示内容来分,可分为段式、字符式和点阵式三种。其中字符式液晶显示器以其价廉、显示内容丰富、美观、无须定制、使用方便等特点成为led 显示器的理想替代品。字符型液晶显示器专门用于显示数字、字母、图形符号并可显示少量自定义符号。这类显示器均把lcd 控制器、点阵驱动器、字符存贮器等做在一块板上,再与液晶屏一起组成一个显示模块,因此,这类显示器安装与使用都较简单。字符型液晶一般均采用hd44780 及兼容芯片作为控制器,因此,其接口方式基本是标准的。本板上带有lcd 接口,可直接与字符型液晶相连。本板上数据线被连到p0 口,p2.0 接rs 端,p2.1 接rw 端,p2.2 接e 端。有关定义如下:sbit rs = p20;sbit rw = p21;sbit ep = p22;第二章、开发板使用说明本实验板是面对的是入门者,因此在设计时充分考虑了可用性。一、电源提供:本板需外接电源。外接电源有两种方法,如果你手边已有5v 稳压电源,那么可以通过右上角标号为+5vin 的接口向实验板供电,极性已在板上标出,写有“5v in”的接正电源,另一端gnd 接负电源。第二种方式直接使用usb 电源供电,轻巧方便。二、复位选择:本板提供了3 种复位电路,即rc 复位、按键复位、外接芯片复位。j5 用于复位选择,在该插针座下标有reset select 字样,很容易辨认。该跳线用于选择rc 复位电平的选择,用于选择51 系列芯片还是avr 芯片(注:51 和管脚兼容的avr 单片机只是在复位电平上相反),51 芯片接2-3 跳到vcc 一边,avr 芯片接1-2 跳到gnd 一边。如果要使用x5045 的复位则将跳线cb1 闭合就可以了。选择x5045 复位,可用于测试x5045 芯片的看门狗特性。不论短路子是否插于左侧,x5045芯片内部的eeprom 存储器总是可用的。注意:在使用isp 在线可编程功能时,必须将cb1 短路拨除,不选择x5045 复位,由下载线控制复位端。如果做avr 单片机芯片复位实验需要将x5045 芯片拨出,换上一块x5043 芯片(需自行购买,不随板提供),然后将短路子cb1 闭合。三、音响电路工作选择:beep 用于选择p3.7 究竟工作于输出方式还是输入方式,当需要将p3.7 作为驱动音响电路工作的输出端时,闭合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 isp插座接线标号名称描述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 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() 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,aacallsongincr3sjmpnext;= 歌曲播放子程序 =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:setbspkacallsdelayclrspkacallsdelayret;= 延时子程序 =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,00h,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,2906h,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,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_buf5 = 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;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(unsigned 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 = 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节、串行通讯程序说明:#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;/ 设定串行口工作方式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;tm
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专业职称考试题目及答案
- 护理相关专业试题及答案
- 商贸专业试题及答案
- 药学专业笔试题及答案
- 环境类专业试题及答案
- 音乐专业试题及答案
- 单招电力专业试题及答案
- 欢乐中秋祝福致辞
- 2025年山东省济宁市邹城十一中中考物理三模试卷(含解析)
- 2025年3月陕西省榆林市初三历史模拟试卷(含答案)
- 颅内占位疑难病例讨论
- 视网膜出血的治疗及护理
- 心理学基础(第2版) 课件 第1章 概述
- 2025至2030银行人工智能行业市场发展前景及发展趋势与投资机会报告
- 职业少儿创意美术课件
- 职业人群心理健康知识讲座:减压赋能与心理调适
- 工模具点检管理制度
- 非营利组织纳税管理制度
- 2025年新疆维吾尔自治区中考物理真题含答案
- 数字健康行为干预-第1篇-洞察及研究
- 2025至2030年中国核辐射探测器行业市场行情监测及前景战略研判报告
评论
0/150
提交评论