南京邮电大学
课程设计П实验报告
模块名称_ _____凌阳单片机______ _
班级学号_______B080210
姓名__ ____ _ _______
指导老师_赵建立__叶玲__董恒梅霆_
开课时间 2011/2012 学年, 第一学期
实验1 熟悉’nSP™ IDE环境下的汇编程序和C程序的编写
一、实验目的
熟悉汇编程序和C程序的编写。编译程序,软件调试,观察并跟踪其结果,查看各个寄存器状态,等等。
二、实验设备
装有WINDOWS操作系统以及μ’nSP™ IDE仿真开发环境的PC机一台;十六位单片机实验板及扩展板。
三、实验原理
参照SPCE061A单片机教材和实验指导书熟悉凌阳单片机的开发环境。
四、流程图
汇编程序主程序流程图:
五、关键代码
汇编程序代码:
//===============================================================//
// Program: 计算1 to 100累加值
// Output: [sum] = 5050(十进制) 或 13BA(十六进制)
//===============================================================//
.RAM // 定义预定义 RAM 段
.var R_Sum; // 定义变量
.CODE //定义代码段
.public _main; // 对main程序段声明
_main:
r1 = 0x0001; // r1=[1..100]
r2 = 0x0000; // 寄存器清零
L_SumLoop:
r2 += r1; // 累计值存到寄存器r2
r1 += 1; // 下一个数值
cmp r1,100; // 加到100否
jna L_SumLoop; // 如果 r1 <= 100 跳到 L_SumLoop
[R_Sum] = r2; // 在R_Sum中保存最终结果
L_ProgramEndLoop: // 程序死循环
jmp L_ProgramEndLoop;
C程序代码:
//===============================================================//
// Program: 计算1 to 100累加值
// Output: [sum] = 5050(十进制) 或 13BA(十六进制)
//===============================================================//
int main()
{
int i, Sum=0;
for (i=0;i<=100;i++)
Sum = Sum + i; // Sum 是累加的结果
while(1){ }; // 程序死循环
// 用变量 Watch 窗口看 Sum 的值
}
六、实验结果
用RegisterWindow工具观察各个寄存器状态变化符合实际情况。
实验2 键盘与二极管实验
一、实验目的
通过本实验熟悉μ’nSP™ IDE单片机的I/O、定时器的使用方法、中断系统的使用。熟悉IDE开发环境的使用。
二、实验设备
装有WINDOWS操作系统以及SunPlus IDE仿真开发环境的PC机一台;十六位单片机实验板及扩展板。
三、实验原理
通过键盘扫描获得键值后分别控制二极管的亮灭;使用定时器产生不同的显示。
四、实验步骤
;
;
;
;
,编写主程序框架;
,编写汇编子程序;
;
();
,观察运行结果,寄存器状态等;
。
要求:对于每个不同的按键,分别有下列响应:;;;。
五、流程图
主函数流程图:
六、关键代码
//主程序main函数用C语言编写
int main(void)
{
int Key;
while(1)
{
Key=getkey();
switch(Key)
{
case 0xfffe: one();break;
case 0xfffd: two();break;
case 0xfffb: three();break;
case 0xfff7
凌阳单片机实验报告 来自淘豆网m.daumloan.com转载请标明出处.