电子技术.docx
- 文档编号:26249419
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:29
- 大小:319.11KB
电子技术.docx
《电子技术.docx》由会员分享,可在线阅读,更多相关《电子技术.docx(29页珍藏版)》请在冰豆网上搜索。
电子技术
摘要
单片机就是在一块硅片上集成了各种部件的微型计算机,这些器件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。
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
第三章、常用实验举例………………………………………10
3.1、LED流水灯控制……………………………………10
3.2、警报声程序…………………………………………11
3.3、单片机唱歌…………………………………………12
3.4、LED数码显示………………………………………15
3.5、按键扫描程序………………………………………17
3.6、串行通迅……………………………………………19
第四章、附录…………………………………………………22
4.1、UP51S开发板电路图………………………………22
4.2、参考文献……………………………………………27
第一章、硬件结构
一、发光二极管:
单片机的P0端口接了8个发光二极管,这些发光二极管的负极通过一个排电阻接到P0端口各引脚,而正极则接到正电源端,发光二极管亮的条件是P0口相应的引脚为低电平,即如果P0口某引脚输出为0,相应的灯亮,如果输出为1,相应的灯灭。
例:
MOVP0,#0FH
该行程序将使发光二极管LD1-LD4熄灭,而LD5-LD8点亮。
二、数码管:
单片机的P0口和P2口的部份引脚构成了4位LED数码管驱动电路,这里LED数码管采用了共阳型,共阳型数码管的笔段(即对应abcdefgh)引脚是二极管的负极,所有二极管的正极连在一起,构成公共端,即片选端,对于这种数码管的驱动,要求在片选端提供电流,为此,使用了PNP型三极管作为片选端的驱动,共使用4只三极管,所有三极管的发射极连在一起,接到正电源端,基极则通过限流电阻分别接P2.0~P2.3,集电极分别向4只数码管供电。
图2共阳型数LED显示器
以下是根据硬件连线而写的字形码:
字
0
1
2
3
4
5
6
7
字形码
0C0H
0F9H
0A4H
0B0H
99H
92H
82H
0F8H
字
8
9
A
B
C
D
E
F
字形码
80H
90H
88H
83H
0C6H
0A1H
86H
8EH
UP51S单片机实验板显示器接口电路原理图
三、串行接口:
串行通讯功能是目前单片机应用中经常要用到的功能,80C51系列单片机P3.0和P3.1引脚的第二功能是串行口RXD与TXD,其内部的串行接口电路具有全双工异步通讯功能,但是单片机输出的信号是TTL电平,为获得电平匹配,实验板上扩充了一片MAX232芯片,利用该芯片进行电平转换,该芯片内部有电荷泵,只要单一的5V电源供电即可自行产生RS232所需的高电压,使用方便。
四、按键输入:
P3口的P3.2~P3.5接了K1~K4共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接串行数据线。
有关定义如下:
SCLBITP1.0;串行时钟
SDABITP1.1;串行数据
单片机将一组数据先写入24c01中,写入24c01的数据如下
unsignedcharcodediscode[]={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接口。
定义如下:
sbitCS=P1^6;
sbitSK=P1^0;
sbitDI=P1^7;
sbitDO=P3^6;
八、X5045接口
X5045是一片多功能的芯片,它具有以下的一些功能:
上电复位、电压跌落检测、看门狗定时器、512字节的EEPROM。
该芯片采用三线制SPI接口方式与单片机相连,这也是目前一个应用比较广泛的芯片,通过学习这块芯片与单片机接口的方法,还可以了解和掌握三线制SPI总线接口的工作原理及一般编程方法。
硬件电路上,有关定义如下:
CSBITP1.2
SIBITP1.4
SCKBITP1.3
SOBITP1.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端。
有关定义如下:
sbitrs=P2^0;
sbitrw=P2^1;
sbitep=P2^2;
第二章、开发板使用说明
本实验板是面对的是入门者,因此在设计时充分考虑了可用性。
一、电源提供:
本板需外接电源。
外接电源有两种方法,如果你手边已有5V稳压电源,那么可以通过右上角标号为+5VIN的接口向实验板供电,极性已在板上标出,写有“+5VIN”的接正电源,另一端GND接负电源。
第二种方式直接使用USB电源供电,轻巧方便。
二、复位选择:
本板提供了3种复位电路,即RC复位、按键复位、外接芯片复位。
J5用于复位选择,在该插针座下标有ResetSelect字样,很容易辨认。
该跳线用于选择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功能的使用:
标号为ISPPORT的插座为ISP下载插座,标准ATMELISP下载线定义。
将下载电缆与实验板正确连接
具体接法如下表所示:
表1ISP插座接线
标号
名称
描述
1
SCK
串行时钟
3
MISO
主器件输入-从器件输出
4
Vcc
电源
5
RST
复位端
9
MOSI
主器件输出-从器件输入
2、10
GND
地
6、7、8
NC
未接
六、仿真功能的使用:
使用本板提供的仿真模块,可以直接与Keil联机,使用Mon51提供的单步、过程单步、设置断点等调试方法进行程序的调试。
第三章、常用实验举例
3.1节、LED流水灯控制
程序说明:
#include
#include
voiddelayms(unsignedcharms)
//延时子程序
{
unsignedchari;
while(ms--)
{
for(i=0;i<120;i++);
}
}
main()
{
unsignedcharLED;
LED=0xfe;
P0=LED;
while
(1)
{
delayms(250);
LED=_crol_(LED,1);//循环右移1位,点亮下一个LED
P0=LED;
}
}
3.2节、警报声程序
程序说明:
#include
#include
sbitSPK=P3^7;
unsignedcharfrq;
voiddelayms(unsignedcharms);
main()
{
TMOD=0x01;
frq=0x00;
TH0=0x00;
TL0=0xff;
TR0=1;
IE=0x82;
while
(1)
{
frq++;
delayms
(1);
}
}
voidtimer0()interrupt1using1
{
TH0=0xfe;
TL0=frq;
SPK=~SPK;
}
voiddelayms(unsignedcharms)
//延时子程序
{
unsignedchari;
while(ms--)
{
for(i=0;i<120;i++);
}
}
3.3节、单片机唱歌
程序说明:
SPKEQUP3.7;蜂鸣器所在端口
ORG0000H
JMPSTART
START:
MOVR3,#00H
NEXT:
MOVA,R3
MOVDPTR,#TABLE
MOVCA,@A+DPTR
JZSTART
MOVR7,A
INCR3
MOVA,R3
MOVCA,@A+DPTR
MOVR2,A
ACALLSONG
INCR3
SJMPNEXT
;===歌曲播放子程序===
SONG:
MOVA,R2;取出节拍
RLA
JNZKEEP
MOVA,#01H
KEEP:
MOVR2,A
REPEAT:
ACALLEIGHTH
DJNZR2,REPEAT
RET
;===产生1/8拍延时子程序===
EIGHTH:
MOVA,R7;查表取出廷时参数,保存到R4
MOVDPTR,#DELAY_T
MOVCA,@A+DPTR
MOVR4,A
MOVA,R7;查表取出1/8拍周期数,保存到R5
MOVDPTR,#S_PARA
MOVCA,@A+DPTR
MOVR5,A
NEXTCYC:
ACALLSOUND
DJNZR5,NEXTCYC
RET
;===发声子程序===
SOUND:
SETBSPK
ACALLSDELAY
CLRSPK
ACALLSDELAY
RET
;===延时子程序===
SDELAY:
MOVA,R4;廷时值在R4内
MOVR0,A
XL2:
MOVR1,#03H
DL1:
NOP
DJNZR1,DL1
DJNZR0,XL2
RET
;===1/8拍周期表===
S_PARA:
DS1DH
DB15H,16H,00
DB19H,00H,1CH,00H,1FH,21H,00H,25H
DB00H,29H,2CH,00H,31H,34H,37H,00H
DB3EH,41H,00H,49H,00H,52H,57H,00H
DB62H
;===延时参数表===
DELAY_T:
DS1DH
DB7EH,77H,00H
DB6AH,00H,5EH,00H,54H,4FH,00H,46H
DB00H,3FH,3BH,00H,35H,32H,2FH,00H
DB2AH,27H,00H,23H,00H,1FH,1DH,0C0H
DB1AH
;===歌曲表===
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;
END
3.4节、LED数码显示
#include
#include
#definebit(x)1< unsignedchardatadis_digit; unsignedcharcodedis_code[11]={0xc0,0xf9,0xa4,0xb0,//0,1,2,3 0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//4,5,6,7,8,9,off unsignedchardatadis_buf[8]; unsignedchardatadis_index; voidmain() { P0=0xff; P2=0xff; TMOD=0x01; TH0=0xFC; TL0=0x17; IE=0x82; dis_buf[0]=dis_code[0x1]; dis_buf[1]=dis_code[0x2]; dis_buf[2]=dis_code[0x3]; dis_buf[3]=dis_code[0x4]; dis_buf[4]=dis_code[0x5]; dis_buf[5]=dis_code[0x6]; dis_buf[6]=dis_code[0x7]; dis_buf[7]=dis_code[0x8]; dis_digit=0xfe; dis_index=0; TR0=1; while (1); } voidtimer0()interrupt1 //定时器0中断服务程序,用于数码管的动态扫描 //dis_index---显示索引,用于标识当前显示的数码管和缓冲区的偏移量 //dis_digit---位选通值,传送到P2口用于选通当前数码管的数值,如等于0xfe时, //选通P2.0口数码管 //dis_buf---显于缓冲区基地址 { TH0=0xFC; TL0=0x17; P2=0xff;//先关闭所有数码管 P0=dis_buf[dis_index];//显示代码传送到P0口 P2=dis_digit;// dis_digit=_crol_(dis_digit,1);//位选通值左移,下次中断时选通下一位数码管 dis_index++;// dis_index&=0x07;//8个数码管全部扫描完一遍之后,再回到第一个开始下一次扫描 } 3.5节、按键扫描程序 程序说明: #include #include unsignedcharscan_key(); voidproc_key(unsignedcharkey_v); voiddelayms(unsignedcharms); sbitAN1=P3^2; sbitAN2=P3^3; unsignedcharleddata=0xfe; main() { unsignedcharkey_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); } } } } unsignedcharscan_key() { unsignedcharkey_s; key_s=0x00; key_s|=AN2; key_s<<=1; key_s|=AN1; returnkey_s; } voidproc_key(unsignedcharkey_v) { if((key_v&0x01)==0) { leddata=_cror_(leddata,1); } elseif((key_v&0x02)==0) { leddata=_crol_(leddata,1); } P0=leddata; } voiddelayms(unsignedcharms) //延时子程序 { unsignedchari; while(ms--) { for(i=0;i<120;i++); } } 3.6节、串行通讯 程序说明: #include #include unsignedcharkey_s,key_v,tmp; charcodestr[]="welcome! \n\r"; voidsend_str(); bitscan_key(); voidproc_key(); voiddelayms(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子技术