单片机应用系统设计实例

合集下载

单片机应用系统设计实例

单片机应用系统设计实例
5.2软件设计
初始化:
uchar code a[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //段码组合,共阴极
uchar m=0; //计数循环变量
uint n=0; //计数值
3
2
1
void timer0(void) interrupt 1 { TH0=0x3C; TL0=0xB0; m++; if(m==19) {m=0; n++; P1_0=~P1_0; } }
05
中断初始化
06
延时功能
07
中断服务程序设计
3.2软件设计
中断服务程序设计
中断初始化
触发方式设置
中断允许控制
中断初始化
IT0=1;
EA=1;
EX0=1;
中断服务程序
函数名()interrupt n [using m ]
{ }
Void int0(void) interrupt 0
/* 外部中断0的服务函数定义,使用第二组工作寄存器组*/
}
如何设计硬件和软件?
用1个LED发光二极管,设计一个循环闪烁的指示灯。
注意:在接下来的仿真中,省略时钟及复位电路。
1.2软件设计
01
初始化
02
51头文件、宏定义
03
主程序,即main()程序
04
灯的亮灭控制
05
延时功能
06
延时子程序设计
void main(void) { while(1) { P1_0=0; delay(5000); P1_0=1; delay(5000); } }

单片机应用设计实例

单片机应用设计实例

数控调频发射台的设计题目:基于单片机的数控调频发射台功能:本数控调频发射器可在80.0 MHZ 至109.9MHZ 范围内任意设置发射频率,可预置11 个频道,发射频率调整最小值为0.1MHZ,具有单声道/立体声控制,可广泛应用于学校无线广播、电视现场导播、汽车航行、无线演说等场所。

设计过程:一、系统硬件电路的设计(1)单片机控制部分单片机采用AT89C52,采用最小化应用系统设计,P0 口和P2 口作为共阳LED 数码管驱动用,P1 口作为16 键的键盘接口,其中T0—T3 分别为百位、十位、个位、小数位的频率操作键。

百位数只能是0 或1,当百位数为0 时,十位数为8 或9。

当百位数为1 时,十位数只能为0。

个位及小数位为09之中任意数。

T4—T14 为发射频率预置键, T15 为单声道/立体声控制键。

P3.0、P3.1、P3.2 作为与BH1415 的通讯端口,用于传送发射频率控制数据,P3.3 用于立体声发射批示。

采用12MHZ 晶振,模拟串口通讯。

单片机控制部分电路如下图一。

(2)调频调制发射部分采用Rohm 公司最新生产的调频发射专用集成电路BH1415F,内含立体声信号调制、调频广播信号发射电路,BH1415F 内有前置补偿电路、限制器电路、低通滤波电路等,因此具有良好的音色,内置PLL 系统调频发射电路,传输频率非常稳定。

调频发射频率可用单片机通过串行口直接控制。

BH1415F 各引脚的功能如表1,应用电路如图2。

从11 脚输出的调频调制信号经高频放大后由天线发射输出,后级高频放大器的功率可根据接收的距离范围考虑。

BH1415F 的频率控制码为16 位,其传送格式要求如图5,其中D0—D10 为频率控制数据,其值乘0.1 即为BH1415F 的输出频率(单位MHZ)。

D11—D15 为控制位,其中D11(MONO)位为单声道/立体声控制位,0 时为单声道发射模式,1时为立体声发射模式。

第6章 单片机应用系统设计实例

第6章  单片机应用系统设计实例

定时器中断子 程序流程图
主要程序举例 正弦波离散输出表:
uchar code sine_tab[256]={ //输出电压从0到最大值(正弦波1/4部分) 0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c, 0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc, 0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0x d8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec, 0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0 xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, //输出电压从最大值到0(正弦波1/4部分) 0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0 xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,
第六章 单片机应用系统设计实例
6.1 6.2 6.3 6.4 6.5 8051系列单片机实现计算器功能 简易波形发生器 简易广告屏设计 寻迹小车的设计 无线呼叫系统设计
6.1 8051单片机实现计算器功能
一 设计目标和实现方法
满足计算器要求,进行加减乘除运算; 打开计数器时,初始显示数字为0123; 实现简单的数据运算,不支持连续运算; 仿真和调试要用到Protues 和Keil 软件。
四 软件设计
模块化程序设计是单片机应用中最常用的 程序设计方法; 模块化程序设计的中心思想是把一个复杂 应用程序按整体功能划分成若干相对独立 的程序模块,各模块可以单独 设计,编程和 调试,然后组合起来; 本系统的程序模块主要分为主程序,键值 获取程序和处理子程序等,其流程图分别 如下图所示:

35个单片机设计应用实例

35个单片机设计应用实例

图 4.2.2
void main(void) { while(1) { if(K1==0) { L1=0; //灯亮 } else { L1=1; //灯灭 } } }
3. 多路开关状态指示
1. 实验任务
如图 4.3.1 所示,AT89S51 单片机的 P1.0-P1.3 接四个发光二极管 L1-L4, P1.4-P1.7 接了四个开关 K1-K4,编程将开关的状态反映到发光二极管上。 (开关闭合,对应的灯亮,开关断开,对应的灯灭)。
因此在按键按下的时候图482要把我们手上的干扰信号以及按键的机械接触等干扰信号给滤除掉一般情况下我们可以采用电容来滤除掉这些干扰信号但实际上会增加硬件成本及硬件电路的体积这是我们不希望总得有个办法解决这个问题因此我们可以采用软件滤波的方法去除这些干扰信号一般情况下一个按键按下的时候总是在按下的时刻存在着一定的干扰信号按下之后就基本上进入了稳定的状态
(2. 输出控制
根据开关的状态,由发光二极管 L1-L4 来指示,我们可以用 SETB P1.X 和 CLR P1.X 指令来完成,也可以采用 MOV P1,#1111XXXXB 方法一次指示。
5. 程序框图
<![endif]-->
读 P1 口数据到 ACC 中
ACC 内容右移 4 次 ACC 内容与 F0H 相或 ACC 内容送入 P1 口
void main(void) { while(1) { L1=0; delay02s();
L1=1; delay02s(); } }
2. 模拟开关灯 1. 实验任务
如图 4.2.1 所示,监视开关 K1(接在 P3.0 端口上),用发光二极管 L1(接 在单片机 P1.0 端口上)显示开关状态,如果开关合上,L1 亮,开关打开, L1 熄灭。 2. 电路原理图

单元7 单片机应用系统设计举例

单元7 单片机应用系统设计举例

单元七单片机应用系统设计举例7.1 潜水泵自动控制保护器 (1)7.2 可调速加热炉控制器 (4)7.1 潜水泵自动控制保护器〖任务描述〗:潜水泵自动控制保护器具有两大功能,第一是保护功能:能在泵体缺水时实施自动保护,并能根据预设时间自动恢复工作。

第二是自动控制功能:能根据水塔水位,自动启停水泵。

7.1.1总体设计1.需求分析(1)需求获取本项目最早由一家专门生产潜水泵的厂家提出,该厂家在生产和销售过程中,不断接到用户反馈潜水泵烧坏,主要原因是在抽水过程中,由于水源来水不足,潜水泵干抽烧坏,所以提出开发一种保护装置,就有了最初的潜水泵自动控制保护器项目的需求,再根据实际中,许多情况是给水塔抽水,这样就要知道水塔缺水和水满情况,还有在广大农村有时要计时抽水,这样就确定最后方案。

(2)设计开发任务书本项目是一个很小的项目,开发人员为:项目负责人一名、一名软件工程师、一名硬件工程师、一名技术员。

项目负责人负责协调各人员工作和检查进度,软件工程师负责程序设计,硬件工程师负责硬件原理图及PCB板设计,技术人员负责原器件购买、测试和组装工作。

2.方案设计采用89C2051单片机控制、二个键(K1、K2)用来起动水泵前的参数设置,水位器:(三个)水池上水位器、水池下水位器、潜水泵水位器,用来检测水位保证水泵正常工作,该保护器有两种工作模式,一种是自动控制模式,主要用在对水塔抽水,另一种是定时工作模式主要应用在计时抽水。

3.测试计划硬件测试:主要测试各部分硬件是否能正常工作,每部分通过简单程序来检测。

软件测试:测试软件是否符合设计要求、是否存在BUG。

7.1.2详细设计1.硬件设计:(1)主要原器件:89C2051 一片、78L05一个、LED 3个、按键二个、水位检测器三个、MOC3020一个、变压器一个、及电阻、电容、三极管、灯等若干。

(2)原理图:SHAPE \* MERGEFORMAT LED 工作原理及动态显示:本项目采用的是共阳极的3个LED 数码管,要点亮某个数码管的某笔划,则相应的数码管阳极加+5V 电源,相应笔划的阴极端接低电平,本方案三个数码管阴极是相连的,所以在阳极必须轮流有效,只要时间合理,在人的视觉就会看到同时亮的结果。

51单片机技术与应用系统开发案例精选

51单片机技术与应用系统开发案例精选

51单片机技术与应用系统开发案例精选随着科技的不断进步和发展,单片机技术已经在各个领域得到了广泛的应用。

单片机技术作为嵌入式系统的核心,具有体积小、功耗低、成本低等特点,因此在自动化控制、电子产品、通信设备等领域都有着重要的应用价值。

本文将从多个案例出发,介绍一些51单片机技术的应用系统开发案例,以期帮助读者更好地了解单片机技术的应用和发展。

1. 智能家居系统智能家居系统是当今物联网技术中的热门应用之一,而单片机技术在智能家居系统中扮演着重要的角色。

通过使用51单片机,可以实现家庭灯光、空调、窗帘等设备的远程控制,从而提高家居的智能化水平。

通过单片机技术,还可以实现家庭安防系统的监控和报警功能,保障家庭成员的安全。

2. 工业控制系统在工业领域,单片机技术也有着广泛的应用。

在自动化生产线上,通过单片机可以实现对设备运行状态的实时监测和控制,提高生产效率和产品质量。

单片机技术还可以应用于温度、湿度、压力等参数的采集和控制,为工业生产提供可靠的技术支持。

3. 智能交通系统随着城市交通的不断发展以及车辆数量的持续增加,智能交通系统的需求也日益凸显。

通过单片机技术,可以实现智能交通信号灯的控制、车辆导航系统的优化等功能,提高交通系统的智能化水平,减少交通拥堵和交通事故的发生。

4. 医疗器械在医疗器械领域,单片机技术应用也十分广泛。

通过单片机可以实现医疗设备的精准控制和监测,比如体温计、血压计、心电图仪等设备,都可以通过单片机实现对生理参数的准确测量和分析,为临床诊断提供可靠的数据支持。

5. 智能手环智能手环作为一种智能可穿戴设备,通过内置的传感器和单片机芯片,可以实现对用户的健康数据进行实时监测和分析,比如步数、心率、睡眠质量等。

通过单片机技术,可以实现智能手环与手机的蓝牙通信,将用户的健康数据同步到手机App上,为用户提供科学的健康管理方案。

通过以上案例的介绍,我们可以看出,51单片机技术在各个领域都有着重要的应用价值,为各行业的发展提供了强大的技术支持。

单片机应用系统课程设计实例

单片机应用系统课程设计实例

数字钟设计实例利用AT89C51的定时器和6位7段数码管,设计一个电子时钟,显示格式“XX XX XX”,从左向右分别是:时、分、秒1、硬件设计2、软件设计说明:定时器每1000us中断一次,在中断服务程序中,对中断次数计数,100us计数10000次就是1s,然后再对秒计数得到分和小时,并送入显示缓存。

LEDBUF EQU 30H ;显示码缓存区HOUR EQU 40HMINUTE EQU 41HSECOND EQU 42HC100us EQU 43HTICK EQU 10000 ;置中断次数T100us EQU 256-100 ;置定时器初始值LJMP START ;跳转至主程序ORG 000BH ;定时器0中断入口T0INT: PUSH PSW ;状态保护PUSH ACCMOV A,C100us+1JNZ GOON ;计数值是否为0DEC C100usGOON: DEC C100us+1MOV A,C100usORL A,C100us+1JNZ EXITMOV C100us,#HIGH(TICK) ;重置计数值MOV C100us+1,#LOW(TICK)INC SECOND ;秒值加一MOV A,SECONDCJNE A,#60,EXIT ;判断秒值是否为60MOV SECOND,#0 ;秒值为60,则清0INC MINUTE ;分值加一MOV A,MINUTECJNE A,#60,EXIT ;判断分值是否为60MOV MINUTE,#0 ;分值为60,则清0INC HOUR ;小时值加一MOV A,HOURCJNE A,#24,EXIT ;判断小时值是否为24MOV HOUR,#0 ;小时值为24,则清0 EXIT: POP ACCPOP PSWRETIDELAY: ;延时子程序MOV R7,#0FFHDELAYLOOP:DJNZ R7,DELAYLOOPDJNZ R6,DELAYLOOPRETLEDMAP: DB 3FH,06H,5BH,4FH ;八段数码管显示码DB 66H,6DH,7DH,07HDB 7FH,6FH,77H,7CHDB 39H,5EH,79H,71HDISPLAYLED:MOV R0,#LEDBUFMOV R1,#6 ;共6个八段管MOV R2,#B ;位扫描码初值LOOP: MOV A,#0MOV P0,A ;关所有八段管MOV A,@R0MOV P0,AMOV A,R2MOV P3,A ;显示一位八段管MOV R6,#01HCALL DELAYMOV A,R2 ;显示下一位RR AMOV R2,AINC R0DJNZ R1,LOOPRETT0LED: MOV DPTR,#LEDMAP ;将字段码转换显示码MOVC A,@A+DPTRRETSTART: MOV TMOD,#02H ;定时器工作方式2 MOV TH0,#T100us ;置定时器初始值MOV TL0,#T100usMOV IE,#B ;EA=1,IT0=1MOV HOUR,#0 ;显示初始值MOV MINUTE,#0MOV SECOND,#0MOV C100us,#HIGH(TICK)MOV C100us+1,#LOW(TICK)SETB TR0 ;启动定时器0MLOOP: MOV A,HOUR ;显示小时值十位MOV B,#10DIV ABCALL T0LEDMOV LEDBUF,A ;将十位值送显示码缓存区MOV A,B ;显示小时值个位CALL T0LEDORL A,#80H ;显示小数点MOV LEDBUF+1,A ;送显示码缓存区MOV A,MINUTE ;显示分钟值十位MOV B,#10DIV ABCALL T0LEDMOV LEDBUF+2,A ;将十位值送显示码缓存区MOV A,B ;显示分钟个位值CALL T0LEDORL A,#80H ;显示小数点MOV LEDBUF+3,A ;送显示码缓存区MOV A,SECONDMOV B,#10 ;显示秒十位值DIV ABCALL T0LEDMOV LEDBUF+4,A ;送显示码缓存区MOV A,BCALL T0LEDMOV LEDBUF+5,ACALL DISPLAYLED ;调用显示子程序LJMP MLOOPEND。

单片机应用系统的设计实例

单片机应用系统的设计实例

9.1.3 控制程序:功能模块设计
程序共使用三个定时器。其中,T0和T1配合产生一路PWM波,T0决 定PWM波的频率,设计值为20KHz,T1决定PWM波的占空比;T2用于 产生定时中断,并决定控制周期,设计值为1ms。已知单片机外部晶振频 率为16MHz,根据第4章介绍的定时器配置方法可得:T0工作在8位自动 重装方式,定时周期寄存器初值为0C0H,对应的定时周期为48s,因此 实际产生的PWM波频率为20.833KHz;T1也工作在8位自动重装方式, 其定时周期寄存器值在每个控制周期被更新为控制输出量,初始值为0FFH; T2工作在16位自动重装方式,定时周期寄存器初值为0FACBH,对应定时 周期为999.75s,因此实际采样频率约为1KHz。
断负压的设计可以使得功率管可靠地截止。此外,栅极驱动电阻取为20Ω。
9.1.2 电路设计:驱动与吸收保护电路
(1) 续流和吸收保护电路 电磁铁是感性元件,为此应使用快恢型二极管D1为电感L提供续流回路,
以防止MOSFET关断时漏极电位急剧上升而损坏功率管。图中,R、C、D 组成的吸收网络能够吸收MOSFET在开关时刻的电压和电流尖峰。其中, C用于限制MOSFET的漏极-源极间电压突变,R用于限制MOSFET开通时 C的放电电流,D则便于在MOSFET关断时,C能迅速吸收MOSFET上的关 断尖峰。
9.1.3 控制程序:总体设计
系统上电 上电初始化 启动定时器
读 P1口 数 据
根 据 P1口 数 据 查 表 , 得 到 Kp,Kv,Ka Ki四 个 增 益 参 数
N
停机?
Y
结束
主程序流程
中断服务程序入口 保护现场
清 除 中 断 标 志 TF2 读 取 AD转 换 的 结 果
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

;
} while(t--);
}
2、用8个LED发光二极管,设计一 个循环闪烁的流水灯。
A
7
2.1硬件设计
A
8
2.2软件设计
1)初始化
51头文件、宏定义
2)主程序,即main()程序
灯的循环闪亮控制
3)延时功能
延时子程序设计
A
9
如何进行灯的循环闪亮控制? intrins.h 内部函数库
2)主程序,即main()程序
灯的循环闪亮控制
中断初始化
3)延时功能
4)中断服务程序设计
A
20
3.2软件设计
中断初始化
触发方式设置 中断允许控制
中断服务程序设计
A
21
中断初始化 IT0=1; EA=1; EX0=1;
A
22
中断服务程序
函数名()interrupt n [using m ] { }
定时500ms,需要中断10次。
A
28
3)编写初始化程序
TMOD=0X01; TH0=0X3C; TL0=0XB0; EA=1; ET0=1; TR0=1;
A
29
4)编写中断服务程序
Void timer0(void) interrupt 1
A
15
2)日常中断的例子
你正在专心看书, 突然电话铃响,于是 你记下正在看的书的 页数,去接电话,接 完电话后再回来接着 看书。
A
16
3)计算机中的中断概念
▪中断是指由于某种随机事件(甲方)
的发生,计算机(乙方)暂停现行程 序的运行,转去执行另一程序,以处 理发生的事件,处理完毕后又自动返 回原来的程序继续运行。
A
18
IE EA — ET2 ES ET1 EX1 ET0 EX0
EX0/EX1位: 分别是INT0/INT1的中断允许控制位: =0 时禁止中断; =1 时允许中断。
EA:总的中断允许控制位(总开关): =0 时禁止全部中断;=1 时允许中断。
A
19
3.2软件设计
1)初始化
51头文件、宏定义
▪将能引起中断的事件称为中断源。
▪CPU现行运行的程序称为主程序。
▪处理随机事件的程序称为中断服务 子程序。
A
17
4)相关的特殊功能寄存器
TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
IE0/IE1:外部中断申请标志位: =0:没有外部中断申请; =1:有外部中断申请。
IT0/IT1:外部中断请求的触发方式选择位: =0:在INT0/INT1端申请中断的信号低电平有效; =1:在INT0/INT1端申请中断的信号负跳变有效.
(包含变量循环移位、位操作等函数) 需要将该函数包含进来,同时对函数
原型进行声明。
A
10
#include <INTRINS.H> uchar _crol_(uchar a,uchar n);
/*函数原型,左循环*/
uchar _cror_(uchar a,uchar n);
/*函数原型,右循环*/
A
26
1)设置定时器工作方式
TMOD GATE C/T M1 M0 GATE C/T M1 M0
0 00 0 0 001
A
27
2)计算初始值
晶振12Mhz
1个机器周期:Tp=12 1 1s
12106
定时50ms,需要计数: 50103 50000
1
定时器初始值:
6 5 5 3 6 5 0 0 0 0 1 5 5 3 6 0 x 3 C B 0
A
11
#include <INTRINS.H> uchar _crol_(uchar a,uchar n); uchar _cror_(uchar a,uchar n);
/*函数原型*/ /*函数原型,右循环*/
void main(void) {
uint a = 0xfe; while(1) {
P1=a; delay(5000); a=_crol_(a,1); } }
公选课
——《单片机基础及应用》
A
1
设计实例
1、用1个LED发光二极管,设计一个循环闪烁的指示 灯。
2、用8个LED发光二极管,设计一个循环闪烁的流水 灯。
3、通过设置中断,改变灯的循环方向,控制灯的亮灭。 4、通过定时,精确控制P1.0闪烁500ms。 5、以秒为单位,用LED数码管显示当前计数值。
P1=0x0;
delay(5000);
P1=0x0ff;
delay(5000);
do
{
P1=a;
delay(5000);
a=_cror_(a,1);
}while(i--);
}
4、通过定时,精确控制闪烁 500ms。
针对任务一进行操作。
A
25
使用定时器T0 1)设置定时器工作方式 2)计算初始值 3)编写初始化程序 4)编写中断服务程序
Байду номын сангаас
3、通过设置中断,改变灯的循环方 向,控制灯的亮灭。
A
13
3.1硬件设计
A
14
1)中断的概念
中断技术是计算机中一项很重要的 技术。
中断系统的功能是为了解决快速 CPU和慢速外设间的矛盾,它由软 件和硬件组成。
有了中断系统,能使计算机的功能 更强、效率更高、使用更灵活。
51单片机系统有5个中断源。
void delay(uint t); //声明函数
void main(void)
{
while(1)
{
P1_0=0;
delay(5000);
P1_0=1;
delay(5000);
}
}
void delay(uint t) //延时0.1*t毫秒
{
uint i;
do
{
for(i=0;i<10;i++)
A
2
1、用1个LED发光二极管,设计一 个循环闪烁的指示灯。
如何设计硬件和软件?
A
3
1.1硬件设计
注意:在接下来的仿真中,省略时钟及复位电路。
A
4
1.2软件设计
1)初始化
51头文件、宏定义
2)主程序,即main()程序
灯的亮灭控制
3)延时功能
延时子程序设计
A
5
#include <at89X52.h> #define uint unsigned int #define uchar unsigned char
Void int0(void) interrupt 0 /* 外部中断0的服务函数定义,使用第二组工
作寄存器组*/
A
23
void int0(void) interrupt 0
{
uchar a=0xfe,i=16;
P1=0x0;
delay(5000);
P1=0x0ff;
delay(5000);
相关文档
最新文档