第一篇:单片机课程设计答辩要求和报告格式 09应5
11月21日
(一)开始期末课程设计答辩考核:
形式:一对一单独进行;
考核内容:
(1)仿真功能实现;
(2)硬件电路功能实现;
(3)课程设计报告;
(4)答辩:回答问题;
问答提纲:
(1)定时中断的初始化内容包括什么,怎么编写C语句?
TOMD=0x02;定时器/计数器工作方式寄存器
TH0=256-200
TL0=256-200
IE=0x82中断允许寄存器
TR0=1定时器0运行控制位(TCON)
(2)定时中断函数与一般函数的区别是什么;
Void 函数名()interrupt 中断号 using 工作组
{
中断服务程序内容
}
(3)C语言的基本语法:
比如:
if语句、while语句、for语句的理解,会不会利用这些语句编写简单的延时函数;
uchar t,while(ms--)for(t=0;t<120;t++)
#include 调用头文件和#define宏定义等有什么用;
(4)C51的特殊关键字,比如sbit,sfr,interrupt,code等在程序
中的作用是什么?
Sbit 位定义
Sfr特殊寄存器定义
Interrupt 中断
Code变量存储地址在ROM里面,不占用RAM的空间
(5)如何编写程序检测按键是否按下和按键是否释放?
用IF判断
If(K!=0xff)判断是否按下
(6)数码管段码值的确定,比如,要在共阳型数码管上显示减号“-”,响应的段码值是多少;
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFD(-)
(7)数码管如何消影;P*=0x00
(8)拆分出“百位”“十位”“个位”的表达式是什么;
Uchar count=0
Count/100
Count%100/10
Count%100%10
(9)LCD显示的命令字都有什么;如何初始化LCD,需要哪些命令字;
LCD忙检测uchar busy_Check、向LCD写命令void
Write_LCD_Command、发送数据Void Write_LCD_Data(uchar dat)、LCD初始化void LCD_Initialize、显示字符串ShowString(uchar
x,uchar y,uchar *str)
(10)你的程序中如何控制在LCD哪行哪个位置显示数据;
ShowString(uchar x行,uchar y列,uchar *str数)
(11)LCD的显示需要什么码?如何在LCD上显示0-9这样的数值;
ASCII码、0~9
(12)LCD1602,1602这几个数字怎么理解;
16字,02行
(13)IIC总线的特点是什么;你的设计中有没有用到具有IIC总线接口的芯片,如果有,是什么型号;
串行器件占用很少的资源和I/O线,体积小,同时具有工作电源宽、抗干扰能力强、功耗、数据不易丢失和支持在线编程等特点
24C0
2(14)“24C04”这一串数字和字符的含义是什么,那“24C02”又是什么
意思;
“04”存储容量512*8 E2PROM
“02”存储容量256*8
(15)编写程序对24C04这块芯片进行数据的存取,需要哪些基本的模块
函数,他们分别有哪些,说明他们各自的作用;
启动I2C总线 Void Start()、停止I2C总线 void stop()、读
取应答void rack()、发送非应答信号void no_ack、发送一字节
void IIC_sendbyte(uchar wd)、接收一字节 uchar
IIC_receiveByte
(16)你的设计中用到什么芯片实现AD和DA功能;
PCF859
1(17)Keil和proteus的联调操作;
(18)模块整合的过程理解;
函数名.H,多少.C就有多少.H
课程设计报告正文:
一、设计题目、设计目的1、说明选题的来源、意义和目的选题来源:源于2011年9月国赛题目《波形采集与回放》
意义:
目的:
2、课题承担人员及分工说明。
设计画板:刘振昇
报告编写:蔡仙
一、课题总体设计说明
1、说明总体开发计划和课题所达到的功能目标和技术指标
2、课题总体设计方案,比较几个备选方案,确定最终方案
方案一:用STC89C51、外部扩展A/D、存储AT24C04、液晶显示LCD1602、D/A
方案二:用STC12C5A60S2、了解内置A/D、IIC存储、DA、液晶显示
方案三:用STM32103RC、内置A/D、D/A、IIC存储、液晶显示、低功耗
3、设计任务、功能描述(如按键功能设置、显示信息,设计产品操作步骤等)、设计总体分析
二、硬件设计说明
1、硬件总体设计方案
(1)硬件设计目标
(2)硬件功能模块划分
(3)主控芯片和关键元器件的选型分析说明及原理介绍、接口和连接方式定义(硬件资源分配:如端口的应用)
2、硬件单元设计
细化每个功能模块硬件设计思路和实现方法,要落实到原理图或PCB布局等内容。
三、软件设计说明
1、软件总体设计方案
(1)软件设计目标
(2)软件功能模块划分
2、软件设计
细化每个功能模块软件设计思路和实现方法,要落实到流程图和重点代码等内容。
主程序功能描述及分析、主程序流程图
存储单元空间分配
各子程序功能描述及子程序入口出口、各程序流程图
四、课题开发总结
1、总结整个课题的任务完成情况,是否与预期规划的相符合,设计出来的作品性能如何、优缺点是什么?
2、硬件宏观上的设计要点,达到的性能指标,存在的问题等内容;
3、软件宏观上的设计要点,达到的性能指标、开发编译工具和方法、存在的问题。
五、附件
1、硬件设计的总电路原理图、PCB版图;
2、元器件清单(器件名称、型号、在原理图中的编号);
3、硬件电路板外观图片、PROTEUS仿真效果图;
单片机课程设计报告
题目:
设计者1:负责任务:
专业班级/学号:
设计者2:负责任务:
专业班级/学号:
指导教师1:指导教师2:
答辩时间:
第二篇:单片机课程设计报告
单片机课程设计报告
题目:小直流电机调速实验
教学单位: 机 电 工 程 系
专业: 机械设计制造及其自动化
班级: 0803班学号: 0811050342姓名: 程怀虎
2011 年 11月
(以下内容用宋体,五号,单倍行距)
第三篇:单片机课程设计报告格式
《单片机课程设计》报告格式
一、封面(注明:单片机课程设计报告、课题名称、班级、姓名、指导教师、日期)
二、摘要(课题简要说明)
三、课题设计目标(功能、性能指标)、方案论证(要求作两种以上方案比较)
四、设计过程(关键电路工作原理、元器件参数选用、程序流程图、程序)
五、软硬件的安装、调试方法
六、完整电路图、性能参数测试
七、存在的问题和改进方向
八、参考文献资料
第四篇:单片机课程设计报告
《单片机原理与接口技术》
课程设计报告
设计题目: 基于80C51单片机系统实验板的制作
与程序设计
专
业:应用电子专业
班
级: 11应电班
姓
名: 丁文俊
指导教师: 余静老师
2013 年 5 月20 日
目录 前 言………………………………………………………………… 2 课程设计的目的及要求…………………………………………… 3 硬件电路设计……………………………………………………… 4 软件程序设计…………………………………………………… 5 小结………………………………………………………………
参考文献 附录A 电路总图 附录B 程序清单
基于80C51单片机系统实验板的制作与程序设计
1.前言
2、课程设计的目的及要求 2.1课程设计目的
2.2课程设计要求
3、系统主要硬件电路设计
3.1 STC89C51单片机简介
MCS-51是美国Intel公司生产的一系列单片机的总称,包括多个品种,如8031、8051、8751、8032、80C52、8752等。其中8051是最典型的产品,其他单片机都是在其基础上进行功能增减而来的,所以人们习惯于用8051来称呼MCS-51系列单片机。Intel公司将MCS-51的核心技术授权给了多家公司,这些厂家生产的单片机在功能上或多或少有些改变,以满足不同的需求,其中美国的ATMEL公司生产的AT89C51是曾经在我国非常流行的51单片机。当前AT89C51/52已经停产,其替代产品为AT89S51/52。深圳宏晶公司出品的STC89C51可以直接代替传统的AT89S51和AT89C51芯片,也可以代替菲利普、华帮等其他公司的89C51,由于时代的发展,工艺的进步,STC89C51功能更强,寿命更长(4K字节Flash存储器、128字节片内RAM、支持ISP下载编程)
图2.1 STC89c51单片机
单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,如图2-2所示在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。
图2-2中外接晶体以及电容C2和C1构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值均为30P左右,晶振频率选11.0592MHz。
为了初始化单片机内部的某些特殊功能寄存器,必须采用复位的方式,复位后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两个机器周期时间以上的高电平,即可引起系统复位,但如果RST引脚上持续为高电平,单片机就处于循环复位状态。复位后系统将输入/输出(1/0)端口寄存器置为FFH,堆栈指针SP置为07H, SBUF内置为不定值,其余的寄存器全部清0,内部RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。复位操作有两种情况,即上电复位和手动(开关)复位。本系统采用上电复位方式。图2-2中R9和Cl组成上电复位电路,其值R取为10K, C取为10μF.4
图2.2 最小系统结构图
3.2 电平转换电路 3.3
4、软件程序设计
5、小结
参考文献
[1] 张伟,《单片机原理及应用》,机械工业出版社,2005(这是格式)
附录
江西工业职业技术学院电子与信息工程系
课程设计指导教师评语
班级:
学生姓名:
学号:
指导教师评语(包括工作态度,遵守纪律;基本理论、知识、技能;独立工作能力和分析解决问题的能力;完成任务情况及水平):
学生成绩(五级分制):
指导教师签名:
****年**月**日
第五篇:单片机课程设计报告
DS18B20测温及按键控制
课 程 设 计
课程名称 单片机基础课程设计 题目名称 18B20测温及按键控制 学生学院 **** 专业班级 **** 班号 **** 学生组员 ****** 指导教师 *****
DS18B20测温及按键控制
第一章系统的概述及设计任务书
摘要和关键词【摘要】:
本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机STC89C52,测温传感器使用DS18B20,用4位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。
【关键词】:单片机,数字控制,温度计,DS18B20,STC89C52 设计任务与技术指标
要求:1.基本范围-50℃-125℃
2.精度误差小于0.5℃ 3.LED数码直读显示
总体设计方案
数字温度计设计方案论证
方案一
由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。方案二
进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。
方案二的总体设计框图
温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用3位LED数码管以串口传送数据实现温度显示。
第二章 单元模块的设计与分析
主控制器:
单片机STC89C52,具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用。
DS18B20测温及按键控制
个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图3所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。
系统软件算法分析
系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。
主程序
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图7所示。3.2读出温度子程序
读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图8示
3.3温度转换命令子程序
温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如上图,图9所示
3.4 计算温度子程序
计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图10所示。
DS18B20测温及按键控制
第三章 实验程序
else
{ b=0-b;
if(b%10==1)f-=1;b=10-(b%10);/*zhwy.c*/ if(b==10)b=0;
for(i=16;i>0;i--)#include
led(a,b,c,d);} #include“DS18B20.h” return f;unsigned char table[]= } {0xC0,0xF9,0xA4,0xB0, void main(void)
0x99,0x92,0x82,0xF8, { unsigned int Sum,k;0x80,0x90,};//不带小数点的编码
signed int h,j;extern unsigned int temp;LED_init();extern float f_temp;h=0;j=0;unsigned int i;while(1)void LED_init(void){tempchange();{ P2=0x0f;Sum=get_temp();P0=0x00;P2=0xff;} for(k=0;k<100;k++)void led(signed int m,signed int { n,signed int p,signed int q)if(P2==0xf7){ P2=0xef;
{delay(10);
P0=table[q];
if(P2==0xf7)
delay(5);
h+=1;
P2=0xdf;h=display(Sum,h,j);
P0=table[p];
}
delay(5);if(P2==0xfb)
P2=0xbf;
{delay(10);
P0=table[n]+0x80;
if(P2==0xfb)
delay(5);
h-=1;
P2=0x7f;
h=display(Sum,h,j);
P0=table[m];
}
delay(5);if(P2==0xfd)}
{delay(10);unsigned int display(unsigned int
if(P2==0xfd)y,signed int f,signed int g)
j+=1;{ signed int a,b,c,d;
h=display(Sum,h,j);
a=y/1000;
} b=(y%1000)/100+f;if(P2==0xfe)c=(y%100)/10+g;
{delay(10);d=(y%10)/1;
if(P2==0xfe)if(b<=9&&b>=0)
j-=1;for(i=16;i>0;i--)
h=display(Sum,h,j);
led(a,b,c,d);
} else if(b>9)
} {a+=b/10;b=b%10;
display(Sum,h,j);for(i=16;i>0;i--)} }
led(a,b,c,d);} void delay(unsigned int z)//延 时函数
/*DS18B20.h */ {unsigned int x,y;sbit ds=P3^5;//温度传感器信号线 for(x=z;x>0;x--)unsigned int temp;for(y=110;y>0;y--);float f_temp;} unsigned int warn_l1=260;void dsreset(void)//18B20复位,unsigned int warn_l2=250;初始化函数 unsigned int warn_h1=300;{unsigned int i;unsigned int warn_h2=320;ds=0;
i=103;
DS18B20测温及按键控制
总电路图结构图
4总结与体会
经过将近四周的单片机课程设计,我终于在参考了众多程序之后完成了我的数字温度计的设计,虽然没有完全达到设计要求,但我还是高兴的,毕竟这次设