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的共阴极电平状态。
单片机大作业试题及答案

单片机试题带答案版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。
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位加法计算器实验报告

湖北第二师范学院计算机学院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位单片机实现全数字回路控制简化大功率开关电源

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位单片机实验报告实验名称:使用键盘中断、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显示当前的按键值(速度级)。
MSP430系列超低功耗16位单片机原理与应用

振荡器控制逻辑
LFXT1
振荡器控制 逻辑
XT2振荡器控
制逻辑
DCO振荡器
控制逻辑
MSP430-2002~2004 -
30
DCO频率的调节 频率的调节
MSP430-2002~2004 -
8
第一章习题
微处理器的发展方向是什么? 单片机的概念是什么? 单片机和我们通常所用的微型计算机有什么区别和联系? 单片机常见的领用领域有哪些? 如何理解MSP430系列单片机的“单片”解决能力? MSP430系列单片机最显著特性是什么? 如何理解MSP430系列单片机的低功耗特性? 为什么MSP430系列单片机特别适用于电池供电和手持设备? 如何理解MSP430系列单片机的强大处理能力?在开发环境方面, MSP430系列单片机和传统单片机相比,有哪些显著优势? 构成MSP430系列单片机的各类存储器有什么特点?各自适用于哪些场 合? MSP430系列单片机应用选型的依据是什么?
MSP430-2002~2004 -
23
本章小结
在结构上MSP430系列单片机集成了一部计算机的各个基本 组成部分。虽然其工作原理与普通微机并无差异,但 MSP430系列单片机在结构上更加突出了体积小、功能强、 面向控制的特点,具有很高的性能价格比。 MSP430系列单片机由CPU、存储器和外围模块组成,这些 部件通过内部地址总线、数据总线和控制总线相连构成单 片微机系统。 MSP430的内核CPU结构是按照精简指令集的宗旨来设计的 。具有丰富的寄存器资源、强大的处理控制能力和灵活的 操作方式。 MSP430的存储器结构采用了统一编址方式,可以使得对外 围模块寄存器的操作象普通的RAM单元一样方便、灵活。 MSP430存储器的信息类型丰富,并具有很强的系统外围模 块扩展能力。
(凌阳十六位单片机原理及应用)第1章单片机概述

智能化
单片机集成越来越多的AI算法 和功能,实现智能化控制和处 理。
网络化
单片机集成网络接口,实现远 程控制和数据传输。
单片机的发展前景
01
02
03
04
物联网应用
随着物联网技术的不断发展, 单片机在智能家居、智能农业
等领域的应用前景广阔。
人工智能
单片机在人工智能领域的应用 将逐渐增多,如机器人控制、
01
02
03
串行通信接口
实现单片机与其他设备间 的串行数据传输。
并行通信接口
连接单片机与并行设备, 实现高速数据传输。
可编程接口
根据需要配置为各种功能, 如模拟数字转换器(ADC)、 脉宽调制器(PWM)等。
04
单片机的软件编程
单片机的编程语言
C语言
C语言是一种通用的编程语言,适 用于各种类型的单片机编程。它 具有高效、可移植性强、可读性 好的特点。
05
单片机的开发工具
单片机的开发板
开发板是用于单片机开发的硬件平台, 提供单片机所需的各种外设接口和扩 展模块,方便开发者进行硬件调试和 程序开发。
开发板的选择需要根据具体的项目需 求和开发环境来决定,同时需要考虑 开发板的性能、扩展性、易用性和成 本等因素。
常见的开发板包括基于特定单片机的 开发板和通用型开发板,前者片机的仿真器
仿真器是用于模拟单片机运行环境的工具,可以在电脑上模拟单片机的运行过程, 方便开发者进行软件调试和测试。
仿真器可以模拟单片机的各种外设和接口,提供与实际硬件相似的运行环境,使得 开发者可以在没有实际硬件的情况下进行开发和测试。
仿真器的选择需要考虑其对目标单片机的支持、仿真速度、界面友好性和易用性等 因素。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上海电力学院
《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)主函数
(3)主循环
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函数的功能如何实现不太理解。
在这次实验中,我不断地发现问题、解决问题,将理论运用与实际,更好的把握了课本上学到的知识,进一步认识了软件和硬件,也大大提高了自己的动手能力,使我受益匪浅。
四、最后结果。