- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机最小系统设计制作训练
3.1 单片机最小系统设计制作
3.1.1 单片机最小系统电路板硬件设计
单片机的主要功能是负责整个系统的控制,不承担复杂的数据处理任务,因此在设计单片机最小系
统时通常选用AT89C5l、AT89C52、AT89S51、AT89S52(S系列芯片支持ISP功能)等型号的8位单片
机作为MCU。
一个典型的单片机最小系统一般由时钟电路、复位电路、片外RAM、片外ROM、按键、数码管、
液晶显示器、外部扩展接口等部分组成,图3.1 、图3.2分别给出了单片机最小系统的结构框图、原理
图。
图3.1 单片机最小系统的结构框图
图3.2原理图
单片机最小系统时钟、复位、译码电路简介
3.2.1
3.2.1
33..22..11键盘接口电路及程序设计
单片机键盘通常使用机械触点式按键开关,其主要功能是把机械上的通断转换成为电气上的逻辑
关系。也就是说,它能提供标准的TTL逻辑电平,以便与通用数字系统的逻辑电平相容。小系统上设
置了一个2行乘8列的阵列式键盘,系统硬件电路如图4所示。电路结构采用总线扩展方式进行设计,
同时使用P13和P14进行行选择,按键信号通过一片74LS245挂接到数据总线上,片选信号为KEY_CS,
为其分配的物理地址为0xA100。
图3.3 键盘接口电路
由于系统的键盘接口采用的是总线方式,因此读取按键数值变得相当方便,下面是使用C 编写的
读取键盘程序:
#define KEY XBYTE [0xA100]//键盘地址
sbitfirst_row = P1^4; //键盘第一行控制
sbitsecond_row = P1^3; //键盘第二行控制
ucharM_key; //键盘数值暂存单元
first_row = 0; //读取第一行键盘数值
second_row = 1;
M_key= KEY;
first_row = 1; //读取第二行键盘数值
second_row = 0;
M_key= KEY;
系统采用定时扫描的方式(扫描间隔为4ms,内部定时器定时中断间隔为2ms,每两次定时中断进
行一次键盘扫描)进行键盘识别,设计程序时通常要进行以下四个方面的处理:
(1)每隔4ms读取一次键盘的数值,判断有无按键按下。具体方法是令first_row =0,second_row =
0,M_key= KEY,判断M_key的值是否为0xFF,如果等于0xFF说明没有按键按下,如果不等于0xFF说
明有按键按下。
(2)去除按键的机械抖动影响。通过设置状态标志位first_getkey来判断连续两次扫描键盘是否都
检测到有按键按下。如果没有连续两次都检测到按键按下则按照键抖动处理;否则,认为确实有按键
按下。
(3)准确输出按键值keynum,并提供获得有效按键标志getkey。
(4)防止按键冲突。在获得有效按键以后设定状态标志位keyon来实现每次只处理一个按键,且
无论一次按键时间有多长,系统仅执行一次按键功能程序。
键盘识别程序流程如图3.4所示。程序代码将在介绍完数码管显示器以后统一给出。
图3.4键盘识别程序流程
3.2.2数码管接口电路及程序设计
本系统共设置了8个7段码数码管显示器,电路结构如图3.5 所示。
图3.5 8个7段码数码管显示器电路
电路结构同样采用总线扩展方式进行设计,其中使用的数码管为连4位的共阳型数码管。通过芯
片U15(74HC573)锁存,为数码管提供段码数据。通过芯片U14(74HC573)、U13(74HC138)以及
三极管Q1—Q8将低三位地址A2..0 进行硬件译码,为每个数码管提供一个唯一的物理地址,具体地址
为0xA000—0xA007。此外本电路结构还考虑了不同数码管进行显示切换时的消隐问题,在编写程序时
不用通过额外的处理进行消隐。由于为每个数码管都分配了一个固定的物理地址,在编写程序时只要
将相应的段码数据写入到对应的地址当中便可以完成显示,例如要在第二个数码管上显示“1”,使用C
语言办成实现如下:
#define 7SEG_LED2XBYTE [0xA001] //第二个数码管的
您可能关注的文档
最近下载
- 人教版四年级数学上册培优练习题《亿以内数的认识》.pdf VIP
- 中考数学(二次函数提高练习题)压轴题训练含详细答案(1).doc VIP
- 表1消防技术服务基础设备配备要求.doc VIP
- 探索“在线问诊”服务 - 春雨医生产品分析报告.docx VIP
- 私域培训2_私域顶层设计.pptx VIP
- 人教版2024四年级上册英语 unit1 C 课件.pptx VIP
- 2024届广东深圳市翠园中学高三第三次模拟考试语文试卷含解析.doc VIP
- 专题05 记叙文阅读(解析版)-备战2025年中考语文真题题源解密(上海专用).docx VIP
- 04抗滑桩施工技术规程(试行)-TCAGHP 004-2018.pdf VIP
- 借款合同借款合同.docx VIP
文档评论(0)