51系列单片机最小系统实验指导书.docx
- 文档编号:29615013
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:14
- 大小:246.43KB
51系列单片机最小系统实验指导书.docx
《51系列单片机最小系统实验指导书.docx》由会员分享,可在线阅读,更多相关《51系列单片机最小系统实验指导书.docx(14页珍藏版)》请在冰豆网上搜索。
51系列单片机最小系统实验指导书
51系列单片机最小系统设计与调试实验
实验指导书
重庆邮电大学自动化学院
自动化专业实验中心
51系列单片机最小系统设计与调试
一、实验目的
1.了解单片机的基本工作原理
2.学习并掌握相关软件的使用方法(Protel、keil)
2.掌握单片机片内程序存储器下载方法
3.掌握单片机程序设计(汇编及C51)
二、原理
1.什么是单片机最小系统
单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.
对51系列单片机来说,单片机+晶振电路+复位电路,便组成了一个最小系统.但是一般我们在设计中总是喜欢把按键输入、显示输出等加到上述电路中,成为小系统。
2.AT89C51高性能8位单片机功能
AT89C51提供以下标准功能:
8K字节Falsh闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路,同时AT89C51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,时/计数器,串行通信口及中断系统持续工作。
掉电方式保存RAM中的内容,但震荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。
主要功能特性:
• 兼容MCS51指令系统
• 4k可反复擦写(>1000次)Flash ROM
• 32个双向I/O口
• 8个中断源
• 三个16位可编程定时/计数器
• 2.7-6.V的宽工作电压范围
• 时钟频率0-24MHz
•128x8bit内部RAM
• 五个外部中断源
• 两个串行中断
• 可直接驱动LED
• 两级加密位
• 低功耗睡眠功能
• 内置一个模拟比较放大器
• 可编程UARL通道
• 软件设置睡眠和唤醒功能
3.AT89C51高性能8位单片机资料
请参考相关书籍
三、实训任务.
(1)认识MCS-51的ROM及片外RAM空间:
认识51系列单片机的程序存储器(ROM)的空间范围;汇编指令编码在ROM中存储形式;掌握指令编码和指令编码所在地址的概念;了解51系列单片机的程序存储器(ROM)固定地址的用途。
认识51系列单片机的片外数据存储器(片外RAM)的地址空间范围;了解51系列单片机的片外数据存储器的用途;重点掌握片内片外访问存储器的指令。
(2)认识MCS-51片内RAM空间:
认识51系列单片机片内随机存储器(片内RAM)的空间范围;认识51系列单片机片内随机存储器的区域划分;掌握字节地址和位地址的概念;了解R0~R7寄存器与字节地址的关系。
重点掌握MCS-51系列单片机四个口的用法的位操作。
(3)MCS-51汇编语言设计(编码转换):
用MCS-51汇编指令进行程序设计。
将四位BCD码化为十六位二进制数。
(或将四位十六进制数转化为BCD码)。
要求:
在PC机上调试,程序可正确运行并上交源程序清单及程序说明。
(4)键盘输入电路设计/动态显示电路设计:
在实训过程中要求设计按键输入电路、设计显示电路,并画出电路图并编写按键输入子程序。
重点掌握硬件电路的设计及通过编程对电路的控制。
(5)单片机最小系统设计:
单片机最小系统的设计是单片机应用系统设计及开发的基础,通过单片机最小系统设计,使学生对所学的单片机原理及应用课程有更深的理解。
要求:
提供电路图和程序清单。
重点掌握硬件电路的设计及过程控制。
(6)基于单片机的应用系统设计:
设计出实现某控制目的的应用系统是本实训课的最终实训的结果。
实训要求中包括单片机最小系统的设计,按键输入电路设计,显示电路的设计,及应用系统的软件编程。
附件1:
51系列单片机最小系统设计
一、单片机最小系统硬件设计
单片机主要擅长系统控制,而不适合做复杂的数据处理,在设计单片机最小系统时通常选用AT89C5l、AT89C52、AT89S51、AT89S52(S系列芯片支持ISP功能)等型号的8位DIP-40封装的单片机作为MCU,一个典型的单片机最小系统一般由时钟电路、复位电路、键盘电路、显示电路等部分组成,有时也外扩有片外RAM和ROM以及外部扩展接口等电路。
图1为单片机最小系统结构框图。
图1单片机最小系统结构框图
1、系统时钟电路
单片机内部具有一个高增益反相放大器,用于构成振荡器。
通常在引脚XTALl和XTAL2跨接石英晶体和两个补偿电容构成自激振荡器,系统时钟电路结构如图2所示,可以根据情况选择6MHz、8MHz或12MHz等频率的石英晶体,补偿电容通常选择20-30pF左右的瓷片电容。
图2系统时钟电路
2、复位电路
单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。
上电复位要求接通电源后,自动实现复位操作。
手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。
复位电路结构如图3所示。
上电自动复位通过电容C3充电来实现。
手动按键复位是通过按键将电阻R2与VCC接通来实现。
图3复位电路
3、键盘电路
系统利用P1口的P1.0-P1.3设置了4个独立按键S2~S5,如图4所示,当键按下时,P1口相应的引脚置为低电平,且与此键相连的发光二极管点亮。
此外,通过8279键盘显示控制芯片还可以扩展编码键盘和显示,图5为利用8279扩展的一个2×8=16键编码键盘及8个LED的电路。
图4独立按键
图5扩展键盘和显示
4、显示电路
系统设置了8个共阳极LED数码管LED1-LED2,单片机P0口提供段码信号,低电平有效,P0口输出端通过限流电阻R00~R07与数码管的段码数据线相连,用来送出LED数码管的段码数据信号。
单片机P2口提供位选信号,当P2口某位输出低电平时,与此相连的开关三极管导通,对应的数码管点亮,使用三极管用来增强信号的驱动能力,如图6。
此外,为了扩展LCD显示,系统设置了两个LCD接口,如图7,一个用于40点矩阵LCD显示,一个用于128×64点阵式LCD显示。
图6LED显示电路
图7LCD扩展接口
5、其它
系统还扩展了一片2K位串行CMOSE2PROM24C02,P3.3和P3.4分别作为24C02串行数据传输的时钟和数据线,由于只有一个24C02,其三个地址输入脚A0、A1、A2接地,如图8。
此外,系统还设置了一个蜂鸣器电路,如图9,通过P3.7输出音频信号,可使蜂鸣器发声。
由于,本最小系统没有外扩其他存储器和I/O,因此,没有用到地址译码和锁存。
图8扩展E2PROM图9蜂鸣器电路
单片机最小系统主要器件如表1所示:
表1单片机最小系统主要器件
标号
型号、规格
封装
功能说明
U1
89C51
DIP40
CPU主器件
U2
24C02
DIP8
2KE2PROM
LED1,LED2
7SEG-4
4位8段共阳极数码管
Q1~Q9
9012
TO-92A
三极管
D1~D12
φ3MM
DIODE0.4
发光二极管
Y
12MHz石英晶振
单片机时钟晶振
主要应用接口如表2所示:
表2单片机最小系统主要接口
标号
功能说明
连接目标
J1
输入电源插座
主电源
J2
40点矩阵LCD接口
40点矩阵液晶显示模块
J2
128×64点阵式LCD接口
128×64点阵液晶显示模块
Jp1
P0口引出接口
单片机P0口
Jp2
P1口引出接口
单片机P1口
Jp3
P2口引出接口
单片机P2口
Jp4
P3口引出接口
单片机P3口
单片机最小系统电原理图
二、单片机最小系统测试程序设计
编写测试程序,一是可对最小系统各资源进行测试,二是为用户提供了使用LED显示及访问键盘等各种资源的子程序。
1.键盘扫描及数码管显示的汇编语言程序
键盘扫描及数码管显示的汇编语言程序如下:
;***********************************************************
;键盘及数码管显示程序,功能为按下一键,则对应键的数码管亮并显示该键代表的数字
;************************************************************
org0000h
ajmpmain
org0100h
main:
movsp,#30h
movr3,#0
movr4,#0
kon:
lcallks1;调用读键盘程序
cjnea,#0ffh,show1;有键按下
lcalldir;调用显示子程序
ajmpkon
show1:
lcalldir;去抖动
lcalldir
lcallks1
cjnea,#0ffh,show2;键有效
ajmpkon
show2:
cjnea,#0feh,l1;以下为判别键值程序
movr4,#0;第一个键赋其代码0
ajmplkp
l1:
cjnea,#0fdh,l2
movr4,#1
ajmplkp
l2:
cjnea,#0fbh,l3
movr4,#2
ajmplkp
l3:
cjnea,#0f7h,l4
movr4,#3
ajmplkp
lkp:
lcalldir
ljmpkon;返回
dir:
movdptr,#table;显示子程序
mova,r4
movca,@a+dptr;取7段码
movr3,a
mova,r4
led1:
cjnea,#0,led2;根据键值选择数码管1
movdptr,#8000h
ajmpss
led2:
cjnea,#1,led3;根据键值选择数码管2
movdptr,#9000h
ajmpss
led3:
cjnea,#2,led4;根据键值选择数码管3
movdptr,#0a000h
ajmpss
led4:
cjnea,#3,led5;根据键值选择数码管4
movdptr,#0b000h
ajmpss
ss:
mova,r3
movx@dptr,a
lcalldelay
ret
ks1:
clrp1.7
movdptr,#0e000h;键盘地址
movxa,@dptr
ret
delay:
movr6,#10;延时子程序
lpp:
movr7,#100
djnzr7,$
djnzr6,lpp
ret
table:
db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
db88h,83h,0c6h,0a1h,86h,8eh,0ffh,0f7h
end
2.键盘扫描及数码管显示的C语言程序
键盘扫描及数码管显示的C语言程序如下:
/**************************************************/
/*键盘及数码管程序,每一键代表一个数字,在其数字代表的数码管中显示*/
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
#defineLED1XBYTE[0x8000]/*定义各数码管地址*/
#defineLED2XBYTE[0x9000]
#defineLED3XBYTE[0xA000]
#defineLED4XBYTE[0xB000]
#defineKEYXBYTE[0xE000]/*定义键盘地址*/
voiddelay(uintv)/*延时函数*/
{
while(v!
=0)v--;
}
ucharkeynum=0;
sbitP1_7=P1^7;/*扫描端口*/
/*数字段码表*/
ucharcodesegtab[18]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,\
0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff,0xf7};
voiddir(uchar);/*声明显示函数*/
voidreadkey(void)/*读键盘函数*/
{
ucharM_key=0;
uchari;
P1_7=0;
M_key=KEY;/*取键盘数据*/
if(M_key!
=0xff)
{
for(i=0;i<20;i++)/*去抖动*/
dir(keynum);
M_key=KEY;
if(M_key!
=0xff)/*读键*/
switch(M_key)
{
case0xfe:
/*第1个键按下*/
keynum=0;
break;
case0xfd:
/*第2个键按下*/
keynum=1;
break;
case0xfb:
/*第3个键按下*/
keynum=2;
break;
case0xf7:
/*第4个键按下*/
keynum=3;
break;
}
}
}
voiddir(keynum)/*显示函数*/
{
switch(keynum)
{
case0:
LED1=segtab[0];delay(100);
break;
case1:
LED2=segtab[1];delay(100);
break;
case2:
LED3=segtab[2];delay(100);
break;
case3:
LED4=segtab[3];delay(100);
break;
}
}
voidmain()/*主函数*/
{
while
(1)
{
dir(keynum);/*调用显示函数*/
readkey();/*调用键盘函数*/
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 系列 单片机 最小 系统 实验 指导书