微机控制课设
微机原理课程设计
前言
加热器数字控制系统的设计与功能的实现要求学生在学习完微机原理及应用这门课的基础上,在对芯片类知识以及汇编语言有一定基础的前提下进行的一个非常体现学生综合能力的一个设计。要想很好的完成这个题目,必须对芯片的功能有很详细的了解,同时也要求学生的汇编语言基础要扎实。计算机技术的飞速发展,使的计算机知识和应用技能已成为人类知识经济的重要组成部分。《微型计算机原理》正是掌握计算机结构和工作原理的入门课程,它偏重于实际应用的课程,要求学生在学好理论知识的基础上,培养定的实践动手操作能力,学生将所学的理论知识和实践有机结合,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。微机原理课程设计是对《微型计算机原理》课程理论教学和实验教学的综合和总结。
[2]、徐建民·《汇编语言程序设计》[M]·北京:电子工业出版社
[3]、洪永强.微机原理与接口技术.北京:科学出版社. 2004年
课程设计图纸
程序清单
DATA SEGMENT
INTR_IVADDEQU01C8H;INTR对应的中断矢量地址(对应着中断程序入口地址)
INTR_OCW1EQU0A1H;INTR对应PC机内部8259的OCW1地址
MOV AX,SEG MYISR
MOV ES:[DI],AX;ห้องสมุดไป่ตู้置当前中断处理程序入口段地址
MOV DX,INTR_OCW1 ;设置中断屏蔽寄存器,打开INTR的屏蔽位
INAL,DX
MOV IM_BAK,AL;保存INTR原中断屏蔽字
AND AL,INTR_IM
OUTDX,AL
MOV DX,MY8259_ICW1 ;初始化实验系统中8259的ICW1
MOV DI,INTR_IVADD
微机原理课设:可控制霓虹灯
标准《微机原理与接口技术》课程设计题目:可控制霓虹灯班级:电气本151小组组长:徐明(2015040104)小组成员:王军三(2015040107)黄国涛(2015040108)刘飞鸿(2015040113)指导教师:刘微日期:2017年10月11日齐齐哈尔工程学院机电工程系一、设计可控制霓虹灯目的及意义霓虹灯其设计目的主要为:(1) 进一步熟悉8255A并行接口的基本工作原理(2) 运用CES-86通用微机实验装置,了解键盘的基本结构,学会编写程序.(3)在熟悉了小键盘的基础上,加上LED发光二极管的使用设计出绚丽闪耀的霓虹灯.本课程设计是自动化专业学生的一次较全面的的设计训练,是配合“微机与接口技术”课堂教学的最后一个重要的实践教学环节,它将起到巩固课堂和书本上所学的知识、加强综合能力、提高系统设计水平、启发创新思想的作用。
霓虹灯的意义:随着改革的不断深入,社会主义市场经济的不断繁荣与发展,大中小城市都在进行亮化工程。
企业为发展自己的形象和产品,一般都会采用通过霓虹灯广告屏这种广告手法,所以当我们夜晚走在大街上,马路两旁各色各样的霓虹灯广告随处可见,一种是采用霓虹灯管做成的各种形状和多种彩色的灯管,另一种为日光灯管或白炽灯管作为光源,另配大型广告语或宣传画来达到宣传的效果,大部分是采用霓虹灯。
这就涉及到如何去控制霓虹灯的亮灭、闪烁时间及流动方向等诸多控制问题,如何去快捷、可靠、简单的去控制,成为人们考虑的重点。
当然,虽然程序最后达到了预期控制要求,但是由于实际情况和理想情况存在差距,我知道还有很多地方有待改进,同时我还是个初学者,各方面肯定存在不足,如果老师发现了缺陷之处,请指出,我们一定会虚心接受。
二、总体方案(一)概述本次课程设计中所使用的芯片8255A(如右图)是Intel公司采用CHMOS工艺生产的一种高性能通用可编程输入/输出并行接口芯片,可以方便地应用在Intel系列微处理器系统中。
微机原理课设报告
中南大学微机原理课程设计报告一、课程设计目的通过本次课程设计要掌握8088,8255,0809,0832,8279 等多种芯片使用的方法,灵活运用课本知识,加深所学的知识,对所学的相关芯片的原理、内部结构、使用方法等有更加深刻的了解,学会利用课本知识联系实际应用及编程。
同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。
二、课程设计任务本次课设选题为“模拟电压采集,直流电机控制”。
根据我自己对这个课题的理解,我认为这个课题应该实现以下的要求:基本要求:1、对模拟电压进行采集转换为数字信号,并实时显示。
2、用转换的到的数字信号再经数模转换,对直流电机进行控制。
拓展要求:1、通过发光二极管作为信号指示灯,实时的指示直流电机的工作状态是否正常。
2、建立报警电路,对电机非正常工作情况以及反转工作情况下进行报警。
三、设计思想与原理1、设计思想本次课设选题为“模拟电压采集,直流电机控制”,基本分为两大部分:模拟量采集的模数转换部分,以及电机控制中的数模转换部分。
而为了让模拟量的采集结果更加明显可察,将加入数码管显示模块,实时显示模拟量采集的大小情况。
与此同时,在选题基础上添加了直流电机工作状态指示灯电路和报警电路。
2、设计原理根据试验箱相关配置,取电位器0~5V 可调电压为模拟量输出模块,可线性调节输出。
取芯片ADC 0809 对采集到的模拟信号进行模数转换,将0~5V 的电压信号转为00~FF 的数字信号,并通过8279 键盘扫描输出模块进行相应的显示输出。
得到转换后的数字量之后,使用DAC0832 数模转换芯片进行数模转换,并将所得模拟量输出到直流电机控制端,进行电机驱动。
对于添加的模块,主要通过8255 芯片来实现,取8255 的PA0 口作为输出端口,连接试验箱上的开关量输入显示区的发光二极管。
对A口分别赋值01H (直流电机正向非正常工作)、02H(直流电机正常工作)、04H(直流电机反向非正常工作)并输入给开关量输入显示区的发光二极管,驱动前三个二极管在电机的三种工作状态下分别发光,从而实现指示灯电路。
微机原理课程设计说明书(加热器)
1.课程设计任务书设计内容:设计当把物品放入加热器中,首先要启动加热器和电机工作,设定加热时间为3(5)分钟,为使物品均匀加热,每隔20(30)秒电机要反转一次,(正转→反转、反转→正转),加热时间到后,停止加热器和电机工作,并发声,告知加热结束。
设计目标:在规定的时间内设计出符合要求的汇编语言程序,并提交一份符合本科生毕业设计论文规范的报告。
进度安排:8月13日-8月16日-----------------------确定设计内容并完成硬件部分8月17日-8月21日------------------------------------完成程序清单8月22日-8月23日------------------------------完成课程设计说明书2. 总体设计思路2.1、分析设计所用到的芯片的原理及使用方法:⑴8259A的使用方法:8259A有四个初始化命令字ICW及3个操作操作命令字OCW。
8259A的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1- OCW3分别写入初始化命令寄存器组和操作命令寄存器组。
ICW1-ICW4各命令字格式如图2-1所示,OCW1-OCW3各命令字格式如图2-2所示,其中OCW1用于设置中断屏蔽操作字,OCW2用于设置优先级循环方式和中断结束方式的8操作命令字,OCW3用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259内部寄存器的读出命令。
图2-1ICW1-ICW4各命令字格式如图2-2OCW1-OCW3各命令字格式如图⑵8255的使用方法:方式0 —基本输入/出方式;方式1 —选通输入/出方式;方式2 —双向选通工作方式。
图2-3 8255命令字格式图⑶8253的使用方法:(1) 方式0:计数到0结束输出正跃变信号方式。
(2) 方式1:硬件可重触发单稳方式。
(3) 方式2:频率发生器方式。
(4) 方式3:方波发生器。
(5) 方式4:软件触发选通方式。
微机原理课程设计讲解
微机原理课程设计学院:机电工程学院专业:自动化班级:XXXX学号:XXXX姓名:XX指导教师:XXXXXXXX 完成时间:2015一、课程设计的基本要求•设计8088微处理器最小系统•用8284设计频率恒定的时钟电路•用6264和2764设计存储器(RAM和ROM)电路。
•用ADC0809组成8位温度检测A/D变换接口电路•用DAC0832设计8位D/A变换接口电路驱动直流电机•用8255和8253设计步进电机控制电路•用8255外联LED和键盘显示电路二、设计的基本思路采用8088的最小方式,利用三片74LS373锁存器设计20位地址总线电路,利用一片74LS245收发器形成数据总线电路。
利用8254芯片提供频率恒定的时钟信号,同时具有复位信号和准备好信号发送给8088系统。
运用两片2764和两片6264进行扩展,形成16K的ROM和16K的RAM电路。
系统的定时计数器由一片8253构成,中断系统由8259组成,并行接口电路由8255构成。
AD转换电路由ADC0809及其外围电路构成,由DAC0832及其外围电路构成DA转换电路驱动直流电机。
芯片所需的片选信号均由74LS138译码电路产生。
三、系统的地址分配ROM2764(1):0FC000H~0FDFFFH;ROM2764(2):0FE000H~0FFFFFH;RAM6264(1):00000H~01FFFH;RAM6264(2):02000H~03FFFH;ADC0809:0058H~005FH;DAC0832:0074H;计时器8253:0020H~0023H;并行接口芯片8255:0028H~002BH;键盘地址:0070H~0073H; LED地址:0080H~0083H。
四、具体设计1、8088微处理器最小系统1.1 8088微处理器介绍8088微处理器采用40条引脚的双列直插式封装。
为减少引脚,采用分时复用的地址/数据总线,因而部分引脚具有两种功能。
设计一台微机控制XY两坐标工作台综合课程设计说明
课程设计说明书原始数据:设计一台微机控制XY两坐标工作台,采用MCS-51单片机控制,控制方式采用步进电动机开环控制。
其他参数如下:一、系统总体设计方案由设计任务书知,本次设计可采用如下方案:(一)机械系统1、传动机构采用滚珠丝杠副与齿轮或带减速。
2、导出机构采用滚动直线导轨。
3、执行机构采用步进电机。
(二)接口设计1、人机接口(1)采用键盘或BCD码盘作为输入。
(2)采用LED作为电源等指示标志。
(3)采用蜂鸣器或扬声器作为警报装置。
(4)采用数码管作为显示器。
2、机电接口采用光电耦合器作为微型机与步进电机驱动电路的接口,实现电气隔离。
(三)伺服系统设计本次设计的系统精度要求不高,载荷不大,因此采用开环控制。
(四)控制系统设计对整体设计方案的说明:机电一体化机械系统应具备良好的伺服性能(既高精度、快速响应性和稳定性好)从而要求本次设计传动机构满足一下几方面:(1)转动惯量小在不影响机械系统刚度的前提下,传动机构的质量和转动惯量应尽量减小。
否则,转动惯量大会对系统造成不良影响,机械负载增大;系统响应速度降低,灵敏度下降;系统固有频率减小,容易产生谐振。
所以在设计传动机构时应尽量减小转动惯量。
(2)刚度大刚度是是弹性体产生单位变形量所需的作用力。
大刚度对机械系统而言是有利的:①伺服系统动力损失随之减小。
②机构固有频率高,超出机构的频带宽度,使之不易产生共振。
③增加闭环伺服系统的稳定性。
所以在设计时应选用大的刚度的机构。
(3)阻尼合适机械系统产生共振时,系统的阻尼增大,其最大振幅就越小且衰减也快,但大阻尼也会使系统的稳定误差增大,精度降低,所以设计时,传动机构的阻尼要选择适当。
此外还要求摩擦小(提高机构的灵敏度)、共振性好(提高机构的稳定性)、间歇小(保证机构的传动精度),特别是其动态特性应与伺服电动机等其它环节的动态特性相匹配。
开环控制原理图1、控制部分方案选择控制方案不外乎三种:开环控制、半闭环控制、闭环控制。
微机课程设计8255
微机课程设计8255一、课程目标知识目标:1. 让学生理解并掌握8255可编程并行接口芯片的基本工作原理。
2. 让学生掌握8255芯片的编程控制方法,包括控制字的理解与设置。
3. 使学生能够运用8255芯片实现数据的输入/输出功能,理解并行通信的概念。
技能目标:1. 培养学生运用8255芯片进行微机接口设计的实践能力。
2. 培养学生阅读并理解8255相关的技术文档,提高学生的技术资料检索与应用能力。
3. 通过课程实验,提高学生的问题分析和解决能力,加强团队协作和动手操作技能。
情感态度价值观目标:1. 培养学生对微机接口技术的兴趣,激发学生主动探索微机硬件知识的热情。
2. 增强学生对技术学习的自信心,培养学生面对复杂问题时积极乐观的态度。
3. 强化学生的工程伦理观念,认识到科技发展对社会的责任和影响。
分析课程性质、学生特点和教学要求,本课程目标具体、明确,旨在通过理论讲解与实践操作相结合的方式,使学生在掌握8255接口芯片知识的同时,能够将所学应用于实际的微机接口设计之中。
课程目标分解为具体的学习成果,便于通过课堂讲解、实验操作、项目设计等教学活动,进行有效的教学设计和学习成果的评估。
二、教学内容根据课程目标,本章节教学内容主要包括以下部分:1. 8255芯片基础知识:- 8255芯片的结构与功能- 8255芯片的工作模式- 8255芯片的控制字设置2. 8255芯片编程控制:- 编程控制的原理与方法- 8255芯片的初始化编程- 8255芯片的数据输入/输出编程3. 并行通信原理与应用:- 并行通信的基本概念- 8255芯片在并行通信中的应用实例- 并行通信的接口设计4. 实践操作与课程设计:- 8255芯片的接口电路设计- 课程设计项目:基于8255的并行通信系统设计- 实践操作:8255芯片的编程与调试教学内容依据教材章节进行安排,具体包括:- 教材第3章第2节:8255可编程并行接口芯片- 教材第4章第1节:并行通信接口设计- 教材第4章第3节:8255编程及应用实例教学进度按以下顺序进行:1. 理论讲解:8255芯片基础知识及编程控制(2课时)2. 实践操作:8255芯片的初始化编程与调试(2课时)3. 理论讲解:并行通信原理及8255在并行通信中的应用(1课时)4. 实践操作:并行通信系统设计课程设计(3课时)教学内容具有科学性和系统性,结合理论教学与实践操作,旨在帮助学生扎实掌握8255接口芯片的相关知识,并能够应用于实际项目设计中。
微机课程设计8086控制的循环彩灯报告
设计目的:1.巩固和加深课堂所学知识;熟悉各种指令的应用及条件;2.学习掌握一般的软硬件的设计方法和查阅、运用资料的能力;3.深入了解与掌握8255A在PC机系统的典型接法和8255A的工作方法及应用编程。
设计任务与要求:设计一个循环彩灯控制系统,能输出四种花型,输出花型如下:1)00000001 左循环(1时亮,0时灭)2)10000000 右循环3)按00000001,00000011,00000111-----11111111规律递增,后同时闪烁一次,循环不断。
4)按01010101,10101010(或红、绿彩灯)交替闪烁。
功能要求:1)循环彩灯的循环速度可调;2)按键要求①启动/暂停,按SW0开关启动系统,按SW1开关停止系统工作。
②花型变换,由开关SW2、SW3进行四种花型切换;总体方案与说明:根据所学内容和对8255A的应用,整个系统硬件采用8086微处理器,74LS373锁存器,和8255A可编程并行接口芯片和8个led彩灯。
Intel 8255A是一种通用的可编程并行接口芯片,由于它是可以编程的,可以通过程序来设置芯片的工作方式,通用性强,使用灵活,可为多种不同的CPU与外设之间提供并行输入/输出的通道;8086微处理器,选择最小工作模式,所有的总线控制信号均由8086产生;8086CPU的地址\数据总线AD15-AD0和地址\状态总线A16/S3-A19/S6是复用的,必须通过地址锁存器把地址总线和数据总线分离循环彩灯主要模块流程图软件设计采用模块化程序设计思想,将软件划分成若干单元,主要包括主程序、LED彩灯显示子程序和延时子程序等。
本系统具体汇编源程序见附表一。
使用软件说明:ProteusProteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等Emu8086Emu8086-MicroprocessorEmulator结合了一个先进的原始编辑器、组译器、反组译器、具除错功能的软件模拟工具(虚拟PC),还有一个循序渐进的指导工具,编译源代码,并在模拟器上一步一步的执行。
微型计算机的控制技术课后答案详解
习题一1,微型计算机控制系统的硬件由哪几局部组成?各局部的作用是什么?答:CPU,接口电路与外部设备组成。
CPU,这是微型计算机控制系统的核心,通过接口它可以向系统的各个局部发出各种命令,同时对被控对象的被控参数进展实时检测与处理。
接口电路,微机和生产对象之间进展信息交换的桥梁和纽带。
外部设备:这是实现微机和外界进展信息交换的设备2,微型计算机控制系统软件有什么作用?说出各局部软件的作用。
答:软件是指能够完成各种功能的计算机程序的总和。
整个计算机系统的动作,都是在软件的指挥下协调进展的,因此说软件是微机系统的中枢神经。
就功能来分,软件可分为系统软件、应用软件1)系统软件:它是由计算机设计者提供的专门用来使用和管理计算机的程序。
对用户来说,系统软件只是作为开发应用软件的工具,是不需要自己设计的。
2)应用软件:它是面向用户本身的程序,即指由用户根据要解决的实际问题而编写的各种程序。
3,常用工业控制机有几种?它们各有什么用途?4,操作指导、DDC和SCC系统工作原理如何?它们之间有何区别和联系?答:(1)操作指导控制系统:在操作指导控制系统中,计算机的输出不直接作用于生产对象,属于开环控制结构。
计算机根据数学模型、控制算法对检测到的生产过程参数进展处理,计算出各控制量应有的较适宜或最优的数值,供操作员参考,这时计算机就起到了操作指导的作用。
(2)直接数字控制系统(DDC系统):DDC(Direct Digital Control)系统就是通过检测元件对一个或多个被控参数进展巡回检测,经输入通道送给微机,微机将检测结果与设定值进展比拟,再进展控制运算,然后通过输出通道控制执行机构,使系统的被控参数达到预定的要求。
DDC系统是闭环系统,是微机在工业生产过程中最普遍的一种应用形式。
(3)计算机监视控制系统(SCC系统):SCC(Supervisory puter Control)系统比DDC系统更接近生产变化的实际情况,因为在DDC系统中计算机只是代替模拟调节器进展控制,系统不能运行在最优状态,而SCC系统不仅可以进展给定值控制,并且还可以进展顺序控制、最优控制以与自适应控制等SCC是操作指导控制系统和DDC系统的综合与开展。
微机原理课程设计 太阳能热水器控制 8086
J I A N G S U U N I V E R S I T Y微机系统与接口技术课程设计说明书题目:太阳能热水器的数显控制学院名称:机械工程学院专业班级:测控1401姓名学号:指导教师:2016 年12 月目录引言 (1)一、结构设计 (1)1.1温度传感器 (1)1.1.1 DS18B20数字温度传感器 (1)1.1.2 AD590温度传感器 (2)1.2水位传感器 (3)1.2.1开关式液位传感器 (3)二、硬件设计 (4)2.1功能分析 (4)2.1.1温度读取与显示 (4)2.1.2水位的读取与显示 (6)2.1.3低温保护功能 (6)2.1.4手动注水功能 (7)2.2存储器 (7)2.3总体接线 (8)三、程序设计 (9)3.1.2 手动注水子程序 (11)四、功能测试 (12)4.1低温保护功能测试 (12)4.2水位显示和手动注水功能测试 (14)五、总结 (17)参考文献 (18)原件清单 (19)微机系统与接口技术课程设计任务书一、设计目的:1、建立微机系统概念,加深对微机系统的理解和认识,提高微机系统的应用能力。
2、进一步学习和掌握微机程序设计方法,通过应用程序的编写和调试,学习程序的调试方法。
3、进一步熟悉违纪典型接口芯片的使用,接口及外部设备与系统的连接方法,二、题目:微机系统与接口技术应用系统的设计-------------太阳能热水器数显控制器三、设计要求:1、以8086(8088)CPU为主控单元,构建微机应用系统。
2、应用系统的硬件设计,画出电路原理图和线路连接图。
3、应用系统的软件设计,画出软件流程图,写出主要程序。
4、根据实验条件,进行微机应用系统的部分模拟调试工作,写出调试说明。
5、整理设计说明书,列出参考文献清单。
6、列出使用的元件和设备清单引言目前,中国已成为世界上最大的太阳能热水器生产国,年产量约为世界各国之和。
但是与之相配套的太阳能热水器控制器却一直处在研究与开发阶段。
微机原理及接口技术课程设计(步进电机)
三、硬件系统的基本原理:
1、系统硬件子系统的构成:
本设计采用的步进电机为35BYJ46型四相八拍电机,电压为DC12V,其励磁线圈及其励磁顺序如下图及下表所示:
1
2
3
4
5
6
7
8
5
+
+
+
+
+
+
+
+
4
-
-
3
-
-
-
2
-
-
-
1
-
-
-பைடு நூலகம்
2、步进电机控制原理:
接线图:
B4区8255的PC0、PC1、PC2、PC3分别接E1区步进电机的A、B、C、D;
DEC BX
DECDX
JZ M1
LOOPA5
JMPM2
M2:MOV BX,OFFSET TAB
MOVAX,0007H
微机原理步进电机控制课程设计报告
河北科技大学课程设计报告学生姓名:学号:专业班级:课程名称:学年学期: 2 0 —2 0 学年第学期指导教师:2 0 年月课程设计成绩评定表目录一、设计题目……………………………………………………………….二、设计目的……………………………………………………………….三、设计原理及方案……………………………………………………….四、实现方法……………………………………………………………….五、实施结果……………………………………………………………….六、改进意见及建议……………………………………………………….七、设计体会……………………………………………………………….、一、设计题目编程实现步进电机的控制二、设计目的1.了解步进电机控制的基本原理2.掌握控制步进电机转动的编程方法3.了解8086控制外部设备的常用电路4.掌握8255的使用方法三、设计原理及方案设计原理步进电机驱动原理是通过对每相线圈中的电流的顺序切换实验中的步进电机有四相线圈,每次有二相线圈有电流,有电流的相顺序变化,来使电机作步进式旋转;驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速;利用 8255对四相步进电机进行控制;当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动;每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度一个步距角;当通电状态的改变完成一个循环时,转子转过一个齿距;四相步进电机可以在不同的通电方式下运行,常见的通电方式有单单相绕组通电四拍A-B-C-D-A…,双双相绕组通电四拍AB-BC-CD-DA-AB…,八拍A-AB-B-BC-C-CD-D-DA-A…等;通过编程对8255的输出进行控制,使输出按照相序表给驱动电路供电,则步进电机的输入也和相序表一致,这样步进电机就可以正向转动或反向转动;硬件连接图四.实现方法.步进电机控制程序流图.程序代码ASTEPEQU01H BSTEPEQU02H CSTEPEQU04H DSTEPEQU08H CODESEGMENT ASSUMECS:CODESTART:MOVDX,8003H;8255控制口地址MOVAL,82H;PA口输出,B口输入OUTDX,AL;写控制字K0:MOVDX,8000H;PA口地址MOVAL,0;输出低电平OUTDX,AL;电机停止转动MOVDX,8001H;PB口地址INAL,DX;读开关状态TESTAL,01H;PB0位K0=0吗JNZK1;不是零转K1JMPSTEP8;是零转单/双八拍工作方式K1:INAL,DX;读开关状态TESTAL,02H;PB1位K1=0吗JNZK2;不是零转K2JMPSTEP4;是零转双四拍工作方式K2:INAL,DX;读开关状态TESTAL,04H;PB2位K2=0吗JZSTEP41;是零转单四拍反转工作方式JMPK0;循环;单/双八拍工作方式:A→AB→B→BC→C→CD→D→DA→A STEP8:MOVBX,9000H;设置初始延时时间MOVDX,8000H;PA口地址MOVAL,ASTEPOUTDX,ALCALLDELAYMOVAL,ASTEP+BSTEPOUTDX,ALCALLDELAYMOVAL,BSTEPOUTDX,ALCALLDELAYMOVAL,BSTEP+CSTEPOUTDX,ALCALLDELAYMOVAL,CSTEPOUTDX,ALCALLDELAYMOVAL,CSTEP+DSTEPOUTDX,ALCALLDELAYMOVAL,DSTEPOUTDX,ALCALLDELAYMOVAL,DSTEP+ASTEPOUTDX,ALCALLDELAYJMPK0;双四拍工作方式:AB→BC→CD→DA→AB STEP4:MOVBX,5000H;设置延时时间MOVDX,8000H;PA口地址MOVAL,ASTEP+BSTEP;PA0PA1AB相输出高电平OUTDX,ALCALLDELAY;调延时MOVAL,BSTEP+CSTEP;BC输出高电平OUTDX,ALCALLDELAY;调延时MOVAL,CSTEP+DSTEP;CD输出高电平OUTDX,ALCALLDELAY;调延时MOVAL,DSTEP+ASTEP;DA输出高电平OUTDX,ALCALLDELAY;调延时JMPK0;单四拍反转工作方式:D→C→B→A→D STEP41:MOVBX,1000H;设置延时时间MOVDX,8000H;PA口地址MOVAL,DSTEP;D输出高电平OUTDX,ALCALLDELAY;调延时MOVAL,CSTEP;C输出高电平OUTDX,ALCALLDELAY;调延时MOVAL,BSTEP;B;输出高电平OUTDX,ALCALLDELAY;调延时MOVAL,ASTEP;A输出高电平OUTDX,ALCALLDELAY;调延时JMPK0DELAYPROCNEAR;延时子程序PUSHCXMOVCX,BXDD1:NOPLOOPDD1POPCXRETDELAYENDP;延时子程序结束CODEENDS;代码段结束ENDSTART五.实施结果.操作步骤1、硬件测试WINXP步进电机2、在硬件测试通过后,要注意三个相一致1PNP地址和数据段中的端口地址;2控制字和接线;3代码段中的端口地址和接线;3、把程序代码烧进写实验箱中.运行结果1K0扳下表示启动,步进电机转动;K0扳下表示停止,步进电机停止;2K1扳下表示顺时针转,速度慢;3K2扳下表示逆时针,即倒转,速度快;六.改进意见及建议程序设计没有实现加速和减速,在步进电机的转动函数里,每次循环都改变延时的大小即可实现变速;延时时间依次变长则步进电机减速,延时时间依次变短则步进电机加速;再配合开关即可实现加速减速的任意控制;七.设计体会这次做的实验是一个比较综合的实验,实验中主要是微机原理的编程,但还涉及到步进电机的有关知识以及一些专业基础课的知识,所以要做好这次实验我们需要做的有很多;首先,在查找资料的过程中,我更加理解了8255在微型计算机中的重要作用,理解了8255的基本的编程结构和基本控制字的设计方法,也锻炼了自己的动手能力和创新意识;其次,在编写汇编程序过程中,由于早先对汇编语言学习的不扎实,我们遇到了很大的困难,但是随着对问题理解的逐渐深入,这些问题最终都一一化解了;通过这次步进电机控制代码的编写,让我有了一个更深刻的认识:要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug命令,这对程序的调试是非常重要的;在这个过程中,不仅提高了实际动手操作能力,培养了治学严谨的态度,激发了我学习此专业课程的兴趣,而且让我们深刻的体验到理论知识与实践经验的密切联系,要成为一个高技术人才,必须理论与实践两手都要硬;在设计时,对不同方案的构思、分析、比较到最后的方案确定,这些工作,可以增强了我们分析、解决问题的能力,培养了我们的创新意识;。
微机原理教学大纲
微机原理教学大纲一、课程背景和目标1.1 课程背景微机原理作为计算机相关专业的必修课程,是学习计算机体系结构和计算机组成原理的基础。
通过学习微机原理,学生可以深入理解计算机的底层原理和运行机制,为后续的课程和实践提供坚实的基础。
1.2 课程目标本课程旨在使学生达到以下目标:- 理解计算机系统的组成与结构- 掌握微处理器及其相关器件的工作原理- 理解汇编语言的基本概念和编写方法- 能够独立完成简单的微机系统设计与实现- 发展问题解决和分析能力,培养创新思维和动手实践能力二、课程内容2.1 计算机系统概述- 计算机的基本组成和工作原理- 计算机的发展历程和分类2.2 软硬件概述- 计算机硬件的分类和功能- 计算机软件的分类和基本概念2.3 计算机的层次结构- 指令系统和指令的执行过程- 存储器层次结构和访问方法- 输入输出系统和设备控制2.4 微处理器组成与工作原理- 微处理器的基本功能和结构- 控制器和ALU的作用与实现- 数据通路和指令执行过程2.5 汇编语言基础- 汇编语言的基本概念和特点- 汇编语言的指令格式及寻址方式- 汇编语言程序的设计和调试2.6 总线与存储器- 总线的分类和基本特性- 存储器的种类和特点- 存储器的组织和寻址方法2.7 输入输出系统- 输入输出设备的分类和接口技术- 输入输出控制和数据传输方式- 中断和DMA的原理和应用三、教学方法与评估方式3.1 教学方法- 理论教学结合实践教学,注重理论与实际应用的结合- 通过案例分析和实验操作加深学生对知识的理解和掌握- 鼓励学生参与讨论,提高问题解决和分析能力3.2 评估方式- 平时成绩:包括课堂出勤、课堂表现和作业完成情况- 实验报告及实验成绩:要求学生独立完成实验并撰写实验报告- 期末考试:综合考核学生对课程内容的理解和应用能力四、教材及参考书目教材:- 《微机原理与接口技术导论》高晓阳等著,机械工业出版社参考书目:- 《计算机组成与设计:硬件与接口》 David A. Patterson等著,电子工业出版社- 《深入理解计算机系统》 Randal E. Bryant等著,电子工业出版社五、教学进度安排本课程按照以下进度安排进行授课:- 第一周:计算机系统概述- 第二周:软硬件概述- 第三周:计算机的层次结构- 第四周:微处理器组成与工作原理- 第五周:汇编语言基础- 第六周:总线与存储器- 第七周:输入输出系统六、课程总结微机原理课程的学习对于计算机专业的学生来说是非常重要的。
微机原理与接口技术及实训课程设计
微机原理与接口技术及实训课程设计1. 前言微机原理与接口技术是计算机科学与技术专业中非常重要的一门课程,它主要介绍了微机的硬件组成、指令系统、中断与异常处理、接口技术等相关知识。
在此基础上,我们还可以通过实训课程进一步深入了解这些知识并进行实际操作。
本文将详细介绍微机原理与接口技术及实训课程设计中的主要内容和相关知识点,以供有需要的读者参考。
2. 微机原理2.1 微机硬件组成微机硬件由CPU、内存、输入输出设备、总线等组成,其中CPU是微机最重要的组成部分。
CPU内部包含了运算器、控制器、寄存器等基本模块。
内存是指微机中的存储器,在CPU执行程序时需要不断地从内存中读取指令和数据。
输入输出设备包括键盘、鼠标、显示器、打印机等,它们通过总线与CPU和内存相连通。
2.2 微机指令系统微机的指令系统包括一系列机器指令,它们是CPU执行程序的基本指令。
机器指令包括数据传输指令、算术运算指令、逻辑运算指令、条件转移指令、无条件转移指令等。
指令系统的设计与微机性能密切相关,一般采用CISC(复杂指令集)或RISC(精简指令集)两种设计方式。
2.3 微机中断与异常处理微机中断是指CPU在执行程序时遇到外部事件(如键盘输入、硬件故障等)时暂停当前程序的执行,去执行相应的中断程序,处理完成后再回到原来的程序继续执行。
异常处理是指CPU在执行指令时发现指令有误、数据异常、访问越界等情况时,会根据异常类别跳转到相应的异常处理程序进行处理。
2.4 微机接口技术微机接口技术是指将微机与外部设备(如传感器、机器人、仪器等)通过接口进行联通。
接口技术主要包括并口、串口、USB接口等。
其中并口是指能够并行传输数据的接口,串口是指能够串行传输数据的接口,USB接口是一种通用的高速串行总线,广泛应用于各种设备间的连接。
3. 实训课程设计3.1 实训目的微机原理与接口技术实训是该课程的重要组成部分,其主要目的是让学生通过实际操作深入了解微机的硬件组成、指令系统、中断与异常处理、接口技术等相关知识,并掌握实现具体接口应用的能力。
微机原理课程设计——8255_8253交通灯模拟实验
微机原理课程设计一.设计任务及要求:交通信号灯的控制:1.通过8255A并口来控制LED发光二极管的亮灭。
2.A口控制红灯,B口控制黄灯,C口控制绿灯。
3.输出为0则亮,输出为1则灭。
4.用8253定时来控制变换时间。
要求:设有一个十字路口,1、3为南,北方向,2、4为东西方向,初始态为4个路口的红灯全亮。
之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。
延迟30秒后,1、3路口的绿灯熄灭,而1,3路口的黄灯开始闪烁(1HZ)。
闪烁5次后,1、3路口的红灯亮,同时2、4路口的绿灯亮,2、4路口方向开始通车。
延迟30秒时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁。
闪烁5次后,再切换到1、3路口方向。
之后,重复上述过程。
二.方案比较及评估论证:分析题意,红,黄,绿灯可分别接在8255的A口,B口和C口上,灯的亮灭可直接由8086输出0,1控制。
30秒延时及闪烁由8253控制,由闪烁的实现方法可分为两种方案:方案一:设8253各口地址分别为:设8253基地址即通道0地址为04A0H;通道1为04A2H;通道2为04A4H;命令控制口为04A6H。
黄灯闪烁的频率为1HZ,所以想到由8253产生一个1HZ的方波, 8255控制或门打开的时间,在或门打开的时间内,8253将方波信号输入或门使黄灯闪烁。
由于计数值最大为65535,1MHZ/65536的值远大于2HZ,所以采用两个计数器级联的方式,8253通道0的clock0输入由分频器产生的1MHZ时钟脉冲,工作在方式3即方波发生器方式,理论设计输出周期为0.01s的方波。
1MHZ的时钟脉冲其重复周期为T=1/1MHZ=1 s,因此通道0的计数初值为10000=2710H。
由此方波分别作为clock1和clock2的输入时钟脉冲,所以通道1和通道2的输入时钟频率为100HZ,通道1作计数器工作在方式1,计数初值3000=BB8H既30s,计数口,8255将A口数据输入到8086,8086检测到则输出一个高电平到8255的PA7到高电平既完成30s定时。
微机原理课程设计——交通灯控制系统
设计要求:设计要求:(1) 利用8253定时,8259中断及8255输出实现交通灯模拟控制。
(2) 实现能自动控制和手动控制。
实现能自动控制和手动控制。
(3) 实现能随时可以调整自动模式的绿灯和红灯时间和红灯时间1 1 设计目的设计目的电子课程设计是电子技术学习中非常重要的一个环节,是将理论知识和实践能力相统一的一个环节,是真正锻炼学生能力的一个环节。
交通灯能保证行人过马路的安全交通灯能保证行人过马路的安全,,控制交通状况等优点受到人们的欢迎,在很多场合得到了广泛的应用。
多场合得到了广泛的应用。
交通灯是采用计算机通过编写汇编语言程序控制的。
红灯停,绿灯行的交通规则。
广泛用于十字路口广泛用于十字路口,,车站车站, , , 码头等公共场所码头等公共场所码头等公共场所,,成为人们出行生活中不可少的必需品成为人们出行生活中不可少的必需品,,由于计算机技术的成熟与广泛应用计算机技术的成熟与广泛应用,,使得交通灯的功能多样化的功能多样化,,远远超过老式交通灯远远超过老式交通灯, , , 交通交通灯的数字化给人们生产生活带来了极大的方便,而且大大地扩展了交通灯的功能。
诸如闪烁警示、鸣笛警示,时间程序自动控制、倒计时显示,所有这些,都是以计算机为基础的。
还可以根据主、次干道的交通状况的不同任意设置各自的不同的通行时间。
或者给红绿色盲声音警示的人性化设计。
现在的交通灯系统很多都增加了智能控制环节,比如对闯红灯的车辆进行拍照。
当某方向红灯亮时,此时相应的传感器开始工作,当有车辆通过时,照相机就把车辆拍下。
辆通过时,照相机就把车辆拍下。
要将交通灯系统产品化,应该根据客户不同的需求进行不同的设计,应该在程序中增加一些可以人为改变的参数,以便客户根据不同的需要随时调节交通灯。
因此,研究交通灯及扩大其应用,有着非常现实的意义。
义。
2 2 设计内容设计内容交通灯控制系统交通灯控制系统利用8253定时器、8255等接口,设计一电路,模拟十字路口交通灯控制。
《微机原理与控制技术》课程教学改革思路与内容
《 机 原 理 与 控 制 技 术 》 程 知 识 点 比 理 设 计 教 学 环 节 , 充 分 体 现 本 课 程 的 特 微 课 以
造 成 《 型 计 算 机 控 制 技 术 》 程 授 课 老 较 抽 象 , 及面 较 广 , 后知 识 联 系 比 较 紧 点 , 微 课 涉 前 反映 课 程 的 特 征 , 并使 学 生 通 过 该 课 的
专 业 学 生 的 基 础 课 程 , 将 “ 型 计 算 机 技 术 》 该 课 程 作 为 专 业 必 修 的 基 础 课 程 , 而 微 。
织 教 学 , 以 保 证 在 较 少 学 时 内 既 完 成 难 教 学 大 纲 的 教 学 要 求 又 能 培 养 学 生 的 控
控 制 技 术 ” 为 非 计 算 机 专 业 学 生 的 专业 使 得 教 师 和 学 生 将 微 机 控 制 技 术 也 作 为 作
科 教 研 究
Cl E o j n ao Hrl ho d aO l v I ev n u tnn …‘…・ o tn a l d
微机 原理与控制技术 课程教 学改革思路 与 内容
、 王福 吉 贾振 元 刘巍 ( 大连理 工大学 机械 工程学 院 辽 宁大连 1 0 4 1 2) 6
算机 应 用 和 控 制 技 术 能 力 的 要 求 。 了使 内 容 的 顺 序 , 索 一 套 与 之 相 辅 相 成 的 为 探
程 又 无 法 掌 握 拓 展 和 延 伸 的 程 度 。 于 新 课 程 计 划 体 系 能 够 适 应 非 计 算 机 类 专 教 学 方 法 和 教 学 手 段 。 对 《 机 原 理 》 程 来 说 , 本 原 理 、 本 知 业 学 生 培 养 的 需 求 , 学 生 在 极 其 有 限 的 微 课 基 基 使
(整理)微型计算机原理课设
《微型计算机原理》课程设计题目:竞赛抢答器设计姓名:赵浩淞学号:40850020班级:电081指导教师:董洁日期:2010.12前言本次课程设计的内容是设计一个6路抢答器,并对抢答成功、抢答犯规、响铃提示等实际情况进行软硬件模拟。
设计过程中,主要用到的芯片有可编程中断控制器8259A、可编程并行接口芯片8255A、可编程定时器/计数器芯片8253等。
硬件方面,原理图的设计是基于Labcenter electronics公司出版的Proteus,它强大的仿真能力让我赞叹不已的同时,也受益匪浅。
软件方面,程序的设计是基于8086/8088汇编语言在轻松汇编软件上进行编写和调试,它小巧方便且功能齐全。
反复推敲的设计思路,充满艰辛而又饶有趣味的设计过程,成功的软、硬件结合,再加上日复一日的努力奋斗,才有了今日之设计成果。
在要求的基础之上,我还加入了一些自主创新的东西。
设计完成之时,本人激动的心情,溢于言表。
虽然,我知道,我的设计成果之中一定还存在很多不足之处,很多可以优化的地方,甚至,有可能还会有一些漏洞。
但是,整个过程我的的确确努力了,并全身心投入于其中了。
我尽量做到了我所能做到的最好。
下面,我将对我的设计思路、设计过程、设计心得等逐一进行详细的阐释。
烦请老师审阅。
特此感谢董洁老师一学期悉心的教导。
目录第一章课程设计任务书。
4 第二章设计。
5 2.1 设计思路。
5 2.2 硬件设计。
6 2.3 软件设计。
7 第三章小结及参考文献。
10 第四章课程设计图纸。
11 第五章程序清单。
12第一章设计要求设计一个具有4(6)路抢答的抢答器,启动计算机,计算机自动为系统各芯片进行初始化,抢答器开始工作。
比赛开始,在主持人按下开始键,绿灯亮后,选手才可开始抢答,否则违规。
利用并行接口和开关键。
逻辑开关K0——K3(5)代表抢答按钮,当某个逻辑开关闭合时,相当于抢答按钮按下。
若选手抢答成功,黄灯亮,七段数码管显示选手号码,扬声器鸣叫。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录一.课题背景 (2)二.系统总体控制方案设计 (2)(1)确定控制任务 (2)(2)分配及协调软件和硬件的功能 (2)三.控制算法的设计 (3)四.硬件设计 (4)(1)初步设计系统构架 (4)(2)器件选取,电路分析及选择。
(5)五.软件设计 (8)(1).软件设计流程图 (8)(2).详细源程序 (10)六.调试和仿真 (16)七.课程设计总结 (18)八.参考文献 (18)一.课题背景近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统质检技术的日益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,但仅单片机方面的知识是不够的,还应根据具体硬件结构、软硬结合,来加以完善。
计算机在人们的日常生活中是比较常见的电子产品之一。
可是它还在发展之中,以后必将出现功能更强大的计算机,基于这样的理念,本次设计是用STC89S51单片机、LCD显示器、控制按键为元件来设计的计算器。
利用此设计熟悉单片机微控制器及C语言编程,对其片资源及各个I/O端口的功能和基本用途的了解。
掌握应用程序开发环境,常用的LCD显示器的使用方法和一般键盘的使用方法。
二.系统总体控制方案设计(1)确定控制任务在本次的项目设计中,主要完成如下的设计任务:1.简要阐述单片机技术发展的国内外现状及LCD动态显示和矩阵键盘基本原理;2.掌握51单片机系列某种产品的最小电路及外围扩展电路的设计方法;3.了解单片机数据转换及工作过程;4.完成主要功能模块的硬件电路设计及必要的参数确定;5.用软件完成原理电路图的绘制;(2)分配及协调软件和硬件的功能计算器一般由运算器、控制器、存储器、键盘、显示器、电源和一些可选外围设备及电子配件通过人工货机器设备组成。
低档计算器的运算器、控制器由数字逻辑电路实现简单的串行运算,其随机存储器只有一、二个单元,供累加存储用。
高档的计算器由微处理器和只读存储器实现各种复杂的运算程序,有较多的随机存储单元以存放输入的程序和数据。
键盘是计算器的输入部件,一般采用接触式或传感式。
为减小计算器的尺寸,一键常有多种显示功能。
显示器是计算器的输出部件,有发光二极管显示器和液晶显示器等。
除显示计算结果外,还常有溢出指示、错误指示等。
计算器电源采用交流转换器或电池等,计算器都采用CMOS工艺制作的大规模集成电路,并在内部装有定时不操作自动断电的电路。
计算器可选用的外围设备有微型打印机等。
在计算器的设计上我们主要的编程软件是Keil,硬件方面我们主要用的是AT89C52单片机,矩阵键盘和LCD液晶显示屏。
我们在Keil上面编写好程序,再用单片机作为运算器矩阵键盘输入数据通过单片机的处理在LCD显示屏上显示出来处理的结果。
从而实现简单的计算器的功能。
为了设计方便我们的硬件主要由Proteus实现。
KEIL软件介绍:Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势。
Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,可以完成编辑、编译、连接、调试、仿真等整个开发流程。
然后分别由C51及A51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex 文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
通过一个集成开发环境(uVision)将这些部份组合在一起。
硬件仿真Proteus简介:Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。
它运行于Windows 操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:①实现了单片机仿真和SPICE电路仿真相结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
②支持主流单片机系统的仿真。
目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
③提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。
④具有强大的原理图绘制功能。
Proteus能很好的对硬件电路进行仿真测试,采用Proteus 仿真软件进行虚拟单片机实验,具有比较明显的优势,涉及到的实验实习内容全面、硬件投入少、实验过程中损耗小、与工程实践最为接近等。
总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。
三.控制算法的设计PID控制算法的概念:在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。
PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。
当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。
即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。
PID控制,实际中也有PI和PD控制。
PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。
PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。
其输入e (t)与输出u (t)的关系为u(t)=kp*e(t)+1/TI∫e(t)dt+TD*de(t)/dt+ 式中积分的上下限分别是0和t因此它的传递函数为:G(s)=U(s)/E(s)=kp[1+1/(TI*s)+TD*s]其中kp 为比例系数; TI 为积分时间常数; TD 为微分时间常数PID 控制算法原理图上图中signal constaint 是非线性优化模块。
原始值设置KP=0.5,Ki=0.05,Kd=2,经过非线性优化模块的优化后的值为Kp=1.000,Ki=2.500,Kd=1.500。
仿真波形为四.硬件设计(1)初步设计系统构架在Altium Designer 软件下建立的电路原理图。
(2)器件选取,电路分析及选择。
AT89C52 ATMEL公司生产的低电压,高性能CMOS 8位单片机.片内含8K byTES的可反复擦写的只读程序存储器(PEROM)和256 byTES 。
的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052 产品引脚兼容,片内置通用8位中央处理器(CPU )和FLASH由存储单元,功能强大AT89C52单片适用于许多较为复杂控制应用场合。
与Mcs-51产品指令和引脚完全兼容。
8字节可重擦写FLASH闪速存储器,1000 次擦写周期全静态操作:0HZ-24MHZ三级加密程序存储器256X8字节内部RAM32个可编程I/0口线3个16 位定时/计数器8个中断源可编程串行UART通道低功耗空闲和掉电模式。
AT89C52的内部结构图:功能特性:AT89C52 提供以下标准功能:8字节FLASH闪速存储器,256字竹内部RAM , 32个I/O 口线,3个16 位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89c52可降至OHz的静态逻辑操作,并支持两种软件可选的节电上作模式。
空闲方式停止CPU 的工作,但允许RAM,定时/计数器.串行通信口及中断系统继续工作。
掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
时钟和复位电路模块:时钟采用外部晶振,频率为11.0592MHz显示模块:1602 液晶的控制管脚都接到了单片机管脚上,在功能设置指令中可以将液晶设为8 位数据接口和4 位数据接口,液晶电源正端接5V,负端接地,背光正端接5V,负端接地。
此外,液晶的偏压管脚(VO)接到一个电位器的中间抽头,电位器的两端分别接5V 和地,这样就可通过调节电位器来实现对1602 液晶对比度的调节。
经实验测试,笔者手里的1602 液晶的偏压管脚的电压调节到0.3~0.4V 时对比度效果最好,也可以将该管脚通过一个1k 的电阻下拉到地。
键盘输入模块:键盘是单片机系统中最常用的人机对话输入设备,用户通过按键向单片机输入指令和数据。
键盘控制程序需完成的任务有:检查是否有按键按下,有键按下时,如无硬件去抖动电路时,应用软件延时方法消除按键抖动;当有多个按键按下时,只响应一个按键,不管持续多长时间,仅执行一次按键功能程序。
五.软件设计(1).软件设计流程图总流程图:N(2).详细源程序#include"reg52.h"#define uchar unsigned char#define uint unsigned intsbit rs=P2^2;sbit en=P2^3;uchar code table[]="0123456789/*-c=+";uchar temp,num,flag_key=0,flag1=0,j,flag,fhao=0;uchar clean_flag=0;uint num1,num2,num3,a[20],b[4];delay(uint z) //延时函数{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}write_com(uchar com) //液晶写指令函数{rs=0;P0=com;delay(5);en=1;delay(5);en=0;}write_data(uchar dat) //液晶写数据函数{rs=1;P0=dat;delay(5);en=1;delay(5);en=0;}void init() //液晶初始化函数{en=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(1);write_com(0x80);}uchar keyscan() //键盘检测函数{P3=0xfe;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P3;temp=temp&0xf0;while(temp!=0xf0){temp=P3;switch(temp){case 0xee:num=7; flag_key=1;break;case 0xde:num=8; flag_key=1;break;case 0xbe:num=9; flag_key=1;break;case 0x7e:num=10;flag_key=1; // 为除break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}P3=0xfd;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P3;temp=temp&0xf0;while(temp!=0xf0){temp=P3;switch(temp){case 0xed:num=4; flag_key=1;break;case 0xdd:num=5;flag_key=1;break;case 0xbd:num=6; flag_key=1;break;case 0x7d:num=11; flag_key=1;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}P3=0xfb;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P3;temp=temp&0xf0;while(temp!=0xf0){temp=P3;switch(temp){case 0xeb:num=1; flag_key=1;break;case 0xdb:num=2;flag_key=1;break;case 0xbb:num=3; flag_key=1;break;case 0x7b:num=12;flag_key=1;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}P3=0xf7;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P3;temp=temp&0xf0;while(temp!=0xf0){temp=P3;switch(temp){case 0xe7:num=13; flag_key=1;break;case 0xd7:num=0; flag_key=1;break;case 0xb7:num=14; flag_key=1;break;case 0x77:num=15; flag_key=1;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}return num; // 返回键盘所得的全局变量num }void clear() //当按键为C时,清除液晶上的显示并清除以前的数{flag_key=0;j=0;write_com(1); //给液晶发送清屏指令flag=0;flag1=0;num1=0;num2=0;}void disp() //数据的显示函数{uchar i,bai,shi,ge,qian,wan,k;if(flag_key==1){a[j]=num;j++;for(i=0;i<j;i++){write_com(0x80+i);write_data(table[a[i]]);} //前面为在液晶上显示键盘上输入的数字和运算符if(flag1==1) //进行运算结果数的分离{wan=(num3%100000)/10000; b[4]=wan;qian=(num3%10000)/1000;b[3]=qian;bai=((num3)%1000)/100;b[2]=bai;shi=((num3)%100)/10;b[1]=shi;ge=(num3)%10;b[0]=ge;if(wan!=0) k=4;elseif(qian!=0) k=3; //取出所得的数有几位,确定循环时的次数elseif(bai!=0) k=2;elseif(shi!=0) k=1;elsek=0;i=0;for(k;k>=0;k--){if(fhao==1) //根据符号标志位选择是否输出负号{write_com(0x80+0x40+i);write_data('-');i++;fhao=0;}write_com(0x80+0x40+i);i++;write_data(table[b[k]]);if(k==0) break;}}}}void main() //主函数{uchar ff;init();while(1){keyscan();if(clean_flag){while(num != 13)keyscan();clean_flag=0;}if(flag_key==1) //判断键盘是否有键按下{if(num>=0&&num<10) //判断所得的键值是数字还是负号{if(flag==0) num1=(num1*10)+num;if(flag==1) num2=(num2*10)+num;}elseif(num!=13&&num!=14) {ff=num;flag=1; }else{ if(num==13) clear();elseflag1=1;flag=0;switch(ff) //判断对相应的符号进行计算{case 10:num3=num1/num2;clean_flag=1;break;case 11:num3=num1*num2;clean_flag=1;break;case 12:if(num1>=num2){num3=num1-num2;clean_flag=1;} //判断相减结果的正负else{num3=num2-num1;clean_flag=1;fhao=1; }break;case 15:num3=num1+num2;clean_flag=1; break;}}}disp();flag_key=0;}}六.调试和仿真硬件调试:常见故障:1.逻辑错误:它是由设计错误或加工过程中的工艺错误所造成的,这类错误包括错线,开路,短路等。