第一篇:《单片机与外围电路设计》课程设计大纲(模版)
《单片机与外围电路设计》课程设计大纲
一、基本信息
1、课程中文名称:单片机与外围电路设计课程设计
2、课程英文名称:Course Design of Single-Chip Microcomputer
and its Peripheral Circuit Design3、课程编号:XX X XXX6位,1-2位为开课学院代码,3位为开课层次(研究生0、本科
1、专科2),4-6位为课程序号。在不同学期开设的课程应设置不同的代码。非单独设置的实验课程依所属课程代码。课程编号应与教务综合管理系统中所用编号一致。
4、课程类别:专业课(专业理论课、专业技术课、专业实验课)。
5、课程性质:专业选修课
6、适用层次:汉族本科
7、适用专业:计算机科学与技术、通信工程
8、开课学期:第5学期
9、学时:两周10、学分:1
二、实践教学目标与基本要求
随着就业形势日趋严峻,大学生的动手能力、实践能力和综合素质越来越受到学校和用人单位的重视,在大学期间,课程设计是培养和锻炼动手、实践能力和综合素质的一个重要环节,通过本课程设计能使学生对所学到的单片机知识进行一次综合实践,掌握单片机各主要知识点。
学生应了解单片机技术在家用电器以及自动控制工程中的应用,熟悉单片机的原理与结构。通过实验、实训和一些单片机项目的制作,掌握单片机指令系统、结构原理、接口技术,以及单片机应用系统开发、设计的基本技能。
三、选题
可供选题如下:(每三人一组,要求同时用汇编、C语言实现,并画出电路图;总课程设计时间为两周,在结束时须提交作品和课程设计论文)
(1)万年历设计(LCD显示)
(2)定时闹铃(LCD显示)
(3)定时闹钟(ds1302)
(4)音乐倒数定时器
(5)密码锁控制
(6)可存储式电子琴
(7)电子抢答器设计
(8)串行通信设计
(9)数显交通灯设计
(10)步进电机控制设计
(11)I2C总线器件使用(LCD显示)
(12)用12864设计的指针式电子钟
(13)用1602与ds18b20设计的温度报警器
(14)用ADC0808设计的调温报警器
(15)温度控制直流电机转速
(16)用DAC0808设计的直流电机调速器
(17)用74LS595与74LS154设计的16*16点阵屏
(18)用数码管设计的可调式电子钟
(19)简易计算器设计
(20)多路数字温度测量系统
(21)直流电动机的转速检测与脉宽调速
(22)基于单片机的交通灯控制器设计
(23)基于单片机的路灯控制器设计
(24)基于51单片机的广告灯设计
(25)基于单片机的USB接口设计
(26)PC机与单片机的串口通信
四、仪器设备配置
硬件工具:计算机基本的焊接工具万用表
软件工具:WINDOWS操作系统 汇编编译器及连接器
高级语言编译器 单片机仿真程序
五、教材与教学参考书
建议实验指导书:
单片机C语言程序设计实训100例,彭伟,北京:电子工业出版社,2009.6,第四次印刷
单片机课程设计指导,楼然苗,北京:北京航空航天大学出版社,2007.1,第五次印刷
六、实验(实习)报告
课程设计报告是课程设计工作的总结和提高,课程设计报告应该反映出学生在课程设计过程中所做的主要工作和取得的主要成果,以及心得体会。学生必须以积极认真、严谨求实的态度完成课程设计报告的撰写。
课程设计报告编写基本要求:
1、每个学生必须独立完成课程设计报告;
2、课程设计报告应书写规范、文字通顺、图表清晰、数据完整、结论明确;
3、课程设计报告应附参考文献;
4、课程设计报告不少于5000字,必须附有必要的结构图、流程图及测试结果等项内容。
(一)格式要求:
1、封面(统一格式)
2、课程设计任务书(统一格式)
3、报告内容:
(1)题目
(2)姓名###,专业###,年级###,学号###
(3)摘要
(4)方案论证及概述
①所作题目的意义、本人所做的工作;②系统的主要功能。
(5)电路设计
原理简述:①应用系统的基本原理;②电路原理;③外围设备器件工作原理。
(6)调试及性能分析
(7)结果(分析、讨论)
(8)参考文献
4、附件:
附A、原理图
附B、课程设计的体会(想法与建议)
附C、学生反映意见表
(二)课程设计报告文字编写格式和装订要求
1、设计报告一律要使用A4纸打印成文。
2、字间距设置为“标准”;
3、段落设置为“固定值22磅”;
4、字号设置为:
标题:宋体二号加粗;
正文一级标题:宋体四号加粗;
正文二级标题:宋体小四号加粗;
其余汉字均为宋体小四号;
正文中所有非汉字均为Times New Roman 体;
5、设计报告装订的顺序是:封面、正文、封底(留有指导教师的评阅空间)。
七、考核
课程设计成绩考核,应以学生对待设计的态度,设计中的动手能力和水平,课程设计说明书、设计总结报告的质量及实际动手能力几个方面的情况,对学生进行综合考核,按优、良、中、及格和不及格五个等级评分。成绩通过课程设计表现、动手能力和课程设计报告综合评定学生设计成绩。其中考勤占15%,动手能力和课程设计效果占50%,课程设计报告和总结占35%。
1、优秀(成绩>90)
课程设计态度端正,无缺勤和违纪,劳动刻苦、勤奋,工作积极主动;全面完成大纲要求,实际操作能力强,理论联系实际好,作业质量高,内容正确,课程设计报告全面系统,考试中回答问题正确完满。
2、良好(80<成绩≤90)
课程设计态度端正,无违纪现象,工作积极主动,较好完成大纲要求,有一定的实际操作能力,能理论联系实际,虚心学习,作业内容正确,课程设计报告全面系统,考试中能较完满正确地回答问题。
3、中等(70<成绩≤80)
学习态度基本正确,无违纪现象;有一定的实际操作能力,能理论联系实际,作业内容基本正确,达到课程设计大纲的要求,考核中能正确回答基本问题。
4、及格(60<成绩≤70)
课程设计态度基本正确,达到课程设计大纲的基本要求。能完成课程设计作业和课程设计报告,内容基本正确,考试中能回答基本问题。
5、不及格(成绩<60)
凡属下列条件之一者,均以不及格处理。
①未达到及格要求者;
②因故缺勤时间三分之一以上者。
第二篇:单片机外围电路设计及C语言编程视频
单片机外围电路设计及C语言编程视频教程介绍
这是一部学单片机革命性的视频教程,教程全部十二讲,每讲3小时左右,讲座从最基本的预备知识开始讲起,非常详细的讲解KEIL编译器的使用,包括软件仿真,测定时间,单步运行,全速运行,设置断点,调试,硬件仿真调试,变量观察等,整个过程全部用单片机的C语言讲解,从C语言的第一个主函数MAIN讲起,一步步一条条讲解每一个语法,每条指令的意思,即使对单片机一巧不能,对C语言一无所知,通过本课程十节课的内容也可以让你轻松掌握51单片机的C语言编程设计,全新的讲课风格跳过复杂的单片机内部结构知识,首先从单片机的应用讲起一步步深入到内部结构,让学生彻底掌握其实际应用方法,把51单片机的所有应用每个部分都讲解的非常仔细,在讲解单片机应用的同时将单片机的常用外围电路设计及电阻,电容选值等都讲的清清楚楚,教师在教室前面用电脑一条一条写程序,旁边用TX-1C单片机实验板一个实验一个的演示,给学员解释每条指令的意思及原理,通过十天的时间让学生完全掌握单片机的C语言编程及单片机外围电路设计的思想。全程的屏幕,声音,用屏幕录像,实验板现象用摄像头拍摄,这部教程算是国内首个如此创新的以教师亲自实践为主,学员现场写程序,直接下载到实验板看现象,讲单片机的视频教程,只要你认真看,认真听,保证十天让你学会单片机应用和C语言编程。
教师推荐书籍如下:
1.如果要学C语言基本知识请看 谭浩强写的《C程序设计》 教师推荐的单片机书籍为以下两本: 2.新编MCS-51单片机应用设计 哈尔滨工业大学出版社
张毅刚
上书主要以汇编语言为主,对单片机内部结构介绍较详细,初学者可选择本书,在听讲本课程的同时,不但学会了C语言,而且通过查看本书还可了解汇编语言。3.8051系列单片机C程序设计完全手册 人民邮电出版社
求是科技
第三篇:单片机课程设计(实习)大纲
单片机及应用
课程设计(实习)大纲
一、单片机课程设计(实习)目的和任务
单片机课程设计(实习)主要达到以下目的:
(1)使学生增进对MCS51单片机电路的感性认识,加深对理论方面的理解。
(2)使学生掌握软硬件的有关知识等。
(3)使学生了解和掌握软硬件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。
(4)通过简单课题的设计练习,可使学生了解必须提交的各项工程文件,也达到巩固、充实和综合运用所学知识解决实际问题的目的。
单片机课程设计(实习)应能加强学生如下能力的培养:
(1)独立工作能力和创造力;
(2)综合运用专业及基础知识,解决实际工程技术问题的能力。
(3)查阅图书资料、产品手册和各种工具书的能力;
(4)工程绘图的能力;
(5)写技术报告和编制技术资料的能力。
二、单片机课程设计(实习)内容及要求
(1)初步了解电路图设计方法
(2)分析给定电路图
(3)电路焊接
(4)设计简单程序
三.单片机课程设计(实习)步骤
1、明确任务和查阅资料;
2.电路分析;
3、画出电路硬件原理图(用PROTEL);
4、电路焊接;
5、编写源程序文件;
6、上机调试软件;
7、编写实习报告;
8、答辩;
四、成绩评定方法
根据完成文件的份量与质量,体现的水平及设计时教师通过检查、指导对学生独立能力的了解,结合答辩情况,综合后给每一位学生的课程设计(实习)评定一个成绩。
成绩分为优、良、中、及格、不及格。
第四篇:单片机课程设计
设计题目: 单片机课程设计
学生姓名:
学
院: 电气与信息工程学院
班
级: 电子111班 指导教师:
日 期: 2014年9月20日
一、课程设计目的:
了解电子元器件的功能与原理,掌握单片机的结构和原理,学会使用单片机应用开发技术的相关软件如 keill、STC_ISP_V394等,能够使用c语言的语言编程简单的功能。
二、设计的思想:
利用所提供的单片机和开发板的原理图用keill软件编程程序以实现一些功能。然后用STC_ISP_V394.exe软件将编译完全正确的程序生成的hxe文件下载到开发板上,再调试编译的程序能否实现其所设计的功能。
1、对蜂鸣器的了解:
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,它由振荡器、电磁线圈、磁铁、振动膜片及外壳组成,接通电源后,振荡器产生的音频信号由电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性的振动发声。
2、设计:
我们所使用的开发板实物图如图一,单片机对右上角蜂鸣器的控制是加入三极管接入vcc,单片机的第22引脚和负极上,以此来控制蜂鸣器工作。单片机我们选择STC89C52RC+1602液晶来实现对蜂鸣器的控制及显示所需要的信息。
图一 调试说明:
首先用Keil软件创建一个工程,将程序源代码输入并编译生成单片可执行的.hex文件。其次,打开单片机实践板的电源,接好串口线,用STC-ISP烧录软件,将.hex文件烧录入单片机中。程序下载完毕后,单片机会自动执行程序功能。最后,观察程序功能的执行情况,看是否达到了设计要求。
如果单片机实践板硬件电路的执行结果与设计结果一致,则说明设计过程及流程没有问题,完全符合设计要求。否则,先检查单片机实践板的硬件电路是否完好,是否有断点、漏焊、虚焊以及元器件是否完好等情况,排除故障重新连接后重新进行调试。如果仍然无法正
常实现,则说明程序编写有误,需要认真检查程序流程,然后经过反复的修改与调试排除故障,实现设计要求的各项功能。编译和烧写该程序到单片机:
(1)用Keil编译上面的代码,并设置产生16进制代码文件*.hex.(2)用专用下载线,连接好实验板和电脑串口(DB9)(2)运行hex文件烧写软件STC_ISP_V394.exe
选单片机的型号,并打开编译产生好的hex文件
点击下载,给开发板上电。
3、实现的功能:使用单片机将歌曲《八月桂花》的调子通过蜂鸣器播放出来,用1602液晶将想要表达的信息有步骤地显示在液晶显示屏上,并且调子与显示内容可以任意通过修改的程序烧录到单片机内,实现设计产品的使用性与灵活性。
三、实验程序:
/************************************************************************
[主题] C51音乐程序《八月桂花》
[功能]
通过单片机演奏音乐,显示一些内容
/**********************************************************************/
#include
#include
//本例采用89C52, 晶振为11.0592MHZ
//关于如何编制音乐代码, 其实十分简单,各位可以看以下代码.//频率常数即音乐术语中的音调,而节拍常数即音乐术语中的多少拍;
//所以拿出谱子, 试探编吧!
unsigned char i=0;sbit Beep = P2^7;
unsigned char p,m;
//m为频率常数变量
unsigned char n=0;//n为节拍常数变量
unsigned char code music_tab[] ={
0x18, 0x30, 0x1C , 0x10, //格式为: 频率常数, 节拍常数, 频率常数, 节拍常数,0x20, 0x40, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x10,0x1C, 0x10, 0x18 , 0x40,0x1C, 0x20, 0x20 , 0x20,0x1C, 0x20, 0x18 , 0x20,0x20, 0x80, 0xFF , 0x20,0x30, 0x1C, 0x10 , 0x18,0x20, 0x15, 0x20 , 0x1C,0x20, 0x20, 0x20 , 0x26,0x40, 0x20, 0x20 , 0x2B,0x20, 0x26, 0x20 , 0x20,0x20, 0x30, 0x80 , 0xFF,0x20, 0x20, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x20,0x26, 0x20, 0x2B , 0x20,0x30, 0x20, 0x2B , 0x40,0x20, 0x20, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x20,0x26, 0x20, 0x2B , 0x20,0x30, 0x20, 0x2B , 0x40,0x20, 0x30, 0x1C , 0x10,0x18, 0x20, 0x15 , 0x20,0x1C, 0x20, 0x20 , 0x20,0x26, 0x40, 0x20 , 0x20,0x2B, 0x20, 0x26 , 0x20,0x20, 0x20, 0x30 , 0x80,0x20, 0x30, 0x1C , 0x10,0x20, 0x10, 0x1C , 0x10,0x20, 0x20, 0x26 , 0x20,0x2B, 0x20, 0x30 , 0x20,0x2B, 0x40, 0x20 , 0x15,0x1F, 0x05, 0x20 , 0x10,0x1C, 0x10, 0x20 , 0x20,0x26, 0x20, 0x2B , 0x20,0x30, 0x20, 0x2B , 0x40,0x20, 0x30, 0x1C , 0x10,0x18, 0x20, 0x15 , 0x20,0x1C, 0x20, 0x20 , 0x20,0x26, 0x40, 0x20 , 0x20,0x2B, 0x20, 0x26 , 0x20,0x20, 0x20, 0x30 , 0x30,0x20, 0x30, 0x1C , 0x10,0x18, 0x40, 0x1C , 0x20,0x20, 0x20, 0x26 , 0x40,0x13, 0x60, 0x18 , 0x20,0x15, 0x40, 0x13 , 0x40,0x18, 0x80, 0x00
};
void int0()interrupt 1
//采用中断0 控制节拍
{ TH0=0xd8;
TL0=0xef;
n--;
}
void delay(unsigned char m)
//控制频率延时
{
unsigned i=3*m;
while(--i);
}
void delayms(unsigned char a)//豪秒延时子程序
{
while(--a);
//采用while(--a)不要采用while(a--);各位可编译一下看看汇编结果就知道了!
}
typedef unsigned char BYTE;typedef bit BOOL;
sbit LCD_RS = P2^0;
sbit LCD_RW = P2^1;sbit LCD_EP = P2^2;
BYTE code dis1[] = {“
WLCOME TO
”};BYTE code dis2[] = {“
DanPianJi ”};BYTE code dis3[] = {“
111iZnaiD
”};BYTE code dis4[] = {“
eiXeiX ”};
delays(int ms){
// 延时子程序 int i;while(ms--){
for(i = 0;i< 250;i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
} } }
BOOL lcd_bz(){
// 测试LCD忙碌状态 BOOL result;LCD_RS = 0;LCD_RW = 1;LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();result =(BOOL)(P0 & 0x80);LCD_EP = 0;return result;}
lcd_wcmd(BYTE cmd){
while(lcd_bz());LCD_RS = 0;LCD_RW = 0;LCD_EP = 0;_nop_();_nop_();P0 = cmd;_nop_();_nop_();_nop_();_nop_();LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();LCD_EP = 0;
}
lcd_pos(BYTE pos){
lcd_wcmd(pos | 0x80);
// 写入指令数据到LCD //设定显示位置
}
lcd_wdat(BYTE dat)
{
//写入字符显示数据到LCD while(lcd_bz());LCD_RS = 1;LCD_RW = 0;LCD_EP = 0;P0 = dat;_nop_();_nop_();_nop_();_nop_();LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();LCD_EP = 0;}
lcd_init(){
lcd_wcmd(0x38);
delays(1);lcd_wcmd(0x0c);
delays(1);lcd_wcmd(0x06);
delays(1);lcd_wcmd(0x01);
delays(1);}
void main()
{
BYTE j;
lcd_init();
delays(10);
//LCD初始化设定
//16*2显示,5*7点阵,8位数据//显示开,关光标 //移动光标 //清除LCD的显示内容
// 初始化LCD
lcd_wcmd(0x06);
//向右移动光标
lcd_pos(0);
//设置显示位置为第一行的第1个字符
j = 0;
while(dis1[ j ]!= ' ')
{
//显示字符“Welcome TO”
lcd_wdat(dis1[ j ]);
j++;
delays(30);
//控制两字之间显示速度
}
lcd_pos(0x40);
j = 0;
while(dis2[ j ]!= ' ')
{
lcd_wdat(dis2[ j ]);
j++;
delays(30);
}
delays(800);
lcd_wcmd(0x01);
delays(1);
lcd_wcmd(0x04);
lcd_pos(15);
j = 0;
while(dis3[ j ]!= ' ')
{
lcd_wdat(dis3[ j ]);
j++;
delays(30);
}
lcd_pos(0x4F);
j= 0;
while(dis4[ j ]!= ' ')
{
lcd_wdat(dis4[ j ]);
j++;
delays(30);
}
delays(800);
//设置显示位置为第二行第1个字符 //显示字符“ DanPianJi ”
//控制两字之间显示速度
//控制停留时间
//清除LCD的显示内容
//向左移动光标
//设置显示位置为第一行的第16个字符
//显示字符“DianZi111”
//控制两字之间显示速度
//设置显示位置为第二行的第16个字符//显示字符“ XieXie ”
//控制两字之间显示速度
//控制停留时间
TMOD&=0x0f;
TMOD|=0x01;
TH0=0xd8;TL0=0xef;
IE=0x82;
play:
while(1)
{
a: p=music_tab[i];
if(p==0x00)
{ i=0, delayms(1000);goto play;}
//如果碰到结束符,延时1秒,回到开始再来一遍
else if(p==0xff){ i=i+1;delayms(100),TR0=0;goto a;} //若碰到休止符,延时100ms,继续取下一音符
else
{m=music_tab[i++], n=music_tab[i++];} //取频率常数 和 节拍常数
TR0=1;
//开定时器1
while(n!=0)Beep=~Beep,delay(m);
//等待节拍完成, 通过P1口输出音频(可多声道哦!)
TR0=0;
//关定时器1
}
}
四、电路图的protue仿真
五、单片机课程设计心得体会:
这个学期的单片机课已经早早的上完了,但是理论纯属理论,没有与实践的结合总让我们学的不踏实,感觉没有达到学以致用的效果。所庆幸的是在课程介绍考试完之后,老师给我们安排了这次单片机课程设计,给了我们学以致用的做好的实践
关于这次课程设计,我们花费了比较多的心思,既是对课程理论内容的一次复习和巩固,还让我们丰富了更多与该专业相关的其他知识,比如软件应用等,在摸索中学习,在摸索中成长,在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获,在真正设计之前我们做了相当丰富的准备,首先巩固一下课程理论,再一遍熟悉课程知识的构架,然后结合加以理论分析、总结,有了一个清晰的思路和一个完整的的软件流程图之后才着手设计。在设计程序时,我们不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;养成注释程序的好习惯是非常必要的,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也能为资料的保存和交流提供了方便;我觉得在设计课程过程中遇到问题是很正常,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计又出错了。
除了对此次设计的准备工作之外,我们还学到了很多平时难得的东西,首先是团队协作,在这次设计当中,难免和同学产生观点和意见的分歧,以及分工明细、时间安排等不合理,通过这次设计,我们体会到了团结合作的重要性及力量之强大,还有让我们处理事情更加有条理,思路更加清晰明了了,发现、提出、分析、解决问题和实践能力的提高都将受益于我在以后的学习、工作和生活中。
除了对此次设计的准备工作之外,我们还学到了很多平时难得的东西,首先是团队协作,在这次设计当中,难免和同学产生观点和意见的分歧,以及分工明细、时间安排等不合理,通过这次设计,我们体会到了团结合作的重要性及力量之强大,还有让我们处理事情更加有条理,思路更加清晰明了了,发现、提出、分析、解决问题和实践能力的提高都将受益于我在以后的学习、工作和生活中。
第五篇:单片机课程设计
基于单片机的火灾智能报警控制系统的设计
前言
在各种灾害中,火灾是最经常、最普通地威胁公众安全和社会发展的灾害之一。人类能够对火进行利用和控制,是文明进步的一个重要标志。火,给人类带文明进步、光明和温暖。但是,失去控制的火,就给人类造成灾害。据统计,我国 70 年代火灾年平均损失不到 2.5 亿元,80 年代火灾年平均损失不到
3.2 亿元。进入 90 年代,特别是 1993 年以来,火灾造成的直接财产损失上升到年均十几亿元,年均死亡 2000 多人。2010年上海静安区高层住宅着火,导致58人死亡,70余人受伤。2014年1月云南香格里拉大火,烧毁房屋100多栋,直接经济损失1亿多元人民币。火灾事件经常发生,防止火灾事故关系到人民群众的生命财产安全和社会和谐稳定。现在各种电子产品的普及,再加上人们防火意识的不强,这些都给火灾的发生带来了巨大的安全隐患。
对于火灾最关键的问题在于预防,目前防火报警系统趋于智能化、自动化,灵敏程度也越来越高。在这种背景下,基于单片机的火灾智能报警控制系统能突显出其巨大的优越性。目前,国内大多数偏重于商场、宾馆、高级写字楼、大型仓库等大型火灾报警系统的研发和设计。本系统侧重于小型火灾智能报警系统的设计,可在火灾发生初期检测到并且报警,还能够实时显示温度和烟雾浓度。