案例2-单片机最小系统设计


瓷1 周期
• • • • 振荡周期:指振荡源的周期(石英晶体的振荡周期) 时钟周期:(称S周期)为振荡周期的2倍 机器周期:一个机器周期含6个时钟周期,即12个振荡周期。 指令周期:完成一条指令占用的全部时间。805l的指令周期 含1-4个机器周期 • 机器周期:T=12/fosc
• 或bit my_bit=0x00;
• my_bit=P1_0; • if(my_bit==1) {;} • if(P1_0= =1) {;}
– 写位 • P1_0=1; P1_0=0; P1_0=~P1_0;
端口输出控制-字节操作方式
• • • • • • • • • • • • • • • • • • • • • • • • • • • #include "reg51.h" #define DELAY 1000 void delay(unsigned int n) { unsigned int i; for(i=0;i<n;i++) ; } void main() { P2=0x7f; delay(DELAY_1S); P2=0xBf; delay(DELAY_1S); P2=0xDf; delay(DELAY_1S); P2=0xEf; delay(DELAY_1S); P2=0xF7; delay(DELAY_1S); P2=0xFB; delay(DELAY_1S); P2=0xFD; delay(DELAY_1S); P2=0xFE; delay(DELAY_1S); }
• 若fosc=6 MHz,则805l的: 振荡周期=1/6 us; 时钟周期=1/3 us; 机器周期=2 us; 指令周期=2~8 us。
复位电路
• 为什么要复位?
– 单片机死机时,需要复位; – 复位后CPU从地址0000H开始执行 程序。
6*6*5mm微动按钮
• 怎么复位?
– P3
• RXD、TXD、INT0#、INT1# • T0、T1、WR#、RD#
8051 I/O 读写操作
• 字节操作 – #include “reg51.h” P1=0x90; • // sfr 位操作 – sbit P1_0=P1^0; //必须先定义位 – 读位 • bdata my_byte=0x20; • sbit my_bit= my_byte ^0; – 读字节 • unsigned char a; • a=P1; //读8位 • a=P1&0x01; //读1位 • a=P1&0x0f; //读4位 – 写字节 • P2=0x01; //写8位常量 • P2=a[i]; //写8位数组元素 • P2=P2|0x01;//对P2.0置1 • P2=P2&0x0f;//对P2高4位清0, 低4位保持不变
案例2 单片机最小系统设计 ftp://10.28.86.201 用户名:stu 密码:stu
2014.9.18
单片机最小系统设计步骤
• 硬件设计 –工具软件:Altium Designer、DXP • 软件设计 –工具软件:Keil uVision • 调试 –万用表 –示波器
最小系统-硬件单元电路
ROM(程序存储器)
• ROM保留地址 • 其它ROM地址
RAM(随机存储器)
• 低128字节(00H~7FH) – RAM区 • 高128字节(80H-FFH)
– 特殊功能寄存器(SFR)的区 – 8051有21个特殊功能寄存器,其 它是预留,不能用于存储数据 – 具体见下页
8051 21个特殊功能寄存器(SFR)
• •
}
}
}
问题原因:
1、unsigned char i; i是不可能为负的,因此应修改为char i;
端口输出控制-位操作方式
• 注意sbit定义位 –必须在源程序的上方 –必须在函数外 • 该程序的最终执行效果如 何?
• 显然本例用字节方式 输出更方便
端口输入检测-字节操作方式
• 8051输入 – S0(P1.0) – S1(P1.1) – 有效电平:低电平,即只要 判断P1.0、P1.1是否为低电 平即可
下拉接法 高电平驱动
开关量输出控制电路2-大信号输出
• 工业现场的开关量通常是12V或24V,而MCU输出一般为5V 或3.3V,因此需要加驱动电路。具体方法可采用三极管 或集成达林顿管驱动。
继电器驱动电路
开关量输出控制电路2-大信号输出
• 工业现场的开关量通常是12V或24V,而MCU输出一般为5V 或3.3V,因此需要加驱动电路。具体方法可采用三极管 或集成达林顿管驱动。
• 8051的ROM与RAM采用独立编址 (地址会出现重叠) • 系统是通过控制信号 –PSEN#(ROM编程选择使能) –RD#(RAM读控制) –WR# (RAM写控制) –来区分对ROM还是RAM的操作
ROM启动选择电路
• AT89S51单片机片内含4K Flash ROM –地址范围:000H~3FFH • 片外亦可扩展到最大64K的ROM –地址范围:0000H~FFFFH • 8051单片机系统是从0H地址处开始运行的,因此8051 单片机设置了EA#(External Address外部地址)选通 控制位 –EA#=0:用外部ROM启动 –EA#=1:用内部ROM启动
*:表示该SFR可以位寻址
8051单片机程序下载
• 编程器方式
• ISP –In System –在系统编程
Program
• IAP –In Application Program –在应用编程:通过RS232、CAN、以太网等
ISP下载接口电路
DC10P简易牛角座 FC10P压线头
ByteBlasterII 并口下载 实验室台式机 参阅\Isplay1.3\ISPlay使用手册.pdf
– 在RST输入端出现高电平时实现 复位和初始化。复位时RST引脚 至少保持一定时间的高电平-高 电平持续24个振荡周期以上 (6MHz-4us)。 – 当RST引脚返回低电平以后,CPU 从地址0000H开始执行程序,复 位时晶振上无信号。
12*12*7mm微动按钮
复位电路
• 复位电路
–上电复位(R=10k, C=10uF t=RC=100ms) –手动复位 –看门狗自动复位
• while内嵌if语句
• • • • • • • • • • • • • void main() { unsigned char d[8]={0x80,0x40,0x20,0x10, 0x08,0x04,0x02,0x01}; unsigned char i; i=0; while(1) { P2=~d[i]; delay(DELAY_1S); i++; if(i==8) i=0;
达林顿管驱动
8051 I/O口
• 8051单片机有4组8位
– P0 – P1 – P2 – P3
• 部分端口除I/O功能外的第二 功能
– P0
• AD7~AD0 • 低8位地址总线/8位数据总线分 时复用
• 每个端口
– 可作为输入或输出 – 字节操作 – 位操作(位寻址)
– P2
• A15~A8 • 高8位地址总线
• 观察Proteus仿真效果
• • • • • • • • • • • • • • • void main() { unsigned char d[8]={0x80,0x40,0x20,0x10, 0x08,0x04,0x02,0x01}; char i; i=7; while(1) { P2=~d[i]; delay(DELAY_1S); i--; if(i==-1) i=7; }
• • • • • • •
• • •
0x08,0x04,0x02,0x01}; unsigned char i; while(1) { for(i=0;i<8;i++) { P2=~d[i]; delay(DELAY_1S); } } }
• •
}
}
问题:
1、程序中数组d与变量i为什么要用unsigned char类型定义? 2、左右程序执行一次while循环各用多少时间?采用哪种方式更好?为什么? 3、若要改变循环移动方向,程序应如何修改?
问题: 1、8状态完成后程序结束,应该加死循环while(1); 2、低电平有效时,16进制数据书写较繁琐,可采用位取反“~”实现; 3、8组语句可采用通过数组,用循环实现,以简化程序。具体方法见下页
端口输出控制-字节操作方式
• while内嵌for语句
• • • • void main() { unsigned char d[8]={0x80,0x40,0x20,0x10,
符号 *ACC *B *PSW SP DPL DPH *IE *IP *P0 *P1 *P2 地址 E0H F0H D0H 81H 82H 83H A8H D8H 80H 90H A0H 注释 累加器 乘法寄存器 程序状态字 堆栈指针 数据存储器指针(低8位) 数据存储器指针(高8位) 中断允许控制器 中断优先控制器 通道0 通道1 通道2 符号 *P3 PCON *SCON SBUF *TCON TMOD TL0 TL1 TH0 TH1 地址 B0H 87H 98H 99H 88H 89H 8AH 8BH 8CH 8DH 注释 通道3 电源控制及波特率选择 串行口控制器 串行数据缓冲器 定时器控制 定时器方式选择 定时器0低8位 定时器0高8位 定时器1低8位 定时器1高8位
• 字节输入方式判断
• • • • • • • • • • • • • • • void main() { while(1) { if(P1&0x01==0) //S0按下 { //循环左移 } else if(P1&0x02==0) //S1按下 { //循环右移 } } }
合集下载

单片机最小系统设计

单片机最小系统设计

实验二单片机最小系统设计084775116 马丽丽一、实验目的1. 掌握C8051F330单片机最小系统设计方法;2. 进一步熟悉Keil uVision2 开发环境的使用;3. 了解C语言程序设计和调试方法;4. 熟悉C8051F优先权交叉开关译码器,掌握I/O口交叉开关设置和引脚配置;5. 了解C8051F单片机内部和外部振荡器结构和配置方法。

二、实验内容1. C8051F330单片机最小系统设计、制作与调试;2. C8051F330单片机片内振荡器配置;3. I/O口交叉开关配置。

为UART0、/INT0和/INT1分配端口引脚。

将P1.2、 P1.3 和P1.4配置为模拟输入;4. 改变系统工作时钟频率,在P1.7输出一个矩形波,用示波器观察波形,并记录信号频率、周期与脉宽。

三、实验步骤(一)电路板的焊制1. 根据C8051F330最小系统电路参考图和C8051F330单片机引脚分布图焊接最小系统的电路板;两张图如下:2. 焊接好后的电路板如下图:焊接电路的材料为: C8051F330芯片、 电容、电阻、 通用板、导线、 焊锡条、电烙铁、 按键、 JTAG3. 焊接好电路后,接上3.3V 的电压然后下载一个程序,通过观察是否下载的进去来判断电路板是否焊接正确。

若下载成功电路板应该没问题。

(二)绘制方波程序流程图1. 绘制改变系统时钟来改变方波周期的程序流程图如下;2. 绘制通过定时器中断方式输出占空比可变的方波的程序流程图;(见下页)(三)程序编写、下载、检查!(两个程序步骤相似只是源代码不同,所以步骤只写一次了,源代码见附录)1. 打开Keil编程环境,新建一个文件;2. 根据流程图编写C语言程序,保存文件后缀名为“.c”;3. 新建一个工程:Project → New Project →保存→选择Silicon Laboratories →C8051F330芯片;4. 将文件导入:右键target → Add Files to Group “ Source Group 1”→将“.c”文件选中加入工程即可。

单片机最小系统设计

单片机最小系统设计

单片机最小系统设计时间:2011-05-01 22:47:54 来源:作者:单片机最小系统设计该单片机最小系统具有的功能:(1)具有2位LED数码管显示功能。

(2)具有八路发光二极管显示各种流水灯。

(3)可以完成各种奏乐,报警等发声音类实验。

(4)具有复位功能。

功能分析(1)两位LED数码管显示功能,我们可以利用单片机的P0口接两个数码管来现这个功能;(2)八路发光二极管显示可以利用P1口接八个发光二极管实现这个功能;(3)各种奏乐、报警等发声功能可以采用P2.0这个引脚接一蜂鸣器来实现。

(4)利用单片机的第9脚可以设计成复位系统,我们采用按键复位;利用单片机的18、19脚可以设计成时钟电路,我们利用单片机的内部振荡方式设计的。

设计框图硬件电路设计根据本系统的功能,和单片机的工作条件,我们设计出下面的电路图。

元件清单的确定:数码管:共阴极2只(分立)电解电容:10UF的一只30PF的电容2只220欧的电阻9只4.7K的电阻一只1.2K的电阻一只4.7K的排阻一只,12MHZ的晶振一只有源5V蜂名器一只AT89S51单片机一片常开按钮开关1只紧锁座一只(方便芯取下来的,绿色的)发光二极管(5MM红色)8只万能板电路版15*17CMS8550三极管一只4.5V电池盒一只,导线若干。

七、硬件电路的焊接按照原理图把上面的元件焊接好,详细步骤省略。

相关程序编写针对上面的电路原理图,设计出本单片机最小系统的详细功能:(1)、第一个发光二极管点亮,同时数码管显示“1”。

(2)、第二个发光二极管点亮,同时数码管显示“2”。

(3)、依次类推到第八个发光二极管点亮,同时数码管显示“8”。

以上出现的是流水灯的效果(4)、所有的发光二极管灭了,同时数码管现实“0”。

(5)、数码管显示“1”。

(6)、数码管显示“2、……”直到“9、A、B、C、D、E、F、Y”。

(7)、蜂鸣器发出九声报警声后重复上面所有步骤。

(8)程序如下:ORG 0000H;伪指令,定义下面的程序代码(机器代码)从地址为0000H的单元存放。

单片机的最小系统设计方案调试

单片机的最小系统设计方案调试

单片机的最小系统设计调试1单片机主模块单片机最小系统包括单片机,电源,晶振,复位电路。

1.1晶振电路晶振电路给单片机提供时钟信号,这里选择的晶振频率为11.0592MHz外接两个谐振电容。

该电容选择30pF。

1.2复位电路此处用RC谐振电路构成上电复位电路。

当输入连续两个机器周期以上高电平有效时为有效,用来完成单片机的复位初始化操作,复位后,单片机从新开始执行程序。

1.3外接发光二极管此处直接将发光二极管接到单片机P2.0 口,上电后如果单片机没有程序将该口置低,二极管就能被点亮,来显示单片机是否上电成功而正常工作。

该模块电路图如图所示2. 通信模块本系统采用MAX23实现TTL电平与RS-232电平的转换。

MAX232E片引脚分配如图所示:MAX芯片内部有一个电源电压变压器,可以把输入的+5V电源电压变换成为RS-232输出电平所需的+12 V电压。

所以,采用此芯片的串行通信系统只需单一的+5V电源就可以了。

MAX232芯片引脚结构和外围电路连接如图所示。

图 3.5.2MAX232勺电容C301,C302, C303 C304,及V+, V-是电源变换电路部分。

按照芯片资料,此处选用0.1uF的非极性瓷片电容来设计电路,在具体设计电路时,这四个电容要靠近MAX23芯片,以提高抗干扰能力。

在此设计图中使用直通接法,数据传输过程如下:MAX232的10脚T1IN接单片机的TXD端P3.1,TTL电平从单片机的TXD端发出,经过MAX23转换成RS-232 电平后从MAX23的7脚T2out发出,在连接到串口座的第2脚,再通过平行串口线连接到PC机的串口座的第2脚RXD端,直至计算机接收到数据。

PC机发送数据时从PC机串口座的第3脚TXD端发出数据,再逆向流向单片机的RXD端P3.0 接收数据。

安装调试1. 测试仪器(1)示波器COC502020MHZ2)万用表UT71B(3) HH1713双路直流稳压电源2. 单片机最小系统测试将单片机连接到+5V直流稳压电源上,使用万用表直流电压档测试40脚是否为高电平,20脚是否为低电平,9脚是否为低电平;使用示波器测试单片机的第30引脚是否有方波信号输出,18或19引脚是否有11.0592MHZ的方波信号输出。

实训一 单片机最小系统

实训一 单片机最小系统

单片机最小系统一、单片机最小系统的功能和应用在智能化仪器仪表中,控制核心均为微处理器,而单片机以高性能、高速度、体积小、价格低廉、稳定可靠而得到广泛应用,是设计智能化仪器仪表的首选微控制器,单片机结合简单的接口电路即可构成单片机最小系统,它是智能化仪器仪表的基础,也是测控。

监控的重要组成部分。

二.单片机最小系统结构框架(一)、系统功能要求:1、显示位数:6位。

2、键盘按键数:16个。

3、初始化状态显示P.。

3、能输入、显示十六进制数0——f。

(一)、硬件系统设计:硬件系统原理图如下页图:1、时钟电路系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。

AT89单片机内部有一个用于构成振荡器的高增益反相放大器。

引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。

这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。

外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。

对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。

因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF。

在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。

2、复位电路复位是由外部的复位电路来实现的。

片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。

复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路,如图所示。

当时钟频率选用6MHz时,C取22μF,Rs约为200Ω,Rk约为1K。

3、键盘电路设计:矩阵式键盘按键的识别当非编码键盘的按键较多时,若采用独立式键盘占用I/O 口线太多,此时可采用矩阵式键盘,键盘上的键按行列构成矩阵,在行列的交点上都对应有一个键。

单片机最小系统的设计

单片机最小系统的设计

单片机最小系统的设计以AT89C51单片机为例,设计一个单片机最小系统。

要求:1、功能:有按键开关、键盘进行高低电平的输入。

有数码管显示输出数字。

有LED灯显示输出的高低电平。

LCD显示输出数字和中文文字符号。

有使单片机工作的最小外围电路。

2、设计采用Keil单片机开发软件进行,在该软件上设计虚拟电路并进行仿真实现键盘、按键输入数据,在数码管、LED、LCD上显示输入内容,或运算、控制结果。

3、写出完成上述工作的全部过程。

包括软件选取、软件安装、每个功能硬件的选取和连接过程,软件的编写过程、源程序调试过程,最后附上全部工程文件和程序。

上述工作的目的:通过单片机的学习,学会基本的科研工作方法:构思、系统框图、详细设计、硬件设计、软件设计、研究工作中的记录、总结、归纳。

正反两方面的经验都要写。

方法:先建设一个WORK文档,以后每做一步写步,做完设计工作同时文档也就写完,然后对文档总结、整理、提高,这样每做完一件事,一篇可发表的论文也应完了,而不要做完了设计才来回想、写论文,时间就浪费了,很多设计过程中遇到的问题也忘了。

下面是去年同学写的内容,仅参考,不要抄,要自己写,比这个更好。

一、软件的介绍本文以AT89C51作为控制部件,同时利用LCD显示当前状态,从而实现依次按键控制LED灯亮灭的最简控制系统。

1、proteus软件的使用方法Proteus软件是Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。

Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。

通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。

单片机最小系统设计

单片机最小系统设计

单片机最小系统设计单片机最小系统是指由单片机与外围电路构成的最小功能完整的系统。

在单片机设计中,最小系统起到了连接单片机和外界外设的桥梁作用。

本文将从电源、晶振、复位电路以及外设接口等方面详细讨论单片机最小系统的设计。

一、电源设计在单片机系统中,合理的电源设计对于保证系统正常运行非常重要。

通常情况下,单片机系统需要提供稳定的电压供给,并且需要考虑到不同功耗的模块之间的电源隔离。

为了满足这些需求,可以使用稳压芯片对电源进行调整和稳定,同时添加滤波电容以保证电源的稳定性。

二、晶振电路设计单片机系统需要一个可靠的时钟源来提供精确的计时功能。

晶振电路是实现单片机时钟源的重要组成部分。

一般来说,晶振电路由晶体振荡器和负载电容构成。

在设计晶振电路时,需要注意选择合适的晶振频率以及相应的负载电容。

三、复位电路设计复位电路是单片机系统中不可或缺的一部分,它能够在系统上电或异常情况下将单片机恢复到初始状态。

常见的复位电路包括电源按键复位电路和复位电路。

在设计复位电路时,需要考虑到稳定的复位电平、合适的延时电路以及可靠的触发条件。

四、外设接口设计外设接口设计是单片机最小系统中的重要环节。

通过合适的外设接口设计,可以实现单片机与外界设备的连接和通信。

常见的外设接口包括串口、并口、I2C接口等。

在设计外设接口时,需要充分考虑接口的稳定性、兼容性以及通信速率的要求。

五、系统调试与测试在完成单片机最小系统的硬件设计后,需要进行系统的调试和测试。

通过合理的调试和测试措施,可以保证系统的稳定性和可靠性。

常见的调试工具包括示波器、逻辑分析仪等。

通过这些工具,可以对单片机系统进行信号捕获、时序分析等操作,以确保系统的正常运行。

六、总结单片机最小系统设计是单片机开发中的重要环节。

通过合理的电源设计、晶振电路设计、复位电路设计以及外设接口设计,可以实现单片机与外界设备的连接和通信。

在系统设计完成后,需要进行系统的调试和测试,以确保系统的稳定性和可靠性。

单片机最小系统实验设计报告

单片机最小系统实验设计报告一、实验目的(1)熟悉单片机最小系统的组成,上机步骤及调试方法;(2)加深理解C51汇编语言逻辑结构,能够使用汇编进行简单的程序编写;(3)将课上学到的理论知识联系实际,完成简单的电子控制系统;二、实验所需仪器及设备三、实验线路及原理下图为实验板电路图:(1)硬件组成及原理硬件组成:89S52单片机、8D锁存器74LS573两片、16选1译码器74LS154、16位七段数码显示器、轻触开关;原理:采用扫描显示,利用人眼视觉暂留效应,产生稳定的数码显示效果。

基于上述基本原理,利用单片机的P0口作为七段数码显示器的段选控制,通过两片8D 锁存器74LS573将段选控制分配到两组总共16位七段数码显示器上;单片机的P1.0-P1.3作为16位七段数码显示器的位选,而如何用单片机的4个管脚控制两组总共16位的七段数码显示器呢?这里使用的是1片16选1的译码器74LS154。

(2)软件原理程序流程图:显示主循环个按键完成设置、加、在按键子程序中以及加减闪烁的值,数据缓FLASH修改显示缓冲 区闪烁位在显示子程序中,只需负责将显示缓冲区的数据取出来进行显示即可按键子程序说明:KEYIN: JNB SSET,KEYIN1 ;判断SET键是否按下ACALL DELAY1 ;延时去抖动JNB SSET,KEYIN1JB SSET,$ ;判断SET键是否松开INC FLASH ;SET键按下调整闪烁标志位MOV R7,FLASHCJNE R7,#17,KEYIN1;判断FLASH是否已经移出16位MOV FLASH,#0HKEYIN1: MOV TEMP1,R0JNB SSUB,KEYIN2;判断减键是否按下ACALL DELAY1;延时去抖动JNB SSUB,KEYIN2JB SSUB,$ ;判断减键是否松开MOV A,FLASHADD A,#60HMOV R0,ADEC @R0;减键按下修改数据缓冲区对应位的值CJNE @R0,#0FFH,KEYIN2MOV @R0,#0BHKEYIN2: JNB AADD,KEYIN3;判断加键是否按下ACALL DELAY1;延时去抖动JNB AADD,KEYIN3JB AADD,$ ;判断加键是否松开MOV A,FLASHADD A,#60HMOV R0,AINC @R0; 加键按下修改数据缓冲区对应位的值CJNE @R0,#0CH,KEYIN3MOV @R0,#0KEYIN3: MOV R0,TEMP1RET显示子程序:DISP: MOV A,@R0ACALL TAB;查表取得由第一片74LS573送出的段代码的值 ACALL SEGU9;调用第一片74LS573数据锁存子程序MOV A,@R1ACALL TAB1;查表取得由第二片74LS573送出的段代码的值 ACALL SEGU10;调用第二片74LS573数据锁存子程序INC R0;调整显缓指针INC R1;调整显缓指针ACALL SENDBIT;调用位选子程序点亮16位7段LED中的两位 ACALL DELAY;延时CJNE R0,#58H,DISP;判断是否已完成16位显示MOV R0,#50H;显缓指针付初值MOV R1,#58H;显缓指针付初值RET主程序:FLAG EQU 20HFG1 BIT FLAG.0FG2 BIT FLAG.1DATABUF1 EQU 60HDATABUF2 EQU 61HDATABUF3 EQU 62HDATABUF4 EQU 63HDATABUF5 EQU 64HDATABUF6 EQU 65HDATABUF7 EQU 66HDATABUF8 EQU 67HDATABUF9 EQU 68HDATABUF10 EQU 69HDATABUF11 EQU 6AHDATABUF12 EQU 6BHDATABUF13 EQU 6CHDATABUF14 EQU 6DHDATABUF15 EQU 6EHDATABUF16 EQU 6FHFLASH EQU 70H ;TEMP0 EQU 71HTEMP1 EQU 72HTEMP2 EQU 73HTEMP3 EQU 74HTEMP4 EQU 75HSSET BIT P3.0; SET键AADD BIT P1.7; 加键SSUB BIT P1.6; 减键ORG 0000HAJMP MAINORG 0030HMAIN: CLR CSETB FG1MOV R0,#50HMOV R1,#58HMOV TEMP0,#0MOV TEMP2,#40MOV FLASH,#16MOV DATABUF1,#2MOV DATABUF2,#0MOV DATABUF3,#0MOV DATABUF4,#5MOV DATABUF5,#0BHMOV DATABUF6,#0MOV DATABUF7,#3MOV DATABUF8,#0BHMOV DATABUF9,#0MOV DATABUF10,#9MOV DATABUF11,#0BHMOV DATABUF12,#0MOV DATABUF13,#2MOV DATABUF14,#0BHMOV DATABUF15,#5MOV DATABUF16,#0 MAIN1: ACALL KEYINACALL GETDATAMOV A,FLASHCJNE A,#16,MAIN4AJMP MAIN3MAIN4: DJNZ TEMP2,MAIN2MOV TEMP2,#60CPL FG1MAIN2: JB FG1,MAIN3MOV A,FLASHADD A,#50HMOV R0,AMOV @R0,#0AHMOV R0,#50HMAIN3: ACALL DISPAJMP MAIN1GETDATA:MOV TEMP3,R0MOV TEMP4,R1MOV R0,#50H ;//显缓 MOV R1,#60H NEXT: MOV A,@R1MOV @R0,AINC R0INC R1CJNE R0,#60H,NEXTMOV R0,TEMP3MOV R1,TEMP4RETDISP: MOV A,@R0ACALL TABACALL SEGU9MOV A,@R1ACALL TAB1ACALL SEGU10INC R0INC R1ACALL SENDBITACALL DELAYCJNE R0,#58H,DISPMOV R0,#50HMOV R1,#58HRETKEYIN: JNB SSET,KEYIN1ACALL DELAY1JNB SSET,KEYIN1JB SSET,$INC FLASHMOV R7,FLASHCJNE R7,#17,KEYIN1MOV FLASH,#0HKEYIN1: MOV TEMP1,R0JNB SSUB,KEYIN2ACALL DELAY1JNB SSUB,KEYIN2JB SSUB,$MOV A,FLASHADD A,#60HMOV R0,ADEC @R0CJNE @R0,#0FFH,KEYIN2 MOV @R0,#0BHKEYIN2: JNB AADD,KEYIN3ACALL DELAY1JNB AADD,KEYIN3JB AADD,$MOV A,FLASHADD A,#60HMOV R0,AINC @R0CJNE @R0,#0CH,KEYIN3 MOV @R0,#0KEYIN3: MOV R0,TEMP1RETSENDBIT:MOV A,P1ANL A,#0F0HORL A,TEMP0INC TEMP0MOV P1,AMOV R2,TEMP0CJNE R2,#8H,SENDBIT1 MOV TEMP0,#0 SENDBIT1:RETSEGU9: CLR P1.4CLR P1.5MOV P2,ASETB P1.4MOV P1,#0AHRETSEGU10: CLR P1.4CLR P1.5MOV P2,ASETB P1.5MOV P1,#0AHRETTAB: ADD A,#1MOVC A,@A+PCRETDB 0C0H,0F9H,0A4HDB 0B0H,99H,92HDB 82H,0F8H,80HDB 90H,0FFH,0BFHTAB1: ADD A,#1MOVC A,@A+PCRETDB 03H,09FH,25HDB 0DH,99H,49HDB 41H,1FH,01HDB 09H,0FFH,0FDHDELAY1: MOV R7,#200TM2: MOV R6,#100TM1: DJNZ R6,TM1DJNZ R7,TM2RETDELAY: MOV R7,#4TMM2: MOV R6,#50TMM1: DJNZ R6,TM1DJNZ R7,TM2RETEND元件清单:C1:104C2:103C3:103C4:103C5:33pC6:33pC7:220u电解C8:103C9: 220u电解C10:103C11:4.7u电解D1--D8以及DP:LEDD9:1N4001Jmper:IDC-20Jpower:电源接插件Q1—Q9:9012R1—R16:75欧R17—R25:220欧R26—R30:1KRESET以及S1,S2,S3:轻触开关RP1—RP4:4XLED七段数码管RP5—RP6:10K排阻U1:89s52U2:74ls145U3:lm7805U9,U10:74ls573Y1:12M晶振。

单片机最小系统的电路设计

以下介绍单片机最小系统,单片机最小系统主要由电源、复位、振荡电路以及扩展部分组成。

对于一个完整的来讲,首要问题就是为整个系统提供电源供电模块,电源模块的稳定可靠是系统平稳运行的前提和基础。

1、电源在使用STC89C52RC单片机的时候,工作电压:5.5V-3.4V(5V单片机),这个地方就说明我们这个单片机正常的工作电压是个范围值,只要电源VCC在5.5V到3.4V之间都可以正常工作,电压超过5.5V是绝对不允许的,会烧坏单片机,电压如果低于3.4V,单片机不会损坏,但是也不能正常工作。

2、振荡电路单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,他结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。

晶振晶振通常分为无源晶振和有源晶振两种类型,无源晶振一般称之为crystal (晶体),而有源晶振则叫做oscillator(振荡器)。

有源晶振是一个完整的谐振振荡器,他是利用石英晶体的压电效应来起振,所以有源晶振需要供电,当我们把有源晶振电路做好后,不需要外接电路,它就可以主动产生振荡频率,并且可以提供高精度的频率基准,信号质量比无源信号好。

有源晶振通常有4个引脚,VCC,GND,晶振输出引脚和一个没有用到的悬空引脚。

无源晶振有2个或3个引脚,如果是3个引脚的话,中间引脚是晶振的外壳,使用时要接到GND,两侧的引脚就是晶体的2个引出脚了,这两个引脚作用是等同的,就像是电阻的2个引脚一样,没有正负之分。

对于无源晶振,就是用我们的单片机上的两个晶振引脚接上去即可,而有源晶振,只接到单片机的晶振的输入引脚上,输出引脚上不需要接,如图1和图2所示。

图1 无源晶振接法图2 有源晶振接法3、复位电路我们先来分析一下我们的复位电路,如图3所示。

图3 单片机复位电路当这个电路处于稳态时,电容起到隔离直流的作用,隔离了+5V,而左侧的复位按键是弹起状态,下边部分电路就没有电压差的产生,所以按键和电容C11以下部分的电位都是和GND相等的,也就是0V电压。

单片机最小系统实验报告

单片机最小系统实验报告
实验目的:
本实验目的是探究微处理器系统最小化原理并实际运用该原理设计一个基于单片机主控的最小系统,用来分析各部件之间的作用以及学习计算机系统的操作。

实验设备:
1.单片机主芯片:亚宝半导体C02晶振
2.外部电路元器件:2个8位数据输入输出口,4个4位数据的输入输出口,4个开关,10K水银温度计,7个键盘,1个指示灯。

实验步骤:
1. 设计单片机最小系统电路:根据实验指导书绘制单片机最小系统电路图,接线涉及到的所有元器件,并标注出每个元器件的引脚号。

2. 编写相关的程序:根据实验的要求,编写相关的CH02语言程序来完成IO口的输入输出功能。

3. 上传程序:将编写的程序用串口烧录到单片机内存中
4. 测试程序:检查所有的管脚,检查程序的正确性,根据程序要求使用按键输入信号,测试输出结果。

实验结果:
在实验过程中,我发现单片机最小系统电路设计较为简单,只需要有基本的电路和编程知识,即可完成本次实验。

经过多次修改和测试,我可以得出程序正确运行的结论。

经过本次实验,我深刻理解了计算机系统的结构,学会了io口的编程,还认识了有关电子元器件的基本用途和功能,研究了系统的最小化原理,以及其背后的道理。

更重要的是,本次实验提高了我的动手能力和分析问题的能力。

实验二、绘制《单片机最小系统》原理图

实验二、《单片机最小系统》原理图的设计一、实验目的:熟悉原理图设计步骤、电气法则测试的方法及网络表的形成。

二、实验内容:1、用原理图设计系统设计原理图2、用电气法则测试绘制好的原理图3、由原理图生成网络表三、实验仪器:PC机四、实验要求:将《单片机最小系统》原理图绘制在图纸尺寸为A号,方向水平,标题栏为标准型的图纸上,要求操作环境为捕捉栅格为10mil,可视栅格为10mil,电气栅格为8mil。

原理图绘制好后,用电气法则进行测试并生成网络表。

五、实验步骤:1、启动原理图编辑器(1)、双击Protel99SE图标,启动Protel99SE(2)、创建一个新的设计文件。

执行菜单命令:[File]/[New…](3)、启动原理图编辑器,进入原理图设计环境。

2、设置原理图设计环境执行菜单命令[Design]/[Options],按实验要求进行设置。

3、装入所需要的元件库点击原理图管理器窗口中的[Add]/[Remove…]按钮装入所需的Miscellaneous Devices. ddb 、Microprocessor. Ddb、Inter Databooks. Ddb、Protel DOS Schematic. ddb元件库。

4、放置元件用原理图管理器窗口中的[Place]按钮放置元件并设置它们的属性。

5、编辑与调整6、原理图布线利用画图工具箱对原理图进行布线。

7、文件的存盘执行下拉菜单命令[File]/[Save]进行存盘。

8、进行电气法则测试执行菜单命令[Tools]/[ERC…]进行电气法则测试。

9、生成网张表执行菜单命令[Design]/[Create Netlist…]生成网络表。

六、实验原理图及信息表:C R Y 118.723M H zS 1.....元件信息列表如下:Part Type Designator Footprint Description1K R2 AXIAL0.418.723MHz CRY1 XTAL1 Crystal22uF C3 RAD0.3 Capacitor27C256 U3 DIP-2860pF C1 RAD0.2 Capacitor60pF C2 RAD0.2 Capacitor74LS373 U2 DIP-20200 R1 AXIAL0.4DS80C320 U1 DIP-40 HIGH SPEED/LOW POWER MICRO SW-PB S1 RAD0.4。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档