单片机最小系统设计.doc

上传人:豆**** 文档编号:17202521 上传时间:2022-05-22 格式:DOC 页数:10 大小:150KB
返回 下载 相关 举报
单片机最小系统设计.doc_第1页
第1页 / 共10页
单片机最小系统设计.doc_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《单片机最小系统设计.doc》由会员分享,可在线阅读,更多相关《单片机最小系统设计.doc(10页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流单片机最小系统设计.精品文档.第4章 单片机最小系统设计制作训练内容提要在电子竞赛设计中,单片机作为系统的控制核心广泛应用。本章介绍了单片机最小系统电路板、通用键盘显示电路、液晶显示模块、A/D及D/A转换等单元电路设计及其程序设计。知识要点: 单片机最小系统,可编程键盘和显示器的接口电路,MDLS点阵字符型液晶显示模块,点阵图形型液晶显示模块,A/D与D/A,程序设计。教学建议: 本章的重点是掌握单片机最小系统与接口电路的设计与制作。建议学时数为8学时。单片机最小系统在竞赛中可以选用成品。但单片机作为竞赛作品中的核心部件,软件编程训练可以利

2、用单片机开发系统进行培训,通过对单片机最小系统硬件的设计制作,可以使学生加深对单片机的了解。液晶显示模块采用成品,接口电路与程序设计是训练的重点。A/D与D/A等电路需要进行设计制作。设计制作的产品可以作为子系统或者模块保留备用。训练中要求学生完成电原理图、印制板图、装配图、实际制作、电路调试、设计总结报告。4.1 单片机最小系统设计制作4.1.1 单片机最小系统电路板硬件设计单片机最小系统电路板可选用AT89C51、AT89C52等DIP-40封装的单片机作为MCU。系统包括时钟电路,复位电路,扩展了片外数据存储器和地址锁存器。系统还设置了8个并行键盘S1S4,S6S9,6个共阳极LED数码

3、管LED1LED6。系统无需扩展程序存储器,用户可根据系统程序大小选择片内带不同容量闪存的单片机,例如PHILIPS半导体公司推出的P89C66X Flash单片机,其片内Flash ROM容量最大可达64KB。系统还提供基于8279的通用键盘显示电路、液晶显示模块、A/D及D/A转换等众多外围器件和设备接口。单片机最小系统原理框图如图4.1.1所示。最小系统电路原理图如图4.1.2所示。LED数码管和并行键盘电路原理图如图4.1.3所示。图4.1.1单片机最小系统原理框图图4.1.2 单片机最小系统电原理图图4.1.3 LED数码管和并行键盘电路原理图单片机时钟信电路原理图如图4.1.4所示

4、。在引脚XTAL1和XTAL2跨接晶振Y1和微调电容C5,C6就构成了内部振荡方式,由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。其中Y1是可插拔更换的,默认值是12MHz。图4.1.4 时钟源系统板采用上电自动复位和按键手动复位方式。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。其电路原理图如图4.1.5所示。上电自动复位通过外部复位电容C4充电来实现。按键手动复位是通过复位端经电阻和Vcc接通而实现的。二极管用来防止反相放电。图4.1.5 复位电路原理图系统板扩展了一片32

5、K的数据存储器62256,如图4.1.6所示。数据线D0D7直接与单片机的数据地址复用口P0相连,地址的低8位A0A7则由U15锁存器74LS373获得,地址的高7位则直接与单片机的P2.0P2.6相连。片选信号则由地址线A15(P2.7引脚)获得,低电平有效。这样数据存储器占用了系统从0X0000H0X7FFFH的XDATA空间。 图4.1.6数据存储器的扩展系统板设置了8个并行键盘S1S4,S6S9,6个共阳极LED数码管LED1LED6。其电路原理图如图4.1.2所示。可以看出为了节省单片机的I/O口,在此采用了两片74LS373锁存器U15和U16扩展了8个I/O口。U15用来锁存P0

6、口送出的地址信号,它的片选信号接地,表示一直有效,其控制端C接ALE信号。U16的输出端通过限流电阻R8R15与数码管的段码数据线和并行键盘相连,用来送出LED数码管的段码数据信号和并行键盘的扫描信号,它的片选信号接地,表示一直有效,其数据锁存允许信号C由CS0CS6和WR信号经一个或非门74LS02得到(其中CS0CS5控制LED数码管,CS6控制键盘),这样只有当CS0CS6中的某一个和WR同时有效且由低电平跳变到高电平时,输入的数据D0D7即被输出到输出端Q0Q7。U17为38译码器74LS138,通过它将高位地址A15A12译成8个片选信号CS0CS7。它的G2,G3端接地,G1接A1

7、5,所以A15应始终为高电平,这样CS0CS7的地址就分别为8000H,9000H,0A000H,0B000H,0C000H,0D000H,0E000H,0F000H。CS0CS5和WR信号经过一个或非门控制三极管9012的导通,从而控制LED数码管的导通,并且三极管9012用来增强信号的驱动能力。 主要器件如表4.1.1所示:表4.1.1单片机最小系统主要器件标号型号功能说明U7DIP-40CPU主器件U15,U1674LS373数据,地址锁存器U1774LS138138译码器U186226532K RAMU3A,U3B,U3C,U3D,U4C,U4D74LS02TTL或非门U5A,U5B,

8、U5C,U5D74LS00TTL与非门LED2,LED37SEG-33位8段共阳极数码管Q1Q69012三极管D1D16IN4148开关二极管Y112MHz石英晶振单片机时钟晶振 主要应用接口如表4.1.2所示:表4.1.2单片机最小系统主要应用接口标号功能说明连接目标U1输入电源插座主电源J28279的通用键盘显示电路接口8279芯片J4MDLS字符型液晶显示器接口MDLS字符型液晶显示模块J5LMA97S005AD点阵液晶显示器接口LMA97S005AD点阵型液晶显示模块4.1.2最小系统电路板PCB印制板电路图最小系统电路PCB印制板元件分布图如图4.1.7所示,PCB印制顶层图如图4.

9、1.8所示,PCB印制底层图如图4.1.9所示。图4.1.7 最小系统电路PCB印制板元件分布图图4.1.8最小系统PCB印制电路板顶层图图4.1.9 最小系统PCB印制电路板底层图4.1.3单片机最小系统电路板测试程序设计编写测试程序,一是可对最小系统电路板各资源进行测试,二是为用户提供了使用LED显示及访问键盘等各种资源的子程序。1. 键盘扫描及数码管显示的汇编语言程序键盘扫描及数码管显示的汇编语言程序如下:;键盘及数码管显示程序,功能为按下一键,则对应键的数码管亮并显示该键代表的数字;编写:cgq;最后修改日期:2003/11/16org 0000h ajmp mainorg 0100h

10、main: mov sp,#30hmov r3,#0mov r4,#0kon: lcall ks1 ;调用读键盘程序cjne a,#0ffh,show1 ;有键按下lcall dir ;调用显示子程序ajmp konshow1:lcall dir ;去抖动lcall dirlcall ks1 cjne a,#0ffh,show2 ;键有效ajmp konshow2:cjne a,#0feh,l1 ;以下为判别键值程序mov r4,#0 ;第一个键赋其代码0ajmp lkpl1:cjne a,#0fdh,l2mov r4,#1ajmp lkpl2: cjne a,#0fbh,l3mov r4,#

11、2ajmp lkpl3:cjne a,#0f7h,l4mov r4,#3ajmp lkpl4:cjne a,#0efh,l5mov r4,#4ajmp lkpl5:cjne a,#0dfh,lkpmov r4,#5ajmp lkplkp:lcall dirljmp kon ;返回dir: mov dptr,#table ;显示子程序mov a,r4movc a,a+dptr ;取7段码mov r3,amov a,r4led1:cjne a,#0,led2 ;根据键值选择数码管1mov dptr,#8000hajmp ssled2:cjne a,#1,led3 ;根据键值选择数码管2mov dp

12、tr,#9000hajmp ssled3:cjne a,#2,led4 ;根据键值选择数码管3mov dptr,#0a000hajmp ssled4: cjne a,#3,led5 ;根据键值选择数码管4mov dptr,#0b000hajmp ssled5:cjne a,#4,led6 ;根据键值选择数码管5mov dptr,#0c000hajmp ssled6:cjne a,#5,ss ;根据键值选择数码管6mov dptr,#0d000hajmp ssss: mov a,r3movx dptr,alcall delayretks1:clr p1.7mov dptr,#0e000h ;键盘

13、地址movx a,dptrretdelay: mov r6,#10 ;延时子程序lpp: mov r7,#100djnz r7,$djnz r6,lpprettable: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90hdb 88h,83h,0c6h,0a1h,86h,8eh,0ffh,0f7hend2. 键盘扫描及数码管显示的C语言程序键盘扫描及数码管显示的C语言程序如下:/*键盘及数码管程序,每一键代表一个数字,在其数字代表的数码管中显示*/*最后修改日期:2003/11/16 */#include #include #define uchar

14、 unsigned char#define uint unsigned int#define LED1 XBYTE 0x8000 /*定义各数码管地址*/#define LED2 XBYTE 0x9000#define LED3 XBYTE 0xA000#define LED4 XBYTE 0xB000#define LED5 XBYTE 0xC000#define LED6 XBYTE 0xD000#define KEY XBYTE 0xE000/*定义键盘地址*/void delay(uint v) /*延时函数*/while(v!=0)v-;uchar keynum=0;sbit P1_

15、7=P17; /*扫描端口*/*数字段码表*/uchar code segtab18=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff,0xf7;void dir(uchar); /*声明显示函数*/void readkey(void) /*读键盘函数*/ uchar M_key=0; uchar i; P1_7=0; M_key=KEY; /*取键盘数据*/ if(M_key!=0xff)for(i=0;i20;i+) /*去抖动*/dir(keynum);M_key=KE

16、Y;if(M_key!=0xff) /*读键*/ switch(M_key) case 0xfe: /*第1个键按下*/ keynum=0; break; case 0xfd: /*第2个键按下*/ keynum=1; break; case 0xfb: /*第3个键按下*/ keynum=2; break; case 0xf7: /*第4个键按下*/ keynum=3; break; case 0xef: /*第5个键按下*/ keynum=4; break; case 0xdf: /*第6个键按下*/ keynum=5; break;void dir(keynum) /*显示函数*/swi

17、tch(keynum) case 0: LED1=segtab0;delay(100); break; case 1: LED2=segtab1;delay(100); break; case 2: LED3=segtab2;delay(100); break; case 3: LED4=segtab3;delay(100); break; case 4: LED5=segtab4;delay(100); break; case 5: LED6=segtab5;delay(100); break;void main() /*主函数*/while(1)dir(keynum); /*调用显示函数*/readkey(); /*调用键盘函数*/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com