单片机实验报告

合集下载

单片机流水灯实验报告

单片机流水灯实验报告

实验一流水灯实验报告一、实验目的1、熟练掌握JC-51A型开发板的使用方法和注意事项。

2、了解简单单片机应用系统的设计方法。

3、掌握应用KEIL软件编辑、编译源汇编程序的操作方法。

4、掌握应用USBISP烧录软件STC-ISP的操作方法。

5、掌握89C52RC单片机的流水灯操作过程。

二、实验内容在JC-51A开发板上实现8个发光LED“流水”的现象,并通过编写程序控制流水现象。

三、实验主要仪器及软件1,JC-51A开发板2,一台电脑3,STC-ISP-V479软件4,KEIL软件四、实验说明当8255 的PA口有低电平输出时,相应的发光二极管就会点亮。

应用这一原理我们可以容易的点亮一个数码管,例如令PA口输出0111 1111时D1就会点亮。

若再把0111 1111向右循环一位,利用PA口输出,就会点亮D2。

在发光二极管两次点亮的间隔中加延时程序,让每次点亮停留一段时间,像这样人眼就可以看到“流水”的现象。

五、实验步骤步骤一:把学习板连接到电脑上,把光盘安装到电脑里,注意电脑右下方显示的是COM几端口;步骤二:打开光盘看到“4.程序烧写软件”字样并打开,安装PL-232驱动这个软件,并打开STC手动下载,找到STC_ISP_V479.exe并打开;步骤三:打开看到一个界面,MCU type选择STC89C52RC,COM端口选择刚刚看到的几端口;步骤四:点击open file,选择光盘里5.MINI-V22实例源程序,打开汇编参考样例,打开流水灯2,选择hex格式的文件,点击确定;步骤五:点击download,如果连接不成功,重置下学习板的开关,这时就看到学习板的流水灯的滚动了。

六、广告流水灯程序ORG 00HMOV P2,#80HSTART:MOV A,#0FFH ;赋初值CLR CMOV R2,#8LOOP:RRC A ; 带进位右移MOV P1,ACALL DELAYDJNZ R2,LOOPMOV R2,#7LOOP1:RLC A ; 带进位左移MOV P1,ACALL DELAYDJNZ R2,LOOP1JMP STARTDELAY:MOV R3,#20 ; 延时0.2秒D1: MOV R4,#20 D2: MOV R5,#248DJNZ R5,$DJNZ R4,D2DJNZ R3,D1RETEND七、实验原理图更改此处可以使流水灯速度发生变化八、总结:通过本实验,懂得如何安装kell软件以及实验板,懂得单片机的调试,初步了解并熟悉实验板上单片机I/O口和LED 灯的电路结构,能通过修改程序实现仿真板上不同灯的亮灭情况,并希望通过多次试验对它有更多的了解。

单片机计数器实验报告

单片机计数器实验报告

计数器实验报告㈠实验目的1.学习单片机内部定时/计数器的使用和编程方法;2.进一步掌握中断处理程序的编程方法。

㈡实验器材1.G6W仿真器一台2.MCS—51实验板一台3.PC机一台4.电源一台5.信号发生器一台㈢实验内容及要求8051内部定时计数器,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数,使用8051的T1作定时器,50ms中断一次,看T0内每50ms 来了多少脉冲,将计数值送显(通过LED发光二极管8421码来表示),1秒后再次测试。

㈣实验说明1.本实验中内部计数器其计数器的作用,外部事件计数器脉冲由P3.4引入定时器T0。

单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变,这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样,同时这就决定了输入波形的频率不能超过机器周期频率。

2.计数脉冲由信号发生器输入(从T0端接入)。

3.计数值通过发光二极管显示,要求:显示两位,十位用L4~L1的8421码表示,个位用L8~L5的8421码表示4.将脉搏检查模块接入电路中,对脉搏进行计数,计算出每分钟脉搏跳动次数并显示㈤实验框图(见下页)程序源代码ORG 00000H LJMP MAINORG 001BH ;T0的中断入口地址AJMP MAIN1MAIN:MOV SP,#60HMOV TMOD,#15H ;设置T1做定时器,T0做计数器,都于方式1工作MOV 20H,#14H ;装入中断次数MOV TL1,#0B0H ;装入计数值低8位MOV TH1,#3CH ;装入计数值高8位MOV TL0,#00H计数器主程序框图中断返回恢复现场NY 是否到1秒?显示置T1定时常数INT _T1入口保护现场清T0计数值中断服务程序框图开 始置T0,T1模式及初始值设置初始常数开中断等 待MOV TH0,#00HSETB TR1 ;启动定时器T1SETB TR0 ;启动计数器T0SETB ET1 ;允许T1中断SETB EA ;允许CPU中断SJMP $ ;等待中断MAIN1:PUSH PSWPUSH ACCCLR TR0CLR TR1 ;保护现场MOV TL1,#0B0H ;装入计数值低8位MOV TH1,#3CH ;装入计数值高8位,50ms;允许T1中断DJNZ 20H,RETUNT ;未到1s,继续计时MOV 20H ,#14H;1s到重新开始SHOW: ;显示计数器T0的值MOV R0,TH0 ;读计数器当前值MOV R1,TL0MOV A,R1MOV B,#0AHDIV AB;将计数值转为十进制MOV C,ACC.3 ;显示部分,将A中保存的十位赋给L0~L3 MOV P1.0,CMOV C,ACC.2MOV P1.1,CMOV C,ACC.1MOV P1.2,CMOV C,ACC.0MOV P1.3,CMOV A,B ;将B中保存的各位转移到A中MOV C,ACC.3 ;将个位的数字显示在L4~L7上MOV P1.4,CMOV C,ACC.2MOV P1.5,CMOV C,ACC.1MOV P1.6,CMOV C,ACC.0MOV P1.7,CRETUNT:MOV TL0,#00H ;将计数器T0清零MOV TH0,#00HSETB TR0SETB TR1POP ACCPOP PSWRETI ;中断返回在频率为1000HZ时,L0~L7显示为50;频率为300HZ时,L0~L7显示为15,结果正确,程序可以正确运行。

实验报告(单片机实验报告)

实验报告(单片机实验报告)

1 双字节无符号数加法例1: 双字节无符号数加法(R0 R1)+(R2 R3) → (R4 R5),R0、 R2、 R4存放16位数的高字节, R1、 R3、 R5存放低字节。

已知(R0 R1)=(93h,79h);(R2 R3)=(25h,a4h)假设其和不超过16位。

请编程。

org 0000hLjmp startorg 0050hstart:mov R0,#93hmov R1, #79hmov R2,#25hmov R3, #0a4hmov A,R1ADD A,R3mov R5,Amov A,R0ADDC A,R2mov R4,Ass: jmp ssend2双字节无符号数减法例2: 双字节无符号数相减(R0 R1)-(R2 R3) → (R4 R5)。

R0、 R2、R4存放16位数的高字节, R1、 R3、 R5存放低字节,已知(R0 R1)=(93h,79h);(R2 R3)=(25h,a4h);请编程。

同学自己可以设置被减数与减数数值org 0000hLjmp startorg 0050hstart:mov R0,#93hmov R1,#79hmov R2,#25hmov R3,#0a4hmov A,R1CLR CSUBB A,R3mov R5,Amov A,R0SUBB A,R2mov R4,Ass: jmp ssend3双字节数乘以单字节数例3: 利用单字节乘法指令,进行双字节数乘以单字节数运算。

若被乘数为16位无符号数, 地址为M1(30H) 和M1+1(31H)(低位先、高位后), 乘数为8位无符号数, 地址为M2(32H), 积由高位到低位存入R2、 R3和R4三个寄存器中。

30H,31H,32H内容 12H,34H,56H ;org 0000hLjmp startorg 0050hstart:mov 30h,#12hmov 31h,#34hmov 32h,#56hmov a,(30h)mov b,(32h)mul abmov R3,bmov R4,amov a,(31h)mov b,(32h)mul abadd A,R3mov R3,Amov A,bADDC A,#00hmov R2,Ass: jmp ssend4. 把8位二进制数转换为3位BCD例4: 利用除法指令把累加器A中的8位二进制数转换为3位BCD 数, 并以压缩形式存放在地址M1、 M2单元中。

单片机静态数码管实验报告

单片机静态数码管实验报告

单片机静态数码管实验报告一、引言静态数码管是一种常用的显示器件,广泛应用于各种仪器仪表、计时器、计数器等场合。

本实验旨在通过单片机控制静态数码管,实现数字的显示功能。

二、实验原理静态数码管由若干个发光二极管组成,每个发光二极管代表一个数字。

通过控制每个发光二极管的亮灭,可以显示不同的数字。

单片机通过控制数码管的共阳极或共阴极,以及发光二极管的亮灭,实现数字的显示。

三、实验器材1. 单片机开发板2. 静态数码管3. 连接线四、实验步骤1. 连接电路:将静态数码管的共阳极或共阴极与单片机开发板相应的IO口连接。

2. 编写程序:使用C语言编写程序,通过控制IO口的高低电平控制数码管的亮灭,实现数字的显示。

3. 烧录程序:将编写好的程序烧录到单片机开发板中。

4. 调试程序:通过调试程序,观察数码管是否能正常显示数字。

5. 结果分析:根据实验结果,分析程序的正确性及数码管显示的准确性。

6. 实验总结:总结实验过程中的问题及解决方法,并对实验结果进行分析和评价。

五、实验结果经过实验,我们成功地通过单片机控制静态数码管,实现了数字的显示。

数码管能够根据程序的控制,显示出不同的数字,显示效果良好,准确度高。

六、实验分析通过本实验,我们掌握了单片机控制静态数码管的方法和技巧。

在实验过程中,我们发现控制数码管显示数字的关键在于正确地控制IO口的高低电平。

同时,我们还发现静态数码管显示数字的亮度和清晰度与电源电压和电流的稳定性有关,需要合理选择电源参数。

七、实验应用静态数码管广泛应用于各种仪器仪表、计时器、计数器等场合。

通过单片机控制静态数码管,可以实现各种数字的显示功能,满足不同场合的需求。

八、实验总结通过本实验,我们深入了解了单片机控制静态数码管的原理和方法。

通过编写程序和调试程序,我们成功地实现了数字的显示功能。

实验过程中,我们遇到了一些问题,但通过不断的调试和尝试,最终解决了问题。

通过本次实验,我们不仅加深了对单片机原理的理解,还提升了实际操作和问题解决的能力。

单片机实验报告 附含说明书

单片机实验报告  附含说明书

第一章 DICE-5208K开发型单片机综合实验仪概述一、系统简介DICE-5208K型单片机实验系统由DICE-5208K开发型单片机综合实验箱、DICE-3000型仿真器、扩展卡和DICE-51仿真开发系统软件等组成。

是《MCS-51单片机原理与接口》、《单片机控制技术》、《C8051Fxxx高速SOC单片机原理及应用》、《EDA》、《VHDL硬件描述语言》、《CPLD/FPGA应用基础》等课程教学的配套实验设备。

新增加了几乎所有最实用、新颖的接口电路(如1 WIRE /I2C/SPI总线等)和通讯类接口实验(如USB2.0通讯/TCP/IP网络通讯/CAN总线/红外线收发等)。

可进行MCS-51、C8051F嵌入式单片机、CPLD/FPGA等课程的开放式实验教学。

二、主要特点1.该实验系统配置DICE-3000型高性能MCS-51硬件仿真器,64K数据空间,64K程序空间全部开放,不占用CPU资源,采用双CPU模式,仿真CPU和用户CPU独立运行,上位仿真软件支持汇编、C语言、PL/M语言。

可运行于WIN98/2000/NT/XP操作系统平台。

2.实验系统带有ISP在线下载电路,学生在完成实验后可脱离仿真机和PC机独立运行学生自行设计的单片机系统。

(可在线编程AT89S51/52/53系列单片机)。

3.该实验系统可扩展C8051F020嵌入式实验开发模块, 并配有DICE-EC5型USB高速通讯仿真器,通过4脚的JTAG接口可以进行非侵入式、全速的在线系统调试、仿真;集成开发环境支持Silicon Labs IDE和KEIL C软件。

4.该实验系统可扩展CPLD/FPGA模块,并配有相应的并口下载电路,轻松变成一台EDA实验开发平台。

5.该实验系统可扩展“数控式电子演示装置”,该装置是本公司的专利产品,结合上位演示软件和USB接口,可为该实验系统扩展多达十五个生动、形象、复杂的实验,其中大部分是闭环实验,实验践性非常强。

单片机实训报告总结

单片机实训报告总结

单片机实训报告总结篇一:51单片机实训报告“51单片机”精简开发板的组装及调试实训报告为期一周的单片机实习已经结束了。

通过此次实训,让我们掌握了单片机基本原理的基础、单片机的编程知识以及初步掌握单片机应用系统开发实用技术,了解“51”单片机精简开发板的焊接方法。

同时培养我们理论与实践相结合的能力,提高分析问题和解决问题的能力,增强学生独立工作能力;培养了我们团结合作、共同探讨、共同前进的精神与严谨的科学作风。

此次实训主要有以下几个方面:一、实训目的1.了解“51”精简开发板的工作原理及其结构。

2.了解复杂电子产品生产制造的全过程。

3.熟练掌握电子元器件的焊接方法及技巧,训练动手能力,培养工程实践概念。

4.能运用51单片机进行简单的单片机应用系统的硬件设计。

5.掌握单片机应用系统的硬件、软件调试方法二、实验原理流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的硬件组成的单个单片机。

它的电气性能指标:输入电压:~6V,典型值为5V。

可用干电池组供电,也可用直流稳压电源供电。

如图所示:本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的硬件组成的单个单片机。

三、硬件组成1、晶振电路部分单片机系统正常工作的保证,如果振荡器不起振,系统将会不能工作;假如振荡器运行不规律,系统执行程序的时候就会出现时间上的误差,这在通信中会体现的很明显:电路将无法通信。

他是由一个晶振和两个瓷片电容组成的,x1和x2分别接单片机的x1和x2,晶振的瓷片电容是没有正负的,注意两个瓷片电容相连的那端一定要接地。

2、复位端、复位电路给单片机一个复位信号(一个一定时间的低电平)使程序从头开始执行;一般有两中复位方式:上电复位,在系统一上电时利用电容两端电压不能突变的原理给系统一个短时的低电平;手动复位,同过按钮接通低电平给系统复位,时如果手按着一直不放,系统将一直复位,不能正常。

单片机占空比为50%的矩形波实验报告

单片机占空比为50%的矩形波实验报告

单片机占空比为50%的矩形波实验报告单片机实验报告一、实验目的 1. 了解 32 位单片机(STM32 系列)原理及其应用,熟悉单片机的资源,掌握单片机的最小系统设计及扩展技术,掌握单片机的编程语言。

2. 通过本实验了解 LCD 液晶工作原理,能通过编程操作液晶的显示。

3. 通过本实验介绍以太网的通信原理,能够在计算机与实验系统间通过以太网展开数据传输。

二、实验设备 STM32 实验系统一套,PC 机一台。

三、实验原理 1. I/O 口及定时器实验:STM32 的 GPIO 口掌控 4 个发光二极管,介绍其硬件相连接方式,学会采用 STM32 的一个定时器,掌控对定时器计时方式的编程。

编写程序循环照亮 4 个发光二极管,掌控照亮时间为 1 秒钟闪光。

2. LCD 实验:掌握 STM32 单片机与液晶之间的硬件连接方式,单片机如何驱动液晶进行显示。

3. 串行口通信实验:掌控 STM32 单片机与计算机之间的硬件相连接方式,介绍二者之间的传输协议,展开数据传输。

四、内容与步骤 1. 学会使用 IAR 的编译链接调试环境,熟悉 IAR 中有关 STM32 使用到的库,并能顺利建立包含各种库文件的工程。

2. I/O 口实验:在创建工程的基础上能够照亮发光二极管。

3. 定时器实验:循环定时(用定时器做)点亮 4 个灯,即每 1 秒闪烁点亮一个灯,循环往复(或叫跑马灯实验)。

4. LCD 实验:通过自行撰写库文件和介绍液晶显示字库,能够在液晶上表明“北京航空航天大学机械工程及自动化学院”字样。

5. 串行口通信实验:编写串行口通信实验程序,能在计算机与 STM32 系统间进行ASCII 码的传输。

五、关键源代码1. I/O 口及定时器实验 //通过定时器 4 中断函数实现跑马灯 voidTIM4_IRQHandler() //定时器 4 中断函数 { if (TIM_GetITStatus(TIM4,TIM_IT_Update) != RESET) { TIM_ClearITPendingBit(TIM4, TIM_IT_Update);switch (aaa) { case 0:{ GPIO_ResetBits(GPIOD, GPIO_Pin_11); GPIO_SetBits(GPIOD, GPIO_Pin_8);break;} case 1:{ GPIO_ResetBits(GPIOD, GPIO_Pin_8);GPIO_SetBits(GPIOD, GPIO_Pin_9);break;} case 2:{ GPIO_ResetBits(GPIOD,GPIO_Pin_9); GPIO_SetBits(GPIOD, GPIO_Pin_10); break;} case3:{ GPIO_ResetBits(GPIOD, GPIO_Pin_10); GPIO_SetBits(GPIOD, GPIO_Pin_11);break;} } aaa++; if(aaa==4) aaa=0; } } int main() { RCC_Configuration();//配置系统时钟 NVIC_Configuration(); //配置中断 GPIO_Initialize(); //初始化 I/O 口 TIME_Initialize(); //初始化定时器 4 while(1); } 2. LCD 实验//在字体库文件中创建汉字点阵数组 hanzi[14][32],而后逐个显示字体库中的汉字const unsigned charhanzi[14][32]={ {0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x44,0x04,0x4E,0x7C,0x58,0x04,0x60,0x04,0x40,0x04,0x40,0x04,0x40,0x0C,0x40,0x34,0x42,0xE4,0x42,0x44,0x42,0x04,0x3E,0x00,0x00}, //北{0x02,0x00,0x01,0x08,0x7F,0xFC,0x00,0x00,0x00,0x00,0x1F,0xF0,0x10,0x10,0x10,0x10,0x1F,0xF0,0x01,0x00,0x09,0x30,0x19,0x18,0x31,0x0C,0x41,0x08,0x05,0x00,0x02,0x00}, //京…,} //汉字图形数组,这里只得出了“北”和“京”,全部的存有“汤志达贾英杰北京航空航天大学” void LCD_ShowHZ(u8 x, u16 y, u8 num, u8 size, u16 PenColor,u16 BackColor) //表明单个 16*16 汉字 { #define MAX_CHAR_POSX 232 #defineMAX_CHAR_POSY 304 u8 temp; u8 pos,t; if(x>MAX_CHAR_POSX||y>MAX_CHAR_POSY) //少于表明范围,选择退出 return; if(XY) // 竖屏表明{ LCD_WindowMax(x,y,x+size,y+size); //设置窗口 LCD_WriteReg(0x11, 0x);LCD_SetCursor(x, y); } else /横屏表明 { LCD_WindowMax(x,y-size,x+size,y); //设置窗口 LCD_WriteReg(0x11, 0x); LCD_SetCursor(x,y-1); //设置光标边线 } LCD_WriteRAM_Prepare(); //已经开始载入GRAM for(pos=0;posRCC_Configuration(); //时钟布局 LCD_Init(); //初始化 LCD模块 LCD_Clear(WHITE); for(u8 i=0;i<3;i++) LCD_ShowHZ(50+i*16, 100, i, 16, RED, WHITE); for(;i<6;i++) //表明“贾英杰” LCD_ShowHZ(130+i*16, 100, i, 16,RED, WHITE); for(;i<14;i++) //表明“北京航空航天大学” LCD_ShowHZ(50+i*16,200, i, 16, RED, WHITE); while(1); } 3. 串行口通信实验 //通过串口通信不断向上位机传送“buaa” void Uart1_PutChar(u8 ch) //传送单个字符{ USART_SendData(USART1, ch); while (USART_GetFlagStatus(USART1,USART_FLAG_TXE) == RESET); } int main() { RCC_Configuration();USART1_Configuration() ; //须要恰当设置波特率 while(1) { char a[10]="buaa"; for(int i=0;a[i]!="\0";i++) Uart1_PutChar(a[i]); } } 任课教师评语:任课教师盖章:考核日期:年月日单片机实验单片机实验七单片机实验2单片机实验十三1实验内容报告单RCC_Configuration(); //时钟配置 LCD_Init(); //初始化 LCD 模块LCD_Clear(WHITE); for(u8 i=0;i<3;i++) LCD_ShowHZ(50+i*16, 100, i, 16, RED, WHITE); for(;i<6;i++) //显示“贾英杰” LCD_ShowHZ(130+i*16, 100, i, 16, RED, WHITE); for(;i<14;i++) //显示“北京航空航天大学” LCD_ShowHZ(50+i*16, 200,i, 16, RED, WHITE); while(1); } 3. 串行口通信实验 //通过串口通信不断向上位机发送“buaa” void Uart1_PutChar(u8 ch) //发送单个字符{ USART_SendData(USART1, ch); while (USART_GetFlagStatus(USART1,USART_FLAG_TXE) == RESET); } int main() { RCC_Configuration();USART1_Configuration() ; //需正确设置波特率 while(1) { char a[10]="buaa"; for(int i=0;a[i]!="\0";i++) Uart1_PutChar(a[i]); } } 任课教师评语:任课教师盖章:考核日期:年月日。

单片机外部中断实验报告

单片机外部中断实验报告

单片机外部中断实验报告实验目的:1、理解单片机外部中断的原理和用途;2、掌握单片机外部中断的配置和使用方法。

实验器材:1、STC15W408AS单片机开发板;2、简单的电路连接器;3、按钮开关。

实验原理:单片机外部中断是通过外部硬件信号触发单片机的中断请求,在单片机运行过程中,当外部信号满足特定条件时,会触发中断,并暂停当前的运行程序,转而执行中断服务程序。

通过外部中断,可以实现对外部事件的实时处理。

实验步骤:1、将按钮开关与单片机开发板连接,将按钮开关的一端与单片机的INT0引脚连接,另一端与GND连接。

2、在开发板上连接好电源并供电。

3、打开Keil软件,新建一个工程,并选择合适的单片机型号。

4、配置单片机的外部中断功能,设置INT0引脚为中断输入。

5、编写中断服务程序,当INT0引脚检测到边沿信号时,执行中断服务程序,并在其中加入相应的处理代码。

6、编写主程序,配置相关的引脚和寄存器,使单片机进入中断模式,接受外部中断信号,并执行中断服务程序。

7、下载程序到单片机开发板上,运行程序。

8、按下按钮开关,触发外部中断,并查看实验结果。

实验结果:当按下按钮开关时,实时触发外部中断,单片机停止当前程序的运行,进入中断模式,并执行中断服务程序中的相应代码。

实验总结:通过这次实验,我对单片机的外部中断有了更深入的理解,并学会了如何使用外部中断实现对外部事件的及时处理。

外部中断广泛应用于各种实时系统和设备中,具有很大的实用价值。

在以后的学习和实践中,我会进一步掌握和应用单片机的外部中断功能。

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

院系:计算机科学学院专业:智能科学与技术年级: 2012 学号:2012213865姓名:冉靖指导教师:王文涛2014年 6月1日一. 以下是端口的各个寄存器的使用方式:1.方向寄存器:PxDIR:Bit=1,输出模式;Bit=0,输入模式。

2.输入寄存器:PxIN,Bit=1,输入高电平;Bit=0,输入低电平。

3.输出寄存器:PxOUT,Bit=1,输出高电平;Bit=0,输出低电平。

4.上下拉电阻使能寄存器:PxREN,Bit=1,使能;Bit=0,禁用。

5.功能选择寄存器:PxSEL,Bit=0,选择为I/O端口;Bit=1,选择为外设功能。

6.驱动强度寄存器:PxDS,Bit=0,低驱动强度;Bit=1,高驱动强度。

7.中断使能寄存器:PxIE,Bit=1,允许中断;Bit=0,禁止中断。

8.中断触发沿寄存器:PxIES,Bit=1,下降沿置位,Bit=0:上升沿置位。

9.中断标志寄存器:PxIFG,Bit=0:没有中断请求;Bit=1:有中断请求。

二.实验相关电路图:1 MSP430F6638 P4 口功能框图:主板上右下角S1~S5按键与MSP430F6638 P4.0~P4.4口连接:2按键模块原理图:我们需要设置两个相关的寄存器:P4OUT和P4DIR。

其中P4DIR为方向寄存器,P4OUT 为数据输出寄存器。

主板上右下角LED1~LED5指示灯与MSP430F6638 P4.5~P4.7、P5.7、P8.0连接:3 LED指示灯模块原理图:P4IN和P4OUT分别是输入数据和输出数据寄存器,PDIR为方向寄存器,P4REN 为使能寄存器:#define P4IN (PBIN_H) /* Port 4 Input */#define P4OUT (PBOUT_H) /* Port 4 Output */#define P4DIR(PBDIR_H) /* Port 4 Direction */#define P4REN (PBREN_H) /* Port 4 Resistor Enable */三实验分析1 编程思路:关闭看门狗定时器后,对P4.0 的输出方式、输出模式和使能方式初始化,然后进行查询判断,最后对P4.0 的电平高低分别作处理来控制LED 灯。

程序流程图:2 关键代码分析:#include<msp430f6638.h>void main(void){WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗P4DIR |= BIT5; // 设置4.5口为输出模式P4OUT |= BIT0; // 选中P4.0为输出方式P4REN |= BIT0; // P4.0使能while (1) // Test P1.4{if (P4IN & BIT0) //如果P4.0为1则执行,这是查询方式按下去后是低,否则为高P4OUT |= BIT5; //使P4.5置高elseP4OUT &= ~BIT5; // else reset}}四实验步骤与现象实验步骤:1. 将PC 和板载仿真器通过USB 线相连;2. 打开IAR 5.30集成开发工具,选择IAR Debug->Add->Add Files,导入所建文件夹中相应的工程文件;3.选择对该工程进行编译链接,生成编译文件。

然后选择将程序序下载到实验板中。

程序下载完毕之后,可以选择运行程序,也可以选择单步调试程序。

也可以程序下载之后,按下终止调试,软件界面恢复到原编辑程序的画面。

再按下实验板的复位键,运行程序。

实验现象按下S7 后,LED5 熄灭,松开后恢复点亮。

未按下S7时:按下S7时:松开手后,LED5又亮了。

Lab1-2 多个按键对LED灯的控制实验实验原理按键与LED 模块的电路连接在上一个实验中做过介绍,这里不再赘述,请阅读3.1.1.3 章节。

由于LED 灯不在同一个端口上,为了可以直接使用int 进行索引操作,程序中将IO 口的相关寄存器的地址声明为结构体并保存在数组中。

即首先声明了保存寄存器地址的结构:typedef struct{ const volatile uint8_t* PxIN;volatile uint8_t* PxOUT;volatile uint8_t* PxDIR;volatile uint8_t* PxREN;volatile uint8_t* PxSEL; } GPIO_TypeDef;之后声明所需操作的IO 端口的结构体GPIO4、GPIO5、GPIO8,如:const GPIO_TypeDef GPIO4 = { &P4IN, &P4OUT, &P4DIR, &P4REN, &P4SEL };const GPIO_TypeDef GPIO5 = { &P5IN, &P5OUT, &P5DIR, &P5REN, &P5SEL };const GPIO_TypeDef GPIO8 = { &P8IN, &P8OUT, &P8DIR, &P8REN, &P8SEL };程序分析编程思路设置各个引脚变量并且初始化,开启定时器XT1,然后循环检查按键是否按下,如果按下,就把IO 电平取反,并且延时100ms(此处用延时来确定了扫描频率)。

程序流程图:关键代码分析:宏定义和参数定义:typedefstruct//以指针形式定义P8口的各个寄存器{constvolatile uint8_t* PxIN; //定义一个不会被编译的无符号字符型变量volatile uint8_t* PxOUT;volatile uint8_t* PxDIR;volatile uint8_t* PxREN;volatile uint8_t* PxSEL;} GPIO_TypeDef;段式液晶显示参数对应关系:二实验分析1.编程思路在写程序操作段式液晶之前首先就是要先配置好系统时钟,即选为系统时钟配置合适的晶振,然后就是要配置好与段式液晶相连的IO 口,即确定相应IO 口的工作模式,再通过操作IO 口对段式液晶进行初始化,最后再通过控制IO 口使段式液晶显示出需要的信息来。

配置操作可直接读写MSP430f6638 内部LCD 驱动器相关寄存器来完成需设置P5.3,P5.4,P5.5 作为LCD 的COM 口,S0—S11 为LCD 的段选,清空LCD 寄存器,启动LCD 模块,配置相关的寄存器包括P5SEL、LCDBPCTL0、LCDBCTL0、LCDBMEMCTL、LCDBCTL0,寄存器详解可看文档介绍;显示过程首先确定位及其相应位的断码数据,即确定LCDMEM[x]的值,x 表示相应的位,可直接调用已有的液晶驱动函数来完成。

2.程序流程图:3.代码分析首先需要了解几个驱动函数的用法a) voidLCDSEG_SetDigit(intpos, int value);该函数的作用为在段式液晶的第pos位上显示数字value,其中1<=pos<=6,0<=value<=F,当value为-1时表示清除该位上数字的显示。

b) voidLCDSEG_DisplayNumber(int32_t num, intdppos);该函数的作用为在段式液晶上显示一个num的整数,dppos为小数点要显示的位置,0<=num<=999999,0<=dppos<=3,当dppos=0表示不显示小数点。

一实验原理本实验应用的是MSP430F6638 的IO 口中断,主板S7 上按键连接到P4.0 口,当S7 按键被按下时,P4.0 口电平由高变成低触发一个中断事件,然后在P4 口的中断函数中填写代码改变LED5 灯的状态。

按键模块原理图:LED指示灯模块原理图:二实验分析1.编程思路需要设置P4.5 口为输出状态以控制LED5 灯状态,还需要使能P4.0 口的上拉电阻,选择P4.0 口中断沿,使能中断,清中断标志位,然后进入等待状态,最后再写一个P4 口的中断服务函数,在函数中改变LED5灯的点亮状态。

当有按键被按下既产生了中断事件,程序转向中断服务函数并改变LED5灯的状态。

用到的寄存器有P4DIR、P4REN、P4OUT、P4IES、P4IFG、P4IE。

<msp430f6638.h>)WDTCTL = WDTPW + WDTHOLD; //关闭看门狗三实验步骤与现象实验步骤:1.打开开发软件IAR,创建一个MSP430f6638 的空工程;2.完成以上代码的编写;3.将代码编译下载到开发板中运行,将开发板上P17的1.0和4.5的两个接头分别用两根线连接,再将两根导线的另一端接触,观察LED5 灯灭状态。

实验现象:实验一ADC转换实验一实验原理模数转换器(ADC)是指将连续的模拟信号转换为离散的数字信号的器件。

真实世界的模拟信号,例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的数字形式。

在A/D 转换中,因为输入的模拟信号在时间上是连续的,而输出的数字信号是离散量,所以进行转换时只能按一定的时间间隔对输入的模拟信号进行采样,然后再把采样值转换为输出的数字量。

实验中通过旋转拨盘电位器(R13)改变ADC 端输入电压,然后依据电压高低分为几档通过LED1~LED5 显示出来。

拨盘电位器模块电路原理图:二程序分析1.编程思路熟悉了MSP430F6638 中的ADC12 模块原理之后便可对其控制寄存器进行配置,设计采样模式,时刻得到电位器的输出端电压值。

并通过其大小,设定范围从而来控制LED 灯的亮灭。

2.程序流程图4.实验步骤与现象实验步骤1. 根据编程思路设计结构与实现方法。

2. 按照流程图实现代码编写,并在编译器上进行编译改错。

3. 将程序烧入开发板中进行调试与检测。

4. 通过调节电位器查看LED 灯的变化是否符合设计要求。

实验现象实验二DAC 实验一实验原理数模转换模块(DAC)数模转换是将数字量转换为模拟电量(电流或电压),使输出的模拟电量与输入的数字量成正比。

实现这种转换功能的电路叫数模转换器(DAC)。

D/A 转换器基本上由4 个部分组成,即权电阻网络、运算放大器、基准电源和模拟开关。

数字量以串行或并行方式输入、存储于数字寄存器中,数字寄存器输出的各位数码,分别控制对应位的模拟电子开关,使数码为1 的位在位权网络上产生与其权值成正比的电流值,再由求和电路将各种权值相加,即得到数字量对应的模拟量。

DAC 模块电路原理图:T2为DAC的外接输出端口,对应于P7.6,输出电压最大值为VCC,最小值为GND。

相关文档
最新文档