第一篇:上海第二工业大学单片机实验实训实验报告8
单片机实验实训实验报告8 班级:10计科A1
学号:20123430074
姓名:贾强强
4.8 实验8 A/D转换器的使用1 实验目的:掌握ADC0809的工作原理。
实验要求:编写0809A/D转换程序,每隔1秒将A/D转换的结果显示在DS3和DS4两位上,以十六进制形式显示。
程序设计:由于读A/D转换的结果和刷新LED都要用到的P0口,因此,如果读取A/D转换结果频率太快,就会出现无法正确显示的现象,解决办法是由定时器T1,定时1秒,每秒启动A/D转换一次。因为T0中断太频繁,为保证T1进入中断可将T1和INT0中断设为高优先级。
程序源代码: ORG 0000H LJMP START ORG 0003H LJMP PINT0 ORG 000BH LJMP PPT0 ORG 001BH LJMP PPT1 ORG 0100H START: SETB IT0 SETB EA SETB EX0 SETB PX0 MOV TMOD,#12H MOV TH0,#0FBH MOV TL0,#0FBH SETB TR0 SETB ET0 MOV TH1,#0FH MOV TL1,#00H SETB ET1 SETB PT1 SETB TR1 SETB P3.6 SETB P1.4 CLR P3.6 CALL DELAY1MS SETB P3.6 MOV 20H,#50H MOV R7,#20 LOOP: CALL DISPLAY AGAIN:AJMP LOOP DELAY1MS: MOV R0,#100 LOOP1:MOV R1,#10 LOOP2:DJNZ R1,LOOP1 DJNZ R0,LOOP1 RET DISPLAY: MOV DPTR,#DPDATA MOV A,20H ANL A,#0FH CLR P2.1 MOVC A,@A+DPTR MOV P0,A CALL DELAY1MS SETB P2.1 MOV A,20H ANL A,#0F0H SWAP A CLR P2.0 MOVC A,@A+DPTR MOV P0,A CALL DELAY1MS SETB P2.0 RET DPDATA:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H
DB 0F8H,80H,98H,88H,83H,0E2H,0A1H,86H8EH PINT0:
CLR P3.7 MOV P0,#0FFH MOV A,P0 SETB P3.7 MOV 20H,A RETI PPT0: CPL P3.3 RETI PPT1:
MOV TH1,#0FH MOV TL0,#00H CLR TF1 DJNZ R7,RETN MOV R7,#20 SETB P3.6 SETB P1.4 CLR P3.6 CALL DELAY1MS SETB P3.6 RETN: RETI
END 实验心得:
回顾起此次课程设计,感觉受益匪浅,从拿到题目到完成整个编程,从理论 到实践,学到很多很多的课堂理论中没学到过的东西,在程序调试的过程中提高自己的发现问题、解决问题、实际动手和独立思考的能力。当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课设是对我的学习态度的一次检验。对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。
通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。这次课程设计能顺利的完成,除了我们的努力外,当然也离不开指导老师申老师的辛勤指导,致使我在设计的过程中学到了很多实用性的知识。同时,对给过我帮助的所有同学和各位指导老师表示忠心的感谢!
第二篇:上海第二工业大学单片机实验实训实验报告1
单片机实验实训实验报告1 班级:10计科A1
学号:20123430074
姓名:贾强强
第一章Keil教程
1.源文件的建立
1)启动uVision后,File->New,打开一个新的文本编辑窗口,在窗口中输入汇编语言程序
2)保存文件,扩展名一般用asm或a51.例如:exam1.asm 2.建立工程文件
1)点击Project->NewProject,出现对话框,输入工程名。点击保存。随后出现第二个对话框,选择CPU(这里选89C51),然后确定 2)工程详细设置
点击Project窗口中的Target1(Project->Optionfortarget’target1’)出现对话框,后面大部分页面默认就行 3.编译、连接
1)将源文件加入到工程
2)选择菜单Project->Build target 3)进入下一步调试
第二章 文件的下载操作
1.运行环境:FLIP2.4.6 2.实验步骤: 1)选择芯片
选择“Select device->AT89C51RC2” 2)选择要烧写的文件
单击Load HEX File,在对话框中选择要烧写的HEX文件 3)通信设置
单击“Set Communication->RS232/com1/9600波特“后单击Connect 4)下载烧写文件
单片机与PC连通后单击Run 5)运行
a.下载成功后,单击Start application b.拔掉w1短接调线,然后执行reset重启操作
4.1实验1 Keil及FLIP的使用
实验目的:熟悉Keil2单片机开发软件的使用方法;
熟悉在系统编程下软件FLIP的使用方法,同时利用Keil环境测试汇编语言指令
实验要求:测试如下指令
MOV A,R0;MOV A ,50H MOV A,@R0 MOV A,#20H 实验步骤:
(1)在C盘根目录创建test1的文件夹
(2)创建工程,名为:test1,放于test1文件夹中(3)创建源文件,名为:test1.asm,内容如下(4)将test1.asm加入工程,编译(5)如有错误进行修改
(6)调试(单击debug菜单下的start/stop debuge session,并进行单步跟踪,注意咯寄存器及内存单元变化)实验程序: ORG 0000H 3 MOV R0,#30H MOV 50H,#3AH MOV A,R0 MOV A,@R0 MOV A,20H MOV @R0,A END 4 实验心得:
回顾起此次课程设计,感觉受益匪浅,从拿到题目到完成整个编程,从理论到实践,学到很多很多的课堂理论中没学到过的东西,在程序调试的过程中提高自己的发现问题、解决问题、实际动手和独立思考的能力。当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课设是对我的学习态度的一次检验。对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。
通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。这次课程设计能顺利的完成,除了我们的努力外,当然也离不开指导老师申老师的辛勤指导,致使我在设计的过程中学到了很多实用性的知识。同时,对给过我帮助的所有同学和各位指导老师表示忠心的感谢!
第三篇:单片机PLC实训实验顺序
实验顺序:
1、水塔水位控制
2、机械手动作模拟
3、十字路口交通灯控制
4、LED数码显示(可考虑去掉)
第四篇:单片机实训
单片机应用课程设计教学大纲
开课学院:机电工程学院 适用专业:电子科学与技术 课程编号:2009404 课程英文名称:Single-chip Microcomputer Application System Design 实验课程总学时:36 实验课程总学分:1
一、课程性质和目的:
单片机原理及应用是一门技术性、应用性很强的学科,实验教学是它的一个极为重要的教学环节,除实验教学环节,单片机课程设计也是重要的实践教学环节,通过这一环节可使学生不但能够将课堂上学到的理论知识与实践应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能独立进行单片机应用系统的开发设计工作打良好的基础。
二、本课程与其它课程的联系与分工
先修课程:电路分析、模拟电路、数字电路、微机原理、单片机、电子线路常用软件 后续课程:传感器技术、数字信号处理等
三、单片机课程设计的基本要求
1、原则上每生一项设计,不能重复设计。
2、项目大的可多人从事,但每人必须承担足够的设计任务。
3、项目结题需要提供电路图、程序清单、设计说明书等资料,还要提供实物作品,运行照片等。
4、参加科技节展出及评奖的作品,要给与适量的加分。优秀的设计人员优先推荐参加省机电大赛或电子大赛。
5、整个课程设计过程中,严格执行考核制度,对于无故旷课、扰乱课堂秩序、玩游戏、玩手机、不从事设计和制作的行为给予严肃处理。
6、对于课堂表现好的同学,进行加分奖励。
四、课程设计的实施过程
1、基本开发工具的使用
电路设计及仿真运行工具Proteus软件、编程及编译环境Keil uVision软件、程序烧写器的使用及驱动程序的安装。
2、单片机应用系统的搭建方法
电源的设计、振荡电路参数的选择、复位电路的设计、内置及外置程序程序存储器的选择,各端口的驱动能力及接口方法。
3、学生实践能力的摸底测试
通过简单的单片机应用设计,如:流水灯、数码显示、键盘控制等,进行软环境编程测试及硬环境测试。
软环境测试:利用Proteus、Keil C51 进行仿真测试。硬环境测试:搭建具体电路,利用编程器烧写程序,进行调试。
4、选择设计题目
学生可根据自身能力和爱好,选择或自拟设计题目,并进行系统的分析和调研、可行性分析、性价比分析,形成设计任务书。指导教师处备案。
5、确定实施方案
经过方案论证,找出最优化的实施方案。以此评价开发思路。
6、加强指导
指导教师对学生的共性问题进行集中指导,对零散问题进行分别指导。
7、硬件电路设计
根据实施方案,利用Proteus软件设计原理图。原理图的质量作为考核依据。
8、软件设计
根据系统工作过程画出各部分流程图,根据流程图编写程序并进行整合,程序和流程图的质量作为考核依据。
9、仿真调试
编译后的程序加载到原理图上进行仿真,调试,调试成功后的仿真图片作为考核的依据。
10、电路搭建
根据电路原理图设计,进行布线图设计。购买电子元件,焊接线路板,线路板的焊接质量作为考核依据。
11、系统调试
系统调试成功之后,考察功能实现情况,作为考核依据。
12、撰写课程设计论文
要求从选题、论证、设计、仿真、调试、形成作品到感想写入论文内,要符合正规论文格式。
五、考核方案
1、考核分四部分进行:实物作品、课程设计论文、平时成绩、课堂表现
2、实物作品从实现功能和焊接质量进行评分,占总成绩的40%。
3、课程设计论文从论文的规格、要求进行评分,占总成绩的30%。
4、平时成绩就是平时阶段性的检查成绩,占总成绩的20%。
5、课堂表现指出勤、课堂纪律,占总成绩的10%。
6、科技节加分:一等奖5分、二等奖4分、三等奖3分、参展2分。
六、单片机课程设计题目(备选)
1、基于单片机的智能电压表设计
2、基于单片机的LED流水灯系统设计
3、基于单片机的智能船模设计
4、基于单片机的电梯控制模型设计
5、基于单片机的水位控制系统设计
6、基于单片机的多路数据采集系统设计
7、基于单片机的抢答器设计
8、基于单片机的数字温度计设计
9、基于单片机的智能小车设计
10、基于单片机的遥控器设计
11、基于单片机的串行通信发射机设计
12、基于单片机的简易智能电动车设计
13、基于单片机的太阳能热水器控制器设计
14、MCS-51单片机温度控制系统的设计
15、直流电动机的转速检测与脉宽调速
16、基于单片机的智能机器人的设计
17、基于单片机的简易无线竞赛系统的设计
18、基于单片机的车辆闯红灯监控系统设计
19、基于单片机控制的井下瓦斯监控系统设计 20、基于单片机的煤气泄漏检测报警装置设计
21、基于单片机的井式渗碳炉控制系统设计
22、基于单片机的蔬菜大棚温湿度智能控制系统设计
23、基于单片机的电子钟设计
24、基于单片机的液位控制器设计(8051)
25、基于单片机的点阵电子显示屏设计
26、基于单片机的智能寻迹避障小车设计
27、基于单片机的热敏电阻测温系统设计
28、基于单片机的智能型电话远程遥控器设计
29、基于单片机的数控直流电源设计 30、基于单片机的电子万年历设计
31、基于单片机的红外防盗报警器设计
32、基于单片机的花卉温室控温系统设计
33、基于单片机的焊机温度控制系统设计
34、基于单片机的路灯控制器设计
35、基于单片机的车床刀架控制系统设计
36、基于单片机的电机智能综合保护装置设计
37、基于单片机的太阳能热水器控制器设计
38、基于单片机的智能型矿用磁力启动器设计
39、基于单片机的无氧退火炉温控系统设计
40、基于单片机的电厂锅炉过热蒸汽温度监测系统设计
41、基于单片机的摩托车里程表研制
42、基于单片机的自动车库门的设计
43、基于单片机的自动滴灌控制系统的设计
44、基于单片机的预付费电度表设计
45、基于单片机的智能电子秤设计
46、基于单片机的油井巡视定位系统设计
47、基于单片机的照明控制系统
48、基于单片机的锅炉液位控制系统设计
49、基于单片机的洗衣机设计
50、基于单片机的锅炉汽包水位控制系统设计
51、基于单片机的多功能秒表设计
52、基于单片机的无线监护系统的设计
53、基于串行通信的红外线智能家电控制系统
54、基于单片机的智能遥控器设计
56、基于单片机的公用电话网远程控制器的设计
57、基于单片机的多功能节能微波炉控制器设计
58、基于单片机的多功能数显表设计(气压、冲击频率)
59、基于单片机的仓库温湿度测量仪设计 60、基于单片机的自动加料系统 62、基于单片机的远程温度显示系统
63、基于89C51单片机的传感器水位测量系统 64、基于51单片机的广告灯设计 65、基于单片机的水箱水位控制系统设计 66、动态电子秤设计
67、基于单片机的非接触式热量测量系统设计 68、基于单片机的非接触式位移传感器设计 69、基于单片机的非接触式温度测试仪设计 70、基于单片机的工业电加热炉的微机控制系统设计 71、基于单片机的户用超声波热量表设计 72、基于单片机的火灾自动探测报警系统设计 73、基于单片机的住宅智能化险情报警系统设计 74、基于单片机的数字温度测量及显示系统设计 75、火灾自动报警系统设计
76、基于GSM短信模块的家庭防盗报警系统 77、基于GSM模块的车载防盗系统设计 78、基于单片机的16×16点阵(滚动显示)79、基于单片机的仓库温湿度的监测系统 80、基于单片机的点阵电子显示屏设计 81、基于单片机的电子密码锁设计 82、基于单片机的温度远程显示实现 83、基于单片机的直流电机控制系统 84、基于单片机的自动加料机控制系统 85、数控直流稳压电源设计
86、智能型充电器的电源和显示的设计 87、基于CPLD的出租车计价器设计 88、基于IC卡的楼宇门禁系统的设计 89、基于SPCE061A的语音遥控小车设计 90、基于单片机的短信收发系统设计
91、智能机器人的研究与设计(自动循轨和语音控制的实现)92、PC机与单片机的串口通信 93、基于单片机的红外线防盗报警系统 94、基于单片机的转速测量系统设计 95、基于单片机的电梯控制模型设计与仿真
学习参考资料:
1、谢维成 杨加国:《单片机原理与应用及C51程序设计》,清华大学出版社,2009年7月第2版
2、彭伟主编:《单片机C语言程序设计实训100例——基于8051+Proteus仿真》,电子工业出版社,2009年6月第1版
3、周兴华主编:《手把手教你学单片机C程序设计》,北京航空航天大学出版社,2007年10月 第1版
学习参考网站:
http://xxgcxy.qdbhu.edu.cn/jsjdlzzsx/index.html http://www.xiexiebang.com
执笔人:陈振军
编写日期:2013年3月5日 审核人:
第五篇:单片机实验二实验报告
实验报告
课程名称:微机原理与接口技术
指导老师:李素敏
学生姓名:
学号:
专业: 自动化
日期:2014-04-10 地点:理工楼603
实验二
1.实验目的和要求
① 掌握keil软件和STC-ISP 软件的使用方法 ② 熟悉发光管的工作原理 ③ 通过编程体验发光管的延时闪烁及移位等功能
2.主要仪器设备
PC机
单片机学习开发套件(型号:89C52RC)
3.实验内容
①实验内容1:第一个发光管以间隔200ms闪烁
源程序:
#include
//宏定义
main(){
while(1){ P1=0xfe;delay(200);P1=0xff;delay(200);} } void delay(uint z)//延时函数,z的取值为这个函数的延时ms数 {
uint x,y;for(x=z;x>0;x--)
for(y=110;y>0;y--);
一台一件
}
实验结果说明:要使发光管闪烁,只需设置合适的时间延时即可。
②实验内容2 : 8个发光管由上至下间隔1s流动,其中每个管亮500ms,灭500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去。
源程序:
#include
#include
//宏定义
unsigned char a,b,k,j;
//定义五个字符变量 sbit beep=P2^3;// 定义蜂鸣器的接口
void delay(uint z)//延时函数,z的取值为这个函数的延时ms数 {
uint x,y;for(x=z;x>0;x--)
for(y=110;y>0;y--);}
void main(){
k=0xfe;//先给k一个初值11111110等待移位 while(1){
delay500ms();
beep=0;//打开蜂鸣器
delay500ms();//让它响500ms
beep=1;//关闭蜂鸣器
j=_crol_(k,1);//把k循环左移一位
k=j;//把移完的值再送给k
P1=j;//同时把值送到P1口点亮发光二极管 } //再次循环 }
实验结果说明:在此程序中用到了_crol_(k,l)函数,此函数的功能在于循环移位,在每次发光管闪烁相应时间后左移一位,把移完的值再送到P口,点亮对应的发光管。这样循环往复,达到发光管流动的效果。
③实验内容3 :用8个发光管演示出8位二进制数累加过程,即用8个二极管表示8个二进制位(亮为1,灭为0),依次以二进制形式显示0,1,2,……255。
源程序: #include
#include
//宏定义 #define uchar unsigned char //宏定义
void delay(uint z)//延时函数,z的取值为这个函数的延时ms数,{
uint x,y;for(x=z;x>0;x--)
for(y=110;y>0;y--);} void main()
//主函数 {
} uchar a;while(1)
//大循环 {
} a++;P1=~a;delay(200);
实验结果说明:在此定义一个无符号字符变量a,a的值进行累加,但是由于表示的二进制数要求亮为1,灭为0,与发光管的0亮1灭正好相反,所以将a的计数取反并设置相应延时,重复此过程就得到了在发光管上显示八位二进制数的累加过程。
④实验内容4 :间隔300ms第一次一个管亮流动一次,第二次两个管亮流动,依次到8个管亮,然后重复整个过程。
源程序:
#include
#include
void delay(uint z)//延时函数,z的取值为这个函数的延时ms数 {
uint x,y;for(x=z;x>0;x--)
for(y=110;y>0;y--);} void main()//主函数 { uchar a,i,j;while(1)//大循环
} {
} a=0xfe;//赋初值
for(j=0;j<8;j++){ for(i=0;i<8-j;i++)//左移
} {
P1=a;//点亮小灯
delay(300);//延时300毫秒
a=_crol_(a,1);//将a变量循环左移一位
} a=_crol_(a,j);//补齐,方便下面的左移一位 P1=0xff;//全部关闭
a=a<<1;//左移一位让多一个灯点亮
4.心得体会:此次实验中练习较多的就是闪烁和移位,在编程过程中,设置闪烁的时间必须达到人眼正常观察的要求,这就需要计算合适的闪烁时间,不停的尝试,最终选择适宜观察的时间间隔。发光管的循环移位时调用_crol_(k,l)函数
可以大大简化编程的行数。所以熟悉单片机的函数库,可以方便我们编程。所以在以后的实验中还得继续学习这个函数库,从而更轻松的完成实验内容。