当前位置:文档之家› 工作报告之大学单片机实验报告

工作报告之大学单片机实验报告

大学单片机实验报告【篇一:单片机实验报告】单片机实验报告姓名:班级:学号:任课教师:上课地点:实验一流水灯实验一、实验目的及要求1、闪烁的led;2、从左到右的流水灯;3、8只led左右来回点亮;4、led模拟交通灯。

要求1:led按设定的时间间隔闪烁要求2:接在p0口的8个led从左到右循环依次点亮,产生走马灯效果要求3:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果;二、实验原理电路图1、电路图2、三、源程序要求1:#includereg51.h#define uchar unsigned char #define uint unsigned int sbitled=p1^0; //延时void delayms(uint x) { uchar i; while(x--) {for(i=0;i120;i++); } } //主程序 void main() { while(1) {led=~led;delayms(150); } }要求2:#include reg51.h#include intrins.h //包含程序中的_cror_(p0,y) #define uchar unsigned char #define uint unsigned intuchar led;void delay(unsigned int i) { uint j; uchar k; for(j=i;j0;j--)for(k=125;k0;k--); }void main(){ led=0x7f;//只亮第一个 delay(1000); while(1) { p0=led;delay(500);led=_cror_(led,1);//p0逐步右移一位。

} }要求3:#include reg51.h#include intrins.h //包含程序中的_crol_(p0,y)#define uchar unsigned char #define uint unsigned intsbit led=p0^0; uchar i;void delay(unsigned int i) { uint j; uchar k; for(j=i;j0;j--)for(k=125;k0;k--); }void main() { p0=0xfe; delay(1000); while(1) {for(i=0;i8;i++) {p0=led;delay(500);led=_crol_(led,1); }for(i=0;i8;i++){p0=led;delay(500);led=_cror_(led,1); }} }//p0逐步左移一位。

//p0逐步右移一位实验二独立键盘实验一、实验目的1、k1-k4 按键状态显示;2、k1-k4 控制led移位;3、单只数码管循环显示0~9;4、k1-k4 控制数码管移位显示。

要求1:k1、k2按下时led点亮,松开时熄灭,k3、k4按下并释放时led点亮,再次按下并释放时熄灭;要求2:按下k1时,p0口led上移一位;按下k2时,p0口led 下移一位;按下k3时,p2口led上移一位;按下k4时,p2口led下移一位;要求3:主程序中的循环语句反复将0~9的段码送至p0口,使数字0~9循环显示;要求4:按下k1时加1计数并增加显示位,按下k2时减1计数并减少显示位,按下k3时清零二、实验原理电路图1、电路图2、电路图3、电路图4、【篇二:单片机实验报告】单片机原理与应用实验报告学校:合肥工业大学姓名:杨敏宇学号:20112597班级:计算机科学与技术11-4班目录第一章 mc51 单片机原理及应用软件实验实验1:系统认识实验---------------------4 实验6:数据排序实验(验证性)---------- 9第二章 mc51 单片机原理及应用硬件实验实验1:广告灯实验----------------------12 实验2:p1 口实验(验证性)-------------16 实验16:串口转并口实验 ----------------25一.单片机原理实验的任务单片机原理实验是单片机原理及应用课程的一部分,它的任务是: 1.通过实验进一步了解和掌握单片机原理的基本概念、单片机应用系统的硬件设计及调试方法。

2.学习和掌握单片机应用系统程序设计技术。

3.提高应用计算机的能力及水平,提高逻辑动手能力。

二.实验设备单片机实验所使用的设备由计算机、单片机实验开发系统(,其中计算机是软件开发平台,主要完成程序编辑、编译、下载程序等任务;单片机实验开发系统是硬件开发平台,是基于51/196 单片机的扩展实验系统。

计算机和单片机实验开发系统之间是通过rs232 串行接口进行通信的。

单片机实验开发系统配有开关电源、单片机、晶振、存储器、可编程并行接口芯片、键盘显示控制芯片、24 键键盘、六位led 数码管显示、a/d 及d/a 转换芯片、简单输出口2个、简单输入口1 个、逻辑电平输入开关、发光二极管显示电路,并配有小直流电机、步进电机、继电器、音响等驱动电路。

在计算机软件的控制下可完成单片机基本实验及综合设计性实验项目。

所有的mcs51 单片机原理及应用课程实验都是在这套实验系统上完成的。

keil与proteus的联合使用: keil c51 6.02的使用:1.打开keil,新建一个程序文件(file--new),在上面输入要调试的程序,保存为*.asm格式;2.新建一个工程(project--newproject),保存,在cpu选项了选择atmel--at89c51,点击确定,在弹出的选项框中选择“否”。

3.在project workspace选框中,选择你新建的工程,右击,选择options for targettarget(你起的工程名),选择debug,选择proteus vsm monitor 51 driver,点击确定.4.在source group上右击,选择add files to groupsourcegroup(工程名),在文件类型里选择all files (*.*),找到刚才保存的.asm文件.5.调试程序: 选择编译连接程序,保证其全部正确.第一章mc51 单片机原理及应用软件实验实验1:系统认识实验1.实验目的(1)了解zy15mcu12bc2单片机实验开发装置的接线与安排。

掌握实验箱内拨位开关kf,kc的使用方法。

(2)通过实例程序的编辑、编译、链接及调试,熟悉keil c51软件的使用方法和基本操作。

(3)教育学生爱抚实验装置,养成良好的实验习惯。

2.试验设备(1)zy15mcu12bc2单片机实验开发装置一台。

(2)pc系列微机及相关软件。

3.试验内容(2)开启pc机及实验开发装置,启动keil c51软件进入uvision2集成开发环境。

(3)确认拨位开关kf的开关为a端,确认89c51处于仿真状态。

(4)在uvision2开发平台上建立并编辑示例程序:计算n个数求和程序。

其中n个数分别放在片内ram区50h到55h单元中,n=6,求和的结果放在片内ram区03h(高位)和04h(低位)单元【篇三:单片机实验报告山东大学 (6000字)】第三单元proteus 系统仿真实验实验一基本并行口i/o口实验自我完成实验1、实验要求当按键 sw1 按下之后,d1-d8 轮流点亮,点亮时间为 100ms,当按键停下后,停止轮换,再次按下后继续轮换。

2、编程思路①进行初始化工作,包括设置堆栈指针 sp,将 p2 口所有位设置为1,使 p2 口所接发光二极管全部熄灭。

将显示缓冲单元(设为 20h 单元)初始化为 feh。

②从 p1 口读数据,查看 p1.0 位,如果 p1.0 位为 0,则执行如下循环:将显示缓冲单元的值送给 p2 口,调用 100ms 延时程序,将显示缓冲单元的值循环左移 1 位,再送回显示缓冲单元。

如果 p1.0 位不为 0 则不执行上述循环。

③重复上面的操作②3、实验步骤①根据上述实验内容,参考 1.2.2,在 proteus 环境下建立图 3.5 所示原理图,并将其保存为 basicio_self.dsn 文件。

②根据(2)和(3)编写控制源程序,将其保存为basicio_self.asm。

③将源程序添加到 u1 中,并构造(build)该程序。

④执行仿真过程观察 d1-d8 的指示,查看程序功能是否正确。

⑤修改延时程序延时参数,重新执行③和④。

4、源程序org 0000hajmp mainorg 0030hmain:mov sp,#60hmov p2,#0ffhmov a,#0fehmov 20h,a;缓冲单元loop:jnb p1.0,loop1; ;如果p1.0=0,跳转sjmp loop ;否则循环不断检测loop1:;mov p2,20h ;将缓冲单元内的值给p2口 lcall delay100ms ;延时100ms mov a,20h rl a ;左移一位 mov 20h,ajb p1.0,loop;如果p1.0=1,跳转到loop处ljmp loop1;否则循环delay100ms:mov r7,#200 ;1usdl:mov r6,#248 ;1usdjnz r6,$ ;248*2=496usnop ;1usdjnz r7,dl ;2usret;(496+1+1+2)*200+1=100.001msend5、电路图6、仿真结果当按键 sw1 按下之后,d1-d8 轮流点亮,点亮时间为 100ms,当按键停下后,停止轮换,再次按下后继续轮换。

实验二扩展并行i/o口实验自我完成实验1、实验要求仿真实现交通信号灯控制功能。

控制顺序为:①南北绿灯亮,同时东西红灯亮 10s;②南北黄灯亮,同时东西红灯亮 2s;③南北红灯亮,同时东西绿灯亮 10s;④东西黄灯亮,同时南北红灯亮 2s;⑤重复①~④。

2、编程思路①进行初始化工作,包括设置堆栈指针 sp,将两个 373 的输出口所有位均设置为 1,使所有发光二极管全部熄灭。

②分析两个 373 的地址:假定所有无关地址均定义为 1,那么 u4 的锁存地址为:#0fe00h,u5 的锁存地址为:#0fd00h。

③分析 4 个状态下两个 373 的输出数据值:假定“南北绿灯亮,同时东西红灯亮”为状态 1,即:stat1;“南北黄灯亮,同时东西红灯亮”为状态 2,即:stat2;“南北红灯亮,同时东西绿灯亮”为状态 3,即:stat3;“东西黄灯亮,同时南北红灯亮”为状态 4,即:stat4。

3、实验步骤①根据上述实验内容,参考 1.2.2,在 proteus 环境下建立图 3.7 所示原理图,并将其保存为 expandio_self.dsn 文件。

相关主题