课程设计说明书
题目名称: 微机原理与单片机综合实验
系 部: 计算机工程系 专业班级: 学 号: 学生姓名: 指导教师: 完成日期:
工程学院
课程设计评定意见
设计题目: 微机原理与单片机综合实验 学生姓名: 评定意见:
指导教师(签名):
评定成绩: 年 工程学院
月 日
课程设计任务书
2016/2017学年第一学期 2017 年1月9 日 专业 设计题目 起止时间 班级 课程名称 微机原理与单片机 微机原理与单片机综合实验 2017.1.9~2017.1.15 周数 1 指导教师 设计地点 设计目的: 1、熟悉DICE-598KIII实验系统。 2、理解单片机系统的结构、工作方式,C51编程设计等方法。 3、掌握发光二极管、数码管、键盘扫描及按键等的工作原理。 4、掌握单片机程序编写、调试、烧写的方法。 设计任务或主要技术指标: 1、实现2~8个发光二极管的闪烁控制。 2、实现一个数码管的显示控制。 3、实现一个开关的输入控制。 4、实现多路开关输入,多个数码管显示输出的控制。 设计进度与要求: 第1天:熟悉DICE-598KIII实验系统,完成发光二极管控制实验。 第2天:完成数码管控制实验和开关控制实验。 第3天:完成多路开关输入,多个数码管显示输出的综合实验 第4天:整理实验数据和结果,撰写报告。 第5天:提交报告并答辩。 主要参考书及参考资料: 1.单片微型计算机原理及应用-C语言版 姜志海 电子工业出版社 2.单片机原理及应用 周国运 中国水利水电出版社 3.DICE-598KIII实验系统操作指导书 启东计算机总厂有限公司 4.单片机原理与应用 汪烈军 西安交通大学出版社 5.51单片机C语言教程 郭天祥 电子工业出版社 教研室主任(签名) 系(部)主任(签名) 年 月 日
摘 要
为了更好的学习微机原理与单片机这门课程,并且以激发学生的学习积极性与学习单片机的欲望为目的,使学生进一步了解P1口的使用,理解LED七段数码管的显示控制原理。能够编写数码管显示驱动程序,熟悉接口程序调试方法。学习编程方法及调试技巧,做了发光二极管控制实验和数码管控制实验。获得了通过I/0口的控制以及对LED的控制,从而得到对发光二极管的控制和数码管的控制的结果。学到了如何熟练运用C851单片机以及烧写程序。
关键字:Keil uVision4软件编程、单片机、发光二极管、LED七段数码管
目 录
1.发光二极管控制实验................................................ 1
1.1实验步骤..................................................... 1 1.2实验要求..................................................... 3 1.3实验目的..................................................... 3 1.4实验内容..................................................... 3 1.5实验连线图................................................... 3 1.6 烧写程序 .................................................... 4 1.7 实验结果 .................................................... 4 1.8 程序清单 .................................................... 5 2.数码管控制实验.................................................... 7
2.1 实验步骤 .................................................... 7 2.2 实验要求 .................................................... 9 2.3 实验目的 .................................................... 9 2.4 实验连线图 .................................................. 9 2.5 烧写程序 ................................................... 10 2.6 实验结果 ................................................... 11 2.7 程序清单 ................................................... 11 总 结............................................................ 13 参考文献........................................................... 14
发光二极管控制实验
1.发光二极管控制实验
1.1实验步骤
将KCiLC软件打开,并新建工程选择ATC51,点击确定。如图1-1
图1-1 创建新的工程
创建新文件,把代码输入进去并改为后缀为.C的文件并保存。如图1-2
图1-2 生成c文件
1
发光二极管控制实验
点击源组并把刚才保存的.C文件添加进来。如图1-3
图1-3 添加c文件
生成hex格式文件,并点击确定。如图1-4
图1-4生成HEX文件
2
发光二极管控制实验
1.2实验要求
用按键控制灯泡的亮灭。在本次的课程设计中,是用两个按键控制四盏灯的亮灭,其中两盏为红灯,两盏为绿灯,“0”为实验灯的灭,则“1”为实验灯的亮,所以在按k1时,两盏绿灯亮;再按k2时,两盏红灯亮。
1.3实验目的
进一步了解P1口的使用,学习C语言编程方法及调试技巧。
1.4实验内容
P1.0接开关上拨为5V,左转弯灯闪亮,P1.1接开关为5V时右转弯灯闪亮,P1.0,P1.1接开关同时接5V或接地时,转弯灯均不闪亮。
1.5实验连线图
图1-6 实物连线
3
发光二极管控制实验
1.6 烧写程序
在keil仿真软件中勾选生成hex文件将编好的程序转换成以hex为后缀的文件,通过启东平台载入ATC51单片机。如图1-7
如图1-7 运用启东软件烧写程序
1.7 实验结果
P1.0 接K1,P1.1接K2,P1.4~P1.7接L1、L2、L7、L8,连续运行本程序,拨动开关K1、K2,应看到转弯灯正确闪亮。
拨动K1开关时两个黄灯闪烁。 如图1-8
图1-8 拨动K1开关时两个黄灯闪烁
4
发光二极管控制实验
拨动K2开关时两个红灯闪烁。如图1-9
图1-9 拨动K2开关时两个红灯闪烁
1.8 程序清单
#include void delay(unsigned int i) { unsigned int j,k; for(k=0;kfor(j=0;j<1000;j++); } void main(void) { unsigned int flag=0; P1=0xff; while(1) { if(P1_0==0 && P1_1!=0) { if(flag==0) {P1_4=0; 5 发光二极管控制实验 P1_5=0; P1_6=1; P1_7=1; delay(20); flag=1;} else if(flag==1) {P1_4=1; P1_5=1; P1_6=1; P1_7=1; delay(20); flag=0;} } else if(P1_1==0 && P1_0!=0) { if(flag==0) {P1_4=1; P1_5=1; P1_6=0; P1_7=0; delay(20); flag=1;} else if(flag==1) {P1_4=1; P1_5=1; P1_6=1; P1_7=1; delay(20); flag=0;} } else {P1_4=1; P1_5=1; P1_6=1; P1_7=1; } } } 6 数码管控制实验 2.数码管控制实验 2.1 实验步骤 将KCiLC软件打开,并新建工程选择ATC51,点击确定。如图2-1 图2-1创建新的工程 创建新文件,把代码输入进去并改为后缀为.C的文件并保存。如图2-2 图2-2生成c文件 7 数码管控制实验 点击源组并把刚才保存的.C文件添加进来。如图2-3 图2-3添加c文件 在生成hex格式文件前打钩,并点击确定。如图2-4 图2-4生成HEX文件 8 数码管控制实验 2.2 实验要求 通过ATC51单片机控制数码管动态显示数字。 2.3 实验目的 1. 熟悉ATC51的指令系统。 2. 掌握ATC51的原理与使用方法。 3. 熟悉DSP的I/O操作使用方法。 4. 了解SPI串行通信原理。 2.4 实验连线图 将JX10和JS、JX11和JLED 如图2-5 图2-5实物连线 9 数码管控制实验 2.5 烧写程序 把启东计算机总厂打开,先擦除原有程序,点击Flash调用,调用之前生成好的hex文件,并点击打开。如图2-6 图2-6 将HEX文件调到启东软件 最后点击自动烧写程序即可。如图2-7 图2-7 运用启东软件烧写程序 10 数码管控制实验 2.6 实验结果 烧写成功即可看到数字显示 如图2-8 图2-8 实验结果 2.7 程序清单 #include unsigned char code A[6] = { 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,};//定义数组A,用于LED上显示数字的顺序 unsigned char code CODE[6] = { 0xf8,0xf9,0xf8,0xb0,0xf8,0x92,};//定义数组CODE unsigned char code AODE[6] = { 0xF8,0xF9,0xA4,0xB0,0x99,0X92,};//定义数组AODE unsigned char DisplayData[8]; //定义无符号字符型显示数据 void DigDisplay() //段选 字形码口SW3 //位选 字位口SW4 //定义位地址 //定义显示和延时函数 11 数码管控制实验 { unsigned char i; unsigned int j; //定义无符号字符型变量i //定义无符号整型变量j for(i=0; i<6; i++) //用for循环来实现依次赋值 { PLACE = A[i]; } //定义主函数 //定义无符号字符型变量x //无限循环 //数组A赋给位选口PLACE LED = DisplayData[i]; //显示数据赋给段选口LED j = 200; while(j--); LED = 0x00; } //定义j初值 //定义while循环,跳出循环的条件 void main(void) { unsigned char x; while(1) {if(P1_0==1) //if语句,判断条件为P1_0是否为1 {for(x=5; x<6; x--) //for循环,依次把数组CODE的值赋给显示数据 {DisplayData[x] = CODE[x];} DigDisplay(); } else {for(x=5; x<6; x--) //for循环,依次把数组AODE的值赋给显示数据 {DisplayData[x] = AODE[x];} DigDisplay(); } //显示和延时函数 //显示和延时函数 } } 12 总 结 通过本次课程设计我们获益匪浅。让我深深的认识到了学习单片机要有电子技术方面的数字电路和模拟电路等方面的知识基础;也要有C语言编程的能力。要想成为单片机领域的佼佼者,我们首先要学好C语言,所以我们不能学到后面就忘了前面的知识,更应该将所学的知识紧紧的结合在一起,综合运用,所谓设计,就是要求创新,只有将知识综合运用起来才能真正的设计好。这次的课程设计既巩固了单片机的一些相关基本知识,又熟悉了Keil uVision4软件的相关操作。对一个整体的单片机设计项目,有了一定的认识,初步学会了一定的设计方法,明白了如何用这种方法去实现一个系统的设计。 在电子技术应用领域中,单片机的应用愈来愈多地应用到各行各业。目前,单片机正朝着大容量片上存储器、多功能i/o接口、宽范围工作电源和低功耗方向发展。要开发单片机的应用,不但要掌握单片机硬件和软件方面的知识,而且还要深入了解各应用系统的专业知识,只有将这两方面的知识融会贯通和有机结合,才能设计出优良的应用系统。一个好的工程设计师不仅要掌握单片机的工作原理,而且还要不断了解各公司最新芯片的结构和应用,在实际应用中找到最好的性能价格比。所以以后还要注意培养接受新知识的自学能力,掌握芯片发展动态。 同时也让我们找到了自己在某些知识上的欠缺,并通过这次机会得到弥补,取得进步! 13 参考文献 [1] 单片微型计算机原理及应用-C语言版 姜志海 电子工业出版社 [2] 单片机原理及应用 周国运 中国水利水电出版社 [3] DICE-598KIII实验系统操作指导书 启东计算机总厂有限公司 [4] 单片机原理与应用 汪烈军 西安交通大学出版社 [5] 51单片机C语言教程 郭天祥 电子工业出版社 14 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- dfix.cn 版权所有 湘ICP备2024080961号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务