- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机实验实验一
单片机原理实验报告
学生姓名 所在班级 实验组成员 实验成绩 吴双双 电子2班 吴炜 吴梅梅
实验一 使用 C 语言实现 A 口作为输入口、B 口作为输出口
【实验目的】
掌握利用 C 语言来实现 A 口作为输入口、B 口作为输出口的方法。
【实验设备】
1. 装有 Windows 系统和 μ’nSP? IDE 集成开发环境的 PC 机一台,μ’nSP?十六位单片机实验箱一 个。 2. 本实验用到的实验箱硬件模块为:SPCE061A 核心及周边电路模块(包含 32 个 I/O 口),发光二 极管电路模块,高低电平发生按键电路模块。
【实验结果】
1、源程序清单:
#includeSPCE061A.h
unsigned int KeyScan(void);
void Delay(void);
int main(void)
{
Unsigned int uiKey;
*P_IOA_Dir=0x0000;
*P_IOA_Attrib=0x0000;
* P_IOA_Data=0x0000;
*P_IOB_Dir=0xffff;
*P_IOB_Attrib=0xffff;
* P_IOB_Data=0x0000;
while(1)
{
uiKey=KeyScan();
if(uiKey!=0)
{
* P_IOB_Data=uiKey;
}
*P_Watchdog_Clear=0x0001;
}
}
unsigned int KeyScan(void)
{
unsigned int uiData;
unsigned int uiTemp;
uiData=*P_IOA_Data;
uiData=uiData0x00ff;
if(uiData1=0)
{
Delay();
uiTemp=*P_IOA_Data;
uiTemp=uiTemp0x00ff;
if(uiData1=uiTemp)
uiData=0;
}
return uiData;
}
void Delay(void)
{
unsigned int uiCount;
for(uiCount=0;iCount=3000;uiCount++)
{
*P_Watchdog_Clear=0x0001;
}
}
2、程序运行结果
现象描述当第一个按键按下时,第一个发光二 极管点亮
【实验总结】
2、实践是检验真理的唯一标准,学习只有多动手才能深刻的理解。实验不仅锻炼了我们的动手能力,也培养了同学的协作能力。
实验二定时器 Timer A/B
【实验目的】
1. 通过实验熟悉定时器 Timer A/B 的工作原理。 2. 掌握预置数单元 P_TimerA/B_Data 和定时控制单元 P_TimerA/B_Ctrl 的设置方3. 掌握定时器 Timer A/B 的编程方法。1. 装有 Windows 系统和 μ’nSP? IDE 集成开发环境的 PC 机一台,μ’nSP?十六位单片机实验箱一 个。 2. 本实验用到的实验箱硬件模块为:SPCE061A 核心及周边电路模块(包含 32 个 I/O 口),发光 二极管电路模块。1. 编程要求:编写一个汇编语言程序。 2. 实现功能:设置不同的计数初值、不同的占空比和不同的时钟源,IOB8 同时和一个发光二极管,用户可以通过观察二极管点亮的持续时间和熄灭持续的时间。 3. 实验现象:计数初值不同、占空比不同、时钟源不同,发光二极管的亮灭状态变化就不同。
【实验结果】
1、源程序清单:
#includeSPCE061A.h
int main(void)
{
*P_IOB_Dir=0xf0100;
*P_IOB_Attrib=0x0100;
* P_IOB_Data=0x0000;
*P_TimerA_Data=0xF800;
*P_TimerA_Ctrl=0x02B4;
While(1)
{
*P_Watchdog_Clear=0x0001;
}
2、程序运行结果
现象描述
【实验总结】
2.中断服务子程序流程图 IRQ0、IRQ1、IRQ2 中断服务子程序的流程图如图 1-42。IRQ1_TMA 中断中,先进行寄存器压栈保 护,IOA 口低四位输出电平翻转,以翻转 D4~D7 四个发光二极管亮灭状态,清 IRQ1_TMA 中断标志, 寄存器出栈,中断返回;IRQ1_TMB 中断中,同样先进行寄存器压栈保护,IOB 口低四位输出电平翻转, 以翻转 D8~D11 四个发光二极管亮灭状态,清 IRQ1_TMB 中断标志,寄存器出栈,中断返回; IRQ0_fosc/1024 中断中,先进行寄存器压栈保护,清 IRQ0_fosc/1024 中断标志,寄存器出栈,中断返回。
【实验结果】
1、源程序清单:
#include
文档评论(0)