【可直接使用】16位单片机大作业.doc

合集下载

实现信息家电连接internet的16位单片机.

实现信息家电连接internet的16位单片机.

实现信息家电连接internet的16位单片机从目前的情况看,大部分接入方式仍以PC作为网关来连接,然而这种情况一般用于大型工业集散控制系统,如果用于一般的信息家电接入而额外增加一台,必然会给产品带来高昂的成本,从产品的经济实用方面来看并不切实可行。

用嵌入式设备将信息家电接入的方式则很好地解决了这一问题。

随着网络时代的到来,internet已成为重要的基础信息设施,这方面的技术进步对于社会的各个方面产生了积极影响,很多领域都在不断探索开发和利用网络资源。

所谓嵌入式设备一般是由嵌入式微处理器、外围设备、特定的网络协议以及应用程序等各部分组成,用于实现对信息家电的远程控制、监视和管理功能,它代替了传统的PC机或网关设备,在数据量不大的情况下能够符合要求,具有可靠灵活、成本低等优点。

方案的提出从信息家电远程在线访问的角度考虑,对信息家电监测和控制时存在两种情况:(1)远程访问时,信息家电的通信数据量不大,56Kbps的通信速率即可满足要求;(2)信息家电对实时性的要求不高,其时延可以在1秒以上。

基于以上两个条件在选择嵌入式设备时,选择了单片机SPCE061A作为信息家电接入internet的微处理器,同时采用RTL8019AS作为以太帧的驱动芯片,负责以太帧的接收和发送。

最后,通过RJ45接口发送状态信息到internet和接收来自internet的控制数据.此外,要实现信息家电接入internet还需要深入了解TCP/IP协议和网卡驱动程序。

RTL8019AS以太网控制器简介由台湾Realtek公司生产的RTL8019AS以太网控制器,由于其优良的性能、低廉的价格,使其在市场上10Mbps网卡中占有相当的比例。

2.1主要性能(1)符合EthernetII与IEEE802.3(10Base5、10Base2、10BaseT)标准;(2)全双工,收发可同时达到10Mbps的速率;(3)内置16KB的SRAM,用于收发缓冲,降低对主处理器的速度要求;(4)支持8/16位数据总线,8个中断申请线以及16个I/0基地址选择;(5)支持UTP、AUI、BNC自动检测,还支持对10BaseT拓扑结构的自动极性修正;(6)允许4个诊断LED引脚可编程输出;(7)100脚的TQFP封装,缩小了PCB尺寸。

16位单片机实验程序讲解

16位单片机实验程序讲解

16位单片机实验程序讲解1、用C实现发光二极管单向循环点亮//=============================================================== //// The information contained herein is the exclusive property of// Sunplus Technology Co. And shall not be distributed, reproduced,// or disclosed in whole in part without prior written permission.//// (C) COPYRIGHT 2001 SUNPLUS TECHNOLOGY CO.// ALL RIGHTS RESERVED//// The entire notice above must be reproduced on all authorized copies.////==============================================================// 工程名称:led1_C.scs// 功能描述: 用C实现发光二极管单向循环点亮// 文件来源:《61板实验教程》"实验一发光二极管单向循环点亮“// 硬件连接:IOA低8位接至SEG接口控制LED的导通// IOB6连至DIG7通过ULN2003A控制8个LED的共阴极电平状态。

// IDE环境:SUNPLUS u'nSPTM IDE 1.8.0//// 涉及的库:// 组成文件:// main.c//// 日期: 2004/8/16//===============================================================#define P_IOA_Data (volatile unsigned int *)0x7000#define P_IOA_Buffer (volatile unsigned int *)0x7001#define P_IOA_Dir (volatile unsigned int *)0x7002#define P_IOA_Attrib (volatile unsigned int *)0x7003#define P_IOB_Data (volatile unsigned int *)0x7005#define P_IOB_Buffer (volatile unsigned int *)0x7006#define P_IOB_Dir (volatile unsigned int *)0x7007#define P_IOB_Attrib (volatile unsigned int *)0x7008#define P_Watchdog_Clear (volatile unsigned int *)0x7012//=============================================================// 函数名称: Delay()// 日期:20040816// 功能描述: 实现延时// 语法格式: void Delay(void);//入口参数: 无// 出口参数: 无// 注意事项: 仅为用户模型//=============================================================void Delay(){ //延时子程序unsigned int i;for(i=0; i<32768; i++){*P_Watchdog_Clear=0x0001; //清WatchDog}}//=============================================================// 函数名称: int main()// 日期:20040816// 功能描述: 发光二极管单向循环点亮// 语法格式: void main(void);// 入口参数: 无// 出口参数: 无// 注意事项: 仅为用户模型//=============================================================int main(){int LedControl = 0x0001;*P_IOA_Dir = 0x00ff; //设置A口低8位为同向低输出*P_IOA_Attrib = 0x00ff;*P_IOA_Data = 0x0000;*P_IOB_Dir=0x0040; //设置B6口为高电平输出,保证LED共阴极接地*P_IOB_Attrib=0x0040;*P_IOB_Data=0x0040;while(1){*P_IOA_Data = LedControl; //送数据到A口LedControl = LedControl << 1;if(LedControl > 0x00FF)LedControl = 0x0001;Delay();}}//=============================================================// main.c 结束//=============================================================2、用C实现发光二极管双向循环点亮//=============================================================== //// The information contained herein is the exclusive property of// Sunplus Technology Co. And shall not be distributed, reproduced,// or disclosed in whole in part without prior written permission.//// (C) COPYRIGHT 2001 SUNPLUS TECHNOLOGY CO.// ALL RIGHTS RESERVED//// The entire notice above must be reproduced on all authorized copies.////==============================================================// 工程名称:led2_C.scs// 功能描述: 用C实现发光二极管双向循环点亮// 文件来源:《61板实验教程》"实验二发光二极管双向循环点亮“// 硬件连接:IOA低8位接至SEG接口控制LED的导通// IOB6连至DIG7通过ULN2003A控制8个LED的共阴极电平状态。

洗衣机控制器 16位单片机大作业报告1

洗衣机控制器 16位单片机大作业报告1

学院大作业报告课程名称:嵌入式系统设计与实践项目名称:《洗衣机控制器》班级:姓名:学号:成绩:________ 实验时间:2011.12.16一、设计目的运用C 语言,HCS12 16位单片机的知识,根据题目的要求进行软硬件的设计和调试,从而加深对于本课程知识点的理解,掌握了如何使用CodeWarrior 来整合各种驱动模块,再通过算法实现硬件上的运行。

二、功能描述最终运行的功能为:1、DG128开启,上电,LCD 提示显示输入。

2、键入所选定时量程,LCD 开始计时,此时,洗衣机启动。

3、定时结束,LCD 提示计数完毕,洗衣机工作完毕。

此时,手动关闭电源即可。

通过对于CodeWarrior 软件的操作,编写代码,最终实现freescaleHCS12DG128单片机简单控制家用洗衣机的开启——计数——关闭功能。

三、硬件连接图7-1 MCU 与LCD 的连接PTA0 PTA1 PTA2 PTA3 PTA4 PTA5 PTA6 PTA7PTA 口(KEY1-8)Vcc四、设计方案定时档位:在洗衣机启动的时候,LCD上电,显示提示输入,键入不同的键,所对应的模式不同,共分为20分钟、25分钟、、、65分钟10个定时档。

每个键所定义的模式为:键定义值0键位20分钟,键定义值每加1,相应计数值在20的基础上加5分钟。

主要驱动模块键盘驱动源文件:KBI_I.c.计数驱动模块:Timer.cLCD显示驱动模块:LCD.c五、程序设计代码//头文件包含#include "Includes.h" //总头文件#include <string.h>//在此添加全局变量定义uint8 time[3];extern uint8 KB_valueN,KB_DefValue;void main(){//0.1 主函数中的变量定义uint16 remember,cnt;uint8 state=0;uint32 mRuncount=0; //运行计数器uint8 receive_data[33]="Time: ";//uint8 d;////0.2 关总中断DisableInterrupt(); //禁止总中断//0.3 芯片初始化MCUInit();//0.4 模块初始化TimerInit(); //定时器1初始化LCDInit(); //LCD初始化KBInit(); //键盘初始化Light_Init(Light_Run_PORT,Light_Run,Light_OFF); //RUN指示灯初始化为暗//0.5 开放中断//EnableTimer; //开放定时器1溢出中断EnableKBint(); //开放键盘中断EnableInterrupt(); //开放总中断time[0] = 0; //(1) "时分秒"缓存初始化(00:00:00)time[1] = 0;time[2] = 0;remember = time[2]; //(2) 临时变量remember初始化KB_valueN = 0xff;LCDShow((uint8 *)"Input: "); //LCD提示输入// 主循环for(;;){//LCD显示计数器值if (KB_valueN != 0xff){if((KB_valueN==0xee)||(KB_valueN==0xde)||(KB_valueN==0xbe)||(KB_valueN==0x7e)||(KB_valueN==0xed)||(KB_valueN==0xdd)||(KB_valueN==0xbd)||(KB_valueN==0x7d)||(KB_valueN==0xeb)||(KB_valueN==0xdb)){if(state==0){cnt = (((KBDef(KB_valueN)-0x30)+20)*60);state=1;}if(state==1){if(remember!=time[2]);{for(;;){strcpy((char*)receive_data,"Time: ");//双引号中存在除“Time:”五个字符外的27个字符remember = time[2];cnt--;if(cnt>0){receive_data[8] =(cnt/1000)+0x30;receive_data[9] =((cnt%1000)/100)+0x30;receive_data[10]=((((cnt%1000)%100)/10)+0x30);receive_data[11]=((((cnt%1000)%100)%10)+0x30);LCDShow((uint8 *)receive_data);}elseLCDShow((uint8 *)"Task is Finished ");}}}}if((KB_valueN==0xbb)||(KB_valueN==0x7b)||(KB_valueN==0xe7)||(KB_valueN==0xd7)||(KB_valueN==0xb7)||(KB_valueN==0x77 )) LCDShow((uint8 *)"Time: ");}} //for_end(主循环结束)}//main_end中断程序isr.c中要添加中断程序,如定时器溢出中断处理程序,键盘中断程序。

单片机大作业

单片机大作业

长安大学单片机公选课大作业基于STC89C52RC的电子钟设计专业:学号学生姓名:单片机基础大作业-------电子钟的设计学院:学号:姓名:一.设计要求概述:(1)利用实验板资源制作简易电子时钟,由6个七段数码管显示时间XX : XX: XX,即分别显示小时十位、小时个位、分十位、分个位、秒十位、秒个位(2)设置3个功能按键:调整键(SET)、加1键(AD)和减1键(DC),实现时间可调。

上电后,显示时间00 : 00: 00,并开始走时。

按下1次(SET)时,秒个位走时停止,秒十位闪亮,此时按下(AD),该位数值加1,若按下(DC),则该位数值减1;继续按下(SET)时,分个位、分十位、小时个位、小时十位依次闪亮,并可按上述方法进行时间调整。

(SET)按下第6次时,时间调整结束,时钟在调整后的时间上重新开始走时(3)计时以24小时制进行,最大计时及设置时间为23 : 59: 59。

要求用T0用于1秒时间计时,T1用于指示时间调整时相应位的闪亮,在时间调整时,每过0.4s,将对应单元的显示数据换成“熄灭符”数据(LED段码为0x00),使对应调整单元的显示数据间隔闪亮。

二.设计方案分析:(1)硬件方面:本实验采用单片机实验板型号为“长安大学电控学院ECMT-1”型,单片机型号STC 89C52 RC。

LED数码管采用动态扫描法驱动,其中P0-P7输出段码数据控制八位数码管,P1口作列扫描输出。

键盘为4X4矩阵键盘,P2.0-P2.3是键盘行扫描,P2.4-P2.7是键盘列扫描。

电源,通信等模块由开发板提供。

程序部分有三块:键盘扫描,LED显示,定时器及中断(2)3个功能键实现时间可调----注意:A.上电后,显示时间00:00:00,并开始走时。

B. 按下一次(SET)时,秒个位走时停止,秒十位闪亮。

继续按下(SET)时,分个位,分十位,小时个位,小时十位依次闪亮。

按下第六次时,时间调整结束。

单片机大作业试题及答案

单片机大作业试题及答案

单片机试题带答案版1、填空(每空2 分,共40 分)1、MCS-8051系列单片机字长是8 位,有40 根引脚,96系列字长是16 位。

单片机的特2、单片机的存储器的最大特点是指令存储器与数据存储器分开编址,Px并行口的地址是与数据存储器统一编址的,或者说属于该存储器。

3、8051最多可以有4 个并行输入输出口,最少也可以有1个并行口,即P1 。

P3常需复用作串行通信、外部中断、外部计数脉冲和读写控制信号。

4、ALE信号的作用是低8位地址锁存。

5、8051复位后,PC= 0 H。

若希望从片内存储器开始执行,EA脚应接高电平,PC值超过0FFF H时,8051会自动转向片外存储器继续取指令执行。

6、8051的C/T是加(加或减)计数的。

7、8051的中断向量表在3 H、0B H和13H、1BH、23H。

8、MOV A,40H 指令对于源超作数的寻址方式是直接寻址。

9、指令JB 0A7H,ABC的作用是若P2口的第7位为1则跳转到ABC 。

(0A7H是P2.7的地址)2、已知A = 0F8H,当执行ADD A,#0A9H指令后,PSW中的OV、CY、AC、P各为多少?若是有符号数,A中的结果用十进制表示是多少?(共5 分)[解答] OV:0、CY:1、AC:1、P:1 A:-953、在两个8051间用模式2进行串行通信,A机并行采集外部开关的输入,然后串行传输给B机;B机接收后并行输出控制LED发光。

画出连接示意图,写出完整的程序。

(共15 分)4、将8051外部扩展2K EPROM,同时扩展16K RAM作数据存储器,采用的2716是2K 的EPROM芯片,6264是8K的RAM芯片,74LS373是8位锁存器。

请画出连接示意图。

要求画出8051的数据、地址、ALE、PSEN、RD、WR信号;锁存器的数据入D、数据出Q、锁存控制G、OE;2716的A、数据O、片选CE、输出使能OE;6264的A、D、CE、OE、WE。

freescale_16位单片机使用new

freescale_16位单片机使用new

MCU简介 微处理器(Microcontroller Unit, MCU ) 数字信号处理(Digital Signal Processing,DSP)
• 1996年,HC12系列MCU
• 2002年,HCS12系列MCU,系统总线频率最大25MHz • 2005年,HCS12X系列MCU,系统总线频率最大40MHz • HCS12 D系列——用于自动化和工业系统,特别适合用于汽车
芯片原理图
80引脚QFP封装 112引脚LQFP封装 5V输入和驱动能力
TM
Freescale Semiconductor Confidential and Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2005.
模式选择
BKGD PR6 PE5 MODC MODB MODA 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 地址 线宽 0 16 16 16 0 16 --16 数据 线宽 0 8 16 16 0 8 --16
模式选择 特殊单片模式(BDM) 仿真扩展窄模式 测试模式 仿真扩展宽模式 普通单片模式 普通扩展窄模式 外设模式 普通扩展宽模式
TM
简介
TM
Freescale Semiconductor Confidential and Proprietary Information. Freescale™ Freescale Semiconductor Confidential and Proprietary Information. Freescale™ and the and the Freescale logo are trademarks of Freescale Semiconductor, Inc. product product Freescale logo are trademarks of Freescale Semiconductor, Inc. All otherAll otheror service or service names are the property of their respective owners. © Freescale Semiconductor, names are the property of their respective owners. © Freescale Semiconductor, Inc. 2005.Inc. 2005.

基于单片机的单通道16位数据采集系统设计

基于单片机的单通道16位数据采集系统设计

摘要:数据采集系统是指将温度、压力、流量、位移等工业现场的各种物理量通过传感器变为电信号,经过放大、A/D采样转化为数字量后,由单片机进行储存和显示。

数据采集系统主要由传感器、模拟信号调理电路、数据采集电路三部分组成。

本设计主要是利用单片机集成的ADC模-数转化器直接将采集到的模拟信号转化为数字信号。

讲述了整个系统的工作流程和工作原理。

将采集的数据经过放大器放大之后再进入A/D转换器,然后直接通过串口传送的单片机上,可以直接在LED端显示温度数据值并进行简单的数据处理。

关键词:单片机;传感器;数据采集;数据储存目录一、概述 (1)1.1 设计背景 (1)1.2 系统性能指标 (1)二、数据采集系统综述 (2)2.1 数据采集的意义与作用 (2)2. 2 数据采集系统的结构形式 (2)2. 3 数据采集系统的基本功能 (3)三、系统硬件设计 (3)3. 1 系统结构图 (3)3. 2 信号放大模块 (3)3. 3 A/D转化模块 (6)3. 4 单片机数据采集与控制模块 (7)3. 5 LED显示模块 (9)四、系统的总体电路 (9)五、系统的PCB图 (10)六、心得与体会 (10)参考文献 (12)一概论1.1 设计背景为了确切测量某一测试对象的各种特性数据,我们常常需要借助各种仪表和各种手段(直接测量或者遥测)来获取各种各样的测量数据。

但这些数据中通常含有大量的变化误差、设备误差以及在传输过程中(当采用遥测方式时)引入的各种干扰所造成的误差等。

而且这些数据量通常都会很大,有意义的部分和无意义的部分混杂在一起,如果不加取舍的直接应用,必然会造成极大的不便。

传统靠人工控制的温度、湿度、液压等信号的测量、力控系统,外围的电路比较复杂,而且测量的精度较低,分辨力不高,需要进行温度校准(非线性校准、温度补偿、传感器标定等);而且体积较大,使用不方便,更重要的是参数的设定是需要的有其它仪表的参与,外界设备多,成本高,因而越来越适应不了社会的要求。

16位单片机实验指导书

16位单片机实验指导书

16位单片机应用实验指导书电子与信息工程学院2O15年2月实验一MC9S12XS128入门实验一.实验目的1.熟悉CodeWarrior嵌入式开发系统软硬件环境,掌握其使用方法及调试方式。

2.掌握S12 GPIO接口的使用方法及编程方法。

3.熟悉S12单片机的C语言程序编程框架。

4.理解样例中的第一个C语言程序代码。

二.实验设备及其连接1.PC机一台2.S12嵌入式开发实验板一套3.接线原理图实验板上有8个发光二级管和4个按钮开关, 8个发光二级管由单片机的PB口8个IO引脚控制, PB0-PB7输出低电平时LED点亮, 输出高电平时LED熄灭。

4个独立的按键输入直接连接到PP口的PP4-PP7引脚, 常态下为高电平, 按键按下时, CPU相应I/O引脚将检测到低电平, XS128芯片的PP口是有中断功能的IO口, 除了可用查询方式检测IO口的状态以外,我们也可以用中断的方式读入按键的状态。

三.实验内容1.使用CodeWarrior嵌入式开发系统的软硬件环境,掌握其使用方法及调试方式。

2.调试运行提供的样例程序light,观看实验结果。

(软件使用参见第四部分)3.运行样例程序,观察小灯的闪烁和对应的程序实现;调整延时的长短,继续观察小灯的闪烁。

4.尝试新建自己的工程,自编程序,实现用4个开关控制4个小灯的亮灭. 4个开关分别接在端口P的PTP4~PTP7口,4个小灯则接在PORTB0~PORTB3口, 参见第二部分连接图. 编程实现用这4个开关控制4个小灯,按钮开关按下时,对应小灯亮,否则为暗。

提示:新建工程时芯片选择HCS12X family-〉mc9s12xs128,connection 选择TBDML,然后下一步输入工程路径和名称,再3次下一步,选择默认选项,然后下一步、完成。

在main.c 文件中加入你的代码,主要通过设置数据方向寄存器DDRB DDRP和数据寄存器PORTB PTP来实现开关控制小灯的功能。

单片机实践-16位软件定时器模式

单片机实践-16位软件定时器模式

值 CCAP1L = temp.Result.Low; [CCAPnH和CCAPnL]为现有的值
CCAP1H = temp.Result.High;
[T_Reload为相同的数值(步长)
11 16位软件定时器模式
请注意以下4件事情: 第4件:赋初始或重装值时,必须先给CCAPnL赋值,再给CCAPnH赋值。
现了定时功能。
void PCA_Routine(void) interrupt PCA_VECTOR //PCA中断服务程序
{ if(CCF0) //CCP0模块比较/捕获中断
{ CCF0=0;
temp.num = (unsigned int)(CCAP1H<<8) + CCAP1L + T_Reload; //重新加初
IAP15W4K58S4单片机的16 位软件定时器模式
11 16位软件定时器模式
CCAPMn:PCA比较/捕获寄存器 n=0,1,2。
1 16位软件定时器模式(也称比较模式),CCAPMn寄存器只用到了三位: ECOMn、MATn和ECCFn。 ECOMn表示:允许比较器功能控制位,当ECOMn=1时,允许比较器功能;
void PCA_Routine(void) interrupt PCA_VECTOR //PCA中断服务程序
{ if(CCF0) //CCP0模块比较/捕获中断
{ CCF0=0;
temp.num = (unsigned int)(CCAP1H<<8) + CCAP1L + T_Reload; //重新加初
//CCP0模块比较/捕获中断
if(CCF0) {CCF1=0; …… }
//CCP1模块比较/捕获中断

单片机大作业

单片机大作业

西安电子科技大学单片机大作业学院:电子工程学院班级:02121X班姓名:XXX学号:0212XXX指导老师:XXX温度控制系统设计一、温度控制系统设计发展历史及意义在工业企业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题。

这类控制对象惯性大,滞后现象严重,存在很多不确定的因素,难以建立精确的数学模型,从而导致控制系统性能不佳,甚至出现控制不稳定、失控现象。

传统的继电器调温电路简单实用 ,但由于继电器动作频繁 ,可能会因触点不良而影响正常工作。

控制领域还大量采用传统的PID控制方式,但PID控制对象的模型难以建立,并且当扰动因素不明确时,参数调整不便仍是普遍存在的问题。

而采用数字温度传感器DS18B20,因其内部集成了A/D转换器,使得电路结构更加简单,而且减少了温度测量转换时的精度损失,使得测量温度更加精确。

数字温度传感器DS18B20只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦,使得单片机更加具有扩展性。

由于DS18B20芯片的小型化,更加可以通过单跳数据线就可以和主电路连接,故可以把数字温度传感器DS18B20做成探头,探入到狭小的地方,增加了实用性。

更能串接多个数字温度传感器DS18B20进行范围的温度检测。

二、DS18B20工作原理DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。

DS18B20测温原理如图3所示。

图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。

高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。

计数器1和温度寄存器被预置在-55℃所对应的一个基数值。

计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。

16位单片机实现全数字回路控制简化大功率开关电源

16位单片机实现全数字回路控制简化大功率开关电源

16位单片机实现全数字回路控制,简化大功率开关电源开关电源(SMPS)正随着系统变得日益复杂,如带多路输出、协调负载共享,热插拔能力、输出协调、集成功率因数校正或丰富故障处理功能,传统的模拟控制回路变得复杂和昂贵。

针对大功率和复杂度高的开关电源,美国微芯科技(Microchip)最近推出了最多可支持四路输出的16位dsPIC数字信号控制器(DSC)系列,这是Microchip首个SMPS DSC产品,它可以节省50%的元件数量,适用于AC/DC电源、功率因数校正(PFC)、隔离式DC/DC 转换器、UPS和逆变电源等。

随着性能和功率的不断提升,越来越多开关电源的控制回路通过数字方式进行,设计也“由硬变软”新型dsPIC30F1010和dsPIC30F202X DSC是微芯科技针对电源应用推出的第四级数字集成产品,也是第一次实现全数字回路控制。

该公司数字信号控制器部门战略市场总监Steve Marsh表示,尽管单片机在电源设计中广泛应用,如该公司已经推出的三级数字集成产品,但控制回路依然是以模拟形式来实现。

他介绍说,第一级开/关控制,单片机可以提供一些包括软启动、定序和监控的简单功能,由8位MCU实现;第二级比例控制,单片机可以管理现有电源芯片,并扩展现有功能,由8位或16位MCU/DSC实现;第三级拓扑结构的控制,SMPS的功能模块作为单片机控制的外设,由8位或16位MCU/DSC实现。

Marsh表示:“新推出的是第四级全数字控制产品,第一次实现全数字控制回路。

它最大的特点是只需要使用DSC,完全通过固件实现数字滤波,只需要外接功率驱动模块。

这样的数字控制,可以使客户使用的元件数量减少50%。

”不过,他表示,第四级的数字回路控制并不会完全取代其它设计,模拟和数字控制将在一定的过渡期内并存,目前模拟控制和数字控制应用的分界线,对于DC/DC来说是100W,AC/DC通常是250W,对于100W以下的电源来说,除非电源非常复杂,否则不会用到新型dsPIC系列。

16位单片机 期末大作业实验报告

16位单片机 期末大作业实验报告

上海电力学院16位单片机实验报告实验名称:使用键盘中断、PWM及LED数码管的实验专业:姓名:班级:学号:一、实验目的使用使用键盘中断、PWM 及LED 数码管实现用键盘调整PWM 呼吸灯的渐变快慢,同时用LED 显示当前的速度级:1、PWM 占空比(如图1)。

2、16键键盘中断(如图2)。

图2键盘中断接线原理图3、8段LED 数码管(如图3)。

图3 LED 数码管结构图(a) 25%的占空比图1 PWM 占空比示意图时钟 PWM (b) 50%的占空比时钟PWM (c) 75%的占空比时钟PWM二、实验设备及其连接(一)、试验设备:1.PC机一台2.S12嵌入式开发系统一台3.导线九根4.小键盘一个5.4连排共阴极8段数码管一个(二)、设备连接:1.键盘采用手动接线,将键盘接入双排插孔下一排插孔;2.PTP0~3分别接键盘接线处的1~4;3.PTA0~3分别接5-8;4.8段数码管插到指定位置;5.小灯接PP7口。

三、实验内容1.在键盘中断主程序里添加PWM及LED的头文件(.h)及源文件(.c),并在键盘中断主程序main.c中添加PWM占空比小灯及LED显示程序:2.在中断程序isr.c中添加PWM占空比小灯及LED显示程序:3.运行程序并记录实验现象:四、程序展示1.添加头文件声明。

2.在main.c 中添加time 变量及LEDbuf[4]数组,其中time 用来改变PWM 渐变中的Delay 延时时间,LEDbuf 则用来显示每次按键改变的速度值:main.c 程序展示:#include "Includes.h" //包含总头文件//在此添加全局变量定义uint8 iii;uint8 period;uint8 duty;uint8 time=100;uint8 LEDbuf[4];//主函数void main(){//0.1 主程序使用的变量定uint32 mRuncount=0; //运行计数器//运行计数器//uint8 period,duty,time=10;//0.2 关总中断DisableInterrupt();//0.3 芯片初始化MCUInit(FBUS_32M);//0.4 模块初始化Light_Init(Light_Run_PORT,Light_Run,Light_OFF); //RUN指示灯初始化为暗SCIInit(0,FBUS_32M,9600); //串口0初始化KBInit(); //键盘初始化PWMInit(7); //初始化PWM通道1 LEDInit();//Light_Init(Light_Run_PORT,Light_Run,Light_OFF); //RUN指示灯初始化为暗//0.5 开放中断EnableSCIReInt0; //开放SCI0接收中断EnableKBint(); //开放键盘中断EnableInterrupt();DDRB=0xff;PORTB=0x00; //开放总中断period = 0xFF; //PWM周期duty=0x00;LEDbuf[0]='0'; //待显示数据0000LEDbuf[1]='0';LEDbuf[2]='0';LEDbuf[3]='0';// 主循环for(;;){ //int i,j,k;LEDShow(LEDbuf);// Light_Change(Light_Run_PORT,Light_Run); //指示灯的亮、暗状态切换//}//---------------------------------------------------------------------//2.通过占空比的变化来调节小灯的亮度for(duty=0;duty<0xff;duty++){PWMSetting(7,period, duty); //不断增加PWM的占空比LEDShow(LEDbuf);Delay(time);}//延时for(duty=0xff;duty>0;duty--){PWMSetting(7,period, duty); //不断增加PWM的占空比LEDShow(LEDbuf);Delay(time);}//延时}}3.在isr.c中添加对按键的判断,当按下按键时,缩短Delay延时使得小灯闪烁速度加快,同时改变LEDbuf数组的值使得LED显示当前的按键值(速度级)。

16位单片机基础应用考试 (答案)

16位单片机基础应用考试 (答案)

16位单片机基础考试(答案)一、填空1、µ’nSP™的内核由(总线)、(算术逻辑运算单元)、(寄存器组)、(中断系统)及(堆栈)等部分组成。

2、µ’nSP™是16位单片机,它具有(16位)数据线和22位地址线。

22位地址线最多可寻访(4M)字的存储容量。

3、SPCE061A有2K字的SRAM包括(堆栈区),其地址范围从0x0000到0x07FF。

SPCE061A是一个用闪存替代掩膜ROM的MTP(多次编程)芯片,具有32K字(32K*16bit)闪存容量。

4、A口的IOA0~IOA7用作输入口时具有唤醒功能,即具有输入电平变化引起CPU中断功能。

5、通常,对某一位的设定包括以下3个基本项:数据向量Data、属性向量Attribution和方向控制向量Direction。

6、µ’nSP™时钟电路采用晶体振荡器电路。

外接晶振采用32768Hz。

7、SPCE061A提供了两个16位的定时/计数器:TimerA为通用计数器;TimerB为多功能计数器。

8、SPCE061A有8路可复用10位ADC通道,其中一路通道(MIC_In)用于语音输入,模拟信号经过自动增益控制器和放大器放大后进行A/D转换。

其余7路通道(Line_In)和IOA[0~6] 管脚复用。

9、串行输入输出端口SIO提供了一个1位的串行接口,用于与其它设备进行数据通讯。

在SPCE061A 内通过IOB0和IOB1这2个端口实现与设备进行串行数据交换功能。

10、SPCE061A的WatchDog的清除时间周期为0.75s。

11、读程序,写结果:r1=0x0010; r2=0x0020; [0x0010]=r2; r2=0x0010; r1+=[r2++];执行完后,r1=(0x0030),r2=(0x0011)。

12、R1=0xF00F //R1的初值为0xF00FR1=R1 LSL 3 执行完后,R1=0x807813、完成下列程序,设置A口低八位为低电平输出,高八位为带上拉电阻的输入r1 = (0x00ff); [P_IOA_Dir] = r1;r1 = (0x00ff); [P_IOA_Attrib] = r1;r1 = (0xff00); [P_IOA_Data] = r1;14、SPCE061A提供(14)个中断源,具有(两)个中断优先级,可实现两级中断嵌套功能。

16位单片机大作业(1)

16位单片机大作业(1)

上海电力学院《16位单片机应用》大作业课程名称 16位单片机应用课程编号1院(系)电子与信息工程学院专业电子科学与技术任课教师杨芳班级 2013142 姓名 DANGDANG 学号 2013000题目:十六位单片机----密码锁一、设计目的及要求运用C语言,MC9S12XS128的知识,对实现密码锁进行软件和硬件的设计和调试,掌握如何使用CodeWarrior来整合各种驱动模块,例如本实验运用到的键盘中断、LCD、PWM以及小灯模块,将这些模块整合在一起再通过算法实现硬件上的运行,达到密码锁的功能。

密码锁主要功能:利用键盘中断、LCD、小灯、PWM模块,按下按键,在LCD可以显示对应值,并将其与预设密码进行比对。

若正确,则LCD显示right,小灯由暗变亮;否则,LCD显示wrong,小灯一直保持流水灯状态,直至输入的密码正确。

二、设计内容与实现过程本次用到了相对还是比较多的模块,主要有SCI串口通信模块,LED显示模块,LCD显示模块,Timer定时器模块和中断模块,主要采用了定时器和中断的方式去控制整个系统的工作,能在超级终端以及LCD上实时显示时分秒的数据,主要是在Timer的样例程序中对当中的一些驱动以及主函数中数据的定义进行一定量的修改,来保证控制功能的实现。

具体功能和实现过程如下:1、Main 函数(1)全局变量定义2、实验采用的模块①LCD 显示模块运行程序后,LCD上会显示“password: r/w: ”,在对应位置还会显示按下的键位对应的定义值。

②键盘中断模块按下键位后,键值存入valve,调用KBDef函数,将valve键值转为定义值,存入num数组中。

③小灯显示模块小灯为共阳极程序运行后,PORTB已在前面设置为输出,小灯会出现流水灯现象。

④PWM模块Period为PWM周期所占时钟周期数,duty为PWM占空比所占的PWM 周期数。

此处不断增加占空比,实现小灯由暗变亮的显示。

电机控制中的16位PWM在C8051单片机中的实现

电机控制中的16位PWM在C8051单片机中的实现

第06卷 第05期 中 国 水 运学 术 版Vol.6 No.05 2006年 05月 China Water Transport Academic Version May 2006收稿日期2006-5-3作者简介何曦光男1982 武汉理工大学 研究生430070 研究方向自动控制 微机测控及电子技术电机控制中的16位PWM 在 C8051单片机中的实现何曦光 阮祥发 赵 燕摘 要在有刷和无刷直流电机的控制中需要使用脉宽调制技术PWM 技术我们可以通过调节PWM 信号的占空比来实现调速因此PWM波发生器在直流电机的控制中是不可缺少的关键词PWM C8051 PCA 高速输出工作方式中图分类号TM301.2 文献标识码 A 文章编号1006-7973200605-0048-02一PCA 捕捉/比较模块的高速输出工作方式原理C8051单片机有PWM 功能该功能包含在一个称为可编程计数器阵列PCA 当中[2]可编程计数器阵列PCA 包含1个16位的定时器/计数器和5个捕捉/比较模块而每个捕捉/比较模块都有一个16位的模块寄存器8位的PCA0CPHn 和8位的PCA0CPLn 且每个捕捉/比较模块都有4种工作方式其中在高速输出工作方式中每当PCA 计数器PCA0L 和PCA0H 的值与该模块寄存器PCA0CPLn 和PCA0CPHn 中的常数值相等时就使CEXn 引脚上的逻辑电平发生一次变化取反同时触发一次中断使该模块的中断标志位CCFn 被置1如果响应这个中断CCFn 必须用软件清0利用高速输出工作方式的这个特点我们就可以实现16位的PWM 功能PCA 高速输出工作方式原理图如图1所示[1]二如何实现16位PWM根据高速输出工作方式的工作原理我们可以知道当条件匹配时在CEXn 引脚上会产生一次正跳变或一次负跳变同时触发一次中断如果在正跳变时将PWM 高电平计数值装入16位的模块寄存器PCA0CPLn 中和PCA0CPHn 中而在负跳变时将0000H 装入16位的模块寄存器PCA0CPLn 和PCA0CPHn 中在CEXn 引脚上我们可以得到16位的PWM 输出这一过程可由图2进一步说明[1]由上图可见假如初始时CEXn 引脚输出低电平而且PCA 定时器初值为0000H当匹配条件满足时CEXn 引脚变为高电平同时引发一次中断在中断服务子程序中将PWM 常数值装入模块寄存器PCA0CPn 中每一个PCA 时钟PCA定时器加1直到与模块寄存器PCA0CPn 中的PWM 常数相等时满足了匹配条件这时使CEXn 引脚输出变为低电平同时又会引发一次中断在中断服务子程序中将0000H 装入模块寄存器PCA0CPn 中此时PCA 定时器在每一个PCA 时钟到来时继续加1直到加到FFFFH 时再加1产生溢出PCA 的值变为0000H 这样又产生新的匹配条件使CEXn 引脚变为高电平同时引发一次中断这次在中断服务子程序中将PWM 常数值装入模块寄存器PCA0CPn 中这样循环下去就会在CEXn 引脚上输出16位的PWM波图1 PCA 的高速输出工作方式原理图图2 用高速输出方式实现16位PWM 原理这个16位的PWM波的占空比由下式决定=PWM/65536 2-1改变变量PWM的值就可以改变占空比如果取系统时钟的4分频作为PCA 时钟的话考虑到中断服务程序要花一定的时间假设没有别的中断则PWM的第05期 何曦光等电机控制中的16位PWM 在C8051单片机中的实现 49 最小值是7个PCA 时钟最大值是65529个PCA 时钟这样最小占空比为0.01068%最大占空比为99.9893%如果取系统时钟的12分频作为PCA 时钟的话PWM 的最小值是3个PCA 时钟这样最小占空比为0.0046%最大占空比为99.9954%PWM 波的频率等于PCA 时钟频率的65536分频下面是利用高速输出工作方式实现16位PWM 功能的初始化程序和中断服务子程序在这个程序中系统时钟使用内部振荡器16MHz 使用模块0其端口CEX0定向到P0.0PCA 时钟使用系统时钟4分频16位PWM 值存放到20H 21H中低8位在前其数据格式与PCA 时钟相同[1]三相关程序 初始化程序ABCMOV OSCICN#07H系统时钟使用内部振荡器16MHzMOV XBR0#08HCEX0定向到P0.0 MOV XBR2#40H 交叉开关允许ORL PRT0CF #01H 配置P0.0推挽输出 MOV PCA0MD#02H 禁止PCA 中断PCA 时钟使用系统时钟4分频MOV PCA0CPL020H 将PWM 的低8位送入PCA0CPL0MOV PCA0CPH021H将PWM 的高8位送入PCA0CPH0MOV PCA0CPM0#4DH 设为告诉输出工作方式ORL EIE 1#08H允许PCA 中断 SETB EA 允许中断 SETB CR 允许使用PCA中断服务子程序如下WXYJBC CCF0WXY 1是模块0中断跳向处理程序JBC CCF 1WXY3不是模块0中断退出 JBC CCF2WXY3 BC CCF3WXY3 JBC CCF4WXY3JBC CF WXY3WXY 1JNB P0.0WXY2 读P0.0当前状态 MOV PCA0CPL020H P0.0=1时 MOV PCA0CPH021HRETIWXY2MOV PCA0CPL0#00H P0.0=0时MOV PCA0CPH0#00HWXY3RETI四结束语我们还可以用上面相同的方法来获得n 位PWM 波其中8﹤n ﹤16使用n 位PWM 方式的好处是在满足应用要求的前提下可以获得比16位PWM 方式更高的频率在可以在适当地修改PWMH 和PWML 值后在占空比不变的情况下随意改变PWM的频率参考文献 [1] 王晓明电动机的单片机控制北京北京航空航天大学出版社2003[2] 何立民MCS-51系列单片机应用系统设计北京北京航空航天大学出版社1990[3]邓星钟周祖德机电传动控制武汉华中理工大学出版社1992[4] 臧英杰电气传动的脉宽调制控制技术北京机械工业出版社1997In electrical machinery control 16 PWM in C8051 monolithicintegrated circuit realityHe Xiguang Ruan Xiangfa Zhao YanAbstract In controlling the motor with brush and without brush,the PWM Technology is needed.Wecan regulate the pace of the motor by regulating the the empty-rate of the PWM signal.So the PWM wave generator is indispensable.Keyword PWM,C8051,PCA,High-speed outputting working style。

《单片机大作业》课件

《单片机大作业》课件

智能照明系统
单片机可以实现智能照明控制, 根据环境光线和人的需求调节灯 光亮度、色温等参数,提高居住 舒适度。
单片机在其他领域的应用探索
工业自动化
单片机在工业自动化领域具有广泛的应用前景,可以实现设备控 制、数据采集、自动化生产线等功能。
医疗电子设备
单片机可以应用于医疗电子设备中,如智能医疗检测仪、电子体温 计等,提高医疗设备的智能化水平。
代码优化与重构
对软件代码进行优化和重构,提高代码质量 、可读性和可维护性。
单片机项目的总结与反思
项目总结
对整个单片机项目实践过程进行总结,包括遇到的问题、解决方法、 收获和不足等。
经验教训
反思项目实践中遇到的问题和困难,总结经验教训,为今后的项目实 践提供借鉴。
成果展示与交流
将项目成果进行展示和交流,接受他人评价和建议,进一步提高项目 质量。
智能交通系统
单片机可以应用于智能交通系统中,实现车辆调度、交通信号控制 、智能停车等功能,提高交通运行效率。
THANKS
感谢观看
02
单片机基础知识
单片机的硬件结构
中央处理器(CPU)
控制单片机的主要运算、逻辑功能的核 心部件。
输入/输出接口(I/O)
实现单片机与外部设备的信息交换。
存储器
用于存储程序代码和数据的部件,分 为随机存取存储器(RAM)和只读存 储器(ROM)。
时钟电路
为单片机提供工作节拍,控制单片机 的运行速度。
软件编程
根据硬件电路和项目需求进行软件编 程,实现所需功能。
电路搭建与调试
搭建硬件电路,进行初步调试,确保 电路工作正常。
单片机项目的调试与优化
功能测试

用单片机语言设计16位加法计算器实验报告

用单片机语言设计16位加法计算器实验报告

湖北第二师范学院计算机学院09计应单片机课程设计实验报告课程设计名称:电子计算器课程设计单位:10计应(1)班课设小组成员:徐凡(1060310039)凡平(1060310058)彭浩(1060310045)桂银(1060310010)潘光卉(1060300033)完成时间:2012年04月02日至2012年04月 24 日单片机课程设计实验报告课程设计题目:简易计算器作品功能描述:当通过输入键盘数字时,能够在显示器上显示输出的数值,并且通过想实现的简单运算功能,实现计算器的加、减、乘、除和清零,并将结果显示出来。

小组成员工作分工:徐凡:程序主框架的构造和主要功能函数的设计。

凡平:原理图的设计和硬件的焊接。

彭浩:基本功能函数的设计(“+,-,*,/”)。

桂银:程序流程图的设计和键盘扫描程序的实现。

潘光卉:编写文档和功能测试。

硬件电路设计:本设计中我们用的是AT89C52芯片,LCD1602 (PROTEUS中为LM016L)就是那个液晶屏,因为可以显示2行16个字符,故叫做LCD1602.11.0592M或12M晶振(CRYSTAL),两者均可,但要涉及到串口需选用12MKEYPAD-SMALLCALC就是那个4X4键盘电容20~30PF(CAP),接最小电路电容10PF主要接复位电路RESPACK-8排阻,为20K的,一个引脚接正极,另8个引脚接I/O口接RES电阻10K,接复位电路实物照片:硬件原理图原理说明:1,上电后,屏幕初始化;2,计算。

按下数字键,屏幕显示要运行的第一个数字,再按下符号键,然后再按下数字键,屏幕显示要运算的第二个数字,最后按下“=”号键,屏幕上显示出计算结果。

3,如果要再次计算,可以按下“ON/C”键清零,或者继续按下数字键,即可重新计算。

键盘使用说明如下:按键功能说明:Array“+”实现两个数的相加“-”实现两个数的相减“×”实现两个数的乘积“÷”实现两个数商的运算“ON/C”计算器显示的清零和接通电源程序控制流程图:软件设计:在程序设计方法上,模块化程序设计是单片机应用中最常用的程序设计方法。

小度写范文16位MCU攻略] 16位单片机模板

小度写范文16位MCU攻略] 16位单片机模板

[16位MCU攻略] 16位单片机16位单片机(微控制器,MCU)一向是一个颇有争议的产品地带:往高走有32位MCU一大批厂商及其丰富的产品线顶着,向下游更有五花八门的8位单片机世界窥视着。

因此,四、五年前,业内流行着这样一种看法:16位单片机是8位与32位微控制器之间的灰色地带,除了汽车等利基市场外,少有发展机会了。

几年过去了,16位单片机市场到底如何? 市场稳中有升许多16位厂商认为16位单片机有其独特的市场定位,市场规模不会缩小,是不可取代的,16位MCU只会平稳的增长。

“根据瑞萨的预测,中国的16位、32位MCU的年增长率都在10%以上”。

瑞萨科技(北京)有限公司北京技术中心总经理常清璞认为。

但是世界单片机市场增长略低(如图1)。

根据Strategy Analysis的最新研究报告,16位MCU未来5年的年均复合增长率达到28%。

富士通公司MCU产品经理丁洁早分析道,从富士通微电子的经验看来,8位有统占低端市场的趋势。

在部分中高端市场,32位MCU会采取降价的策略抢占一部分16位MCU的市场,但受制于其成本的因素,在总体上,不可能做到像16位MCU一样的性价比。

因此可以相信,16位MCU以其出色的性价比,在汽车电子、工业控制领域将会有更大作为,比如汽车的动力系统、组合仪表板、空调系统以及车身模块,基本都是采用16位MCU进行设计。

8位MCU由于技术门槛不是太高,加上低端市场的巨大规模,当然是几乎每一家MCU公司的必备产品线。

32位MCU由于引入开放式ARM架构,降低了竞争者的准入门槛,而且市场的应用得以不断的拓展,所以未来也充满了很多的机会。

Freescale也十分赞同16位单片机在汽车领域地位稳定。

Freescale半导体中国区汽车电子工程经理康晓敦说:“由于需要较长的开发周期和较长的产品生存周期,在汽车电子领域16位单片机市场不可替代。

因为16位MCU可以覆盖一部分32位MCU和8位MCU的市场,而且其开发过程比32位要简单,也不比8位难多少。

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

上海电力学院
《16位单片机应用》大作业
课程名称16位单片机应用
课程编号260717001
院(系)电子与信息工程学院
专业电子科学与技术
任课教师杨芳
班级2013142
姓名DANGDANG 学号 2013000
题目:十六位单片机----密码锁
一、设计目的及要求
运用C语言,MC9S12XS128的知识,对实现密码锁进行软件和硬件的设计和调试,掌握如何使用CodeWarrior来整合各种驱动模块,例如本实验运用到的键盘中断、LCD、PWM以及小灯模块,将这些模块整合在一起再通过算法实现硬件上的运行,达到密码锁的功能。

密码锁主要功能:
利用键盘中断、LCD、小灯、PWM模块,按下按键,在LCD可以显示对应值,并将其与预设密码进行比对。

若正确,则LCD显示right,小灯由暗变亮;否则,LCD显示wrong,小灯一直保持流水灯状态,直至输入的密码正确。

二、设计内容与实现过程
本次用到了相对还是比较多的模块,主要有SCI串口通信模块,LED显示模块,LCD显示模块,Timer定时器模块和中断模块,主要采用了定时器和中断的方式去控制整个系统的工作,能在超级终端以及LCD上实时显示时分秒的数据,主要是在Timer的样例程序中对当中的一些驱动以及主函数中数据的定义进行一定量的修改,来保证控制功能的实现。

具体功能和实现过程如下:
1、Main 函数
(1)全局变量定义
2、实验采用的模块
①LCD 显示模块
运行程序后,LCD上会显示“password: r/w: ”,在对应位置还会显示按下的键位对应的定义值。

②键盘中断模块
按下键位后,键值存入valve,调用KBDef函数,将valve键值转为定义值,存入num数组中。

③小灯显示模块
小灯为共阳极程序运行后,PORTB已在前面设置为输出,小灯会出现流水灯现象。

④PWM模块
Period为PWM周期所占时钟周期数,duty为PWM占空比所占的PWM周期数。

此处不断增加占空比,实现小灯由暗变亮的显示。

三、小结
此次课程设计,我使用了键盘中断、LCD、小灯以及PWM模块,共四个模块,设计出了一个密码锁。

在本次试验中,我不可避免的遇到一些问题:PWMSetting函数理解不够深入。

程序中所用的PWM相关语句在之前做PWM 实验时已有接触,经过了解发现,period为PWM周期占时钟周期的个数,duty 为PWM占空比占PWM周期的个数,但对于PWMSetting函数的功能如何实现不太理解。

在这次实验中,我不断地发现问题、解决问题,将理论运用与实际,更好的把握了课本上学到的知识,进一步认识了软件和硬件,也大大提高了自己的动手能力,使我受益匪浅。

四、最后结果。

相关文档
最新文档