【可直接使用】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来实现开关控制小灯的功能。

  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函数的功能如何实现不太理解。

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

四、最后结果。

相关文档
最新文档