第一篇:单片机课设
单片机
基于
刘慧
2012128040 1211电工
2014年11月02日
单片机的电压显示电路
目录
第一章
设计任务和要求„„„„„„„„„„4
第二章 单元电路设计及仿真„„„„„„„„„5
第三章 电路模块功能的分析„„„„„„„„„„10
第四章 心得与体会„„„„„„„„„„„„„12
前言
我们在做一个单片机系统时,常常会遇到这样那样的数集,在这些被采集的数据中,大部分可以通过我们的 I/O 口扩展接口电路直接得到,由于 51 单片机大部分不带 AD 转换器,所以模拟量的采集就必须靠 A/D或 V/F 实现。下现我们就来了解一下AD0809与51 单片机的接口及其程序设计。数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等领域,显示出强大的生命力。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。
第一章
设计任务和要求
直流数字电压表主要由
AD转换器ADC0809,单片机芯片AT89S51控制电路,液晶显示电路三部分构成。其中由ADC0809组成的转换电路,将输入的模拟量信号进行取样、转换,然后将转换的数字信号送进单片机,单片机控制电路主要实现对数据进行处理,显示电路主要用于将单片机得信号数据转换后显示测量结果。方案的主要特点是:
(1)用液晶1602能直接精确、清晰显示所测电压数值,使整机线路简化。
(2)采用+5V和—5V两组电源供电。
(3)采用AT89S51单片机芯片实现整个电路控制。(4)显示亮度较高。
(5)采用转换器AD0809,实现八路直流电压检测,电压测量范围为0—10V,能显示指定电压通道和电压值。(6)电路有8条模拟量输入通道由16个10K电阻,8组阻值为1:1构成,采用降压原理实现0V-10V电压测量。
第二章 单元电路设计及仿真
1、AD0809 的逻辑结构
ADC0809 是8位逐次逼近型A/D转换器。它由一个8路模拟开关、一个地址锁存译码器、一个A/D 转换器和一个三态输出锁存器组成(见图1)。多路开关可选通8个模拟通道,允许 8 路模拟量分时输入,共用 A/D 转换器进行转换。三态输出锁器用于锁存 A/D 转换完的数字量,当OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。
2、AD0809 的工作原理
IN0-IN7:8 条模拟量输入通道 ADC0809 对输入模拟量要求:信号单极性,电压范围是 0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。地址输入和控制线:4条 ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将 A,B,C 三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B 和 C 为地址输入线用于选通 IN0-
IN上的一路模拟量输
入。通道选择表如下表所示。
C B A 选择的通道
0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN7 数字量输出及控制线:11 条 ST 为转换启动信号。当 ST 上跳沿时,所有内部寄存器清零;下跳沿时,开始进行 A/D 转换;在转换期间,ST 应保持低电平。EOC 为转换结束信号。当 EOC 为高电平时,表明转换结束;否则,表明正在进行A/D 转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0 为数字量输出线。CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为 500KHZ,VREF(+),VREF(-)为参考电压输入。
3、ADC0809 应用说明
(1)ADC0809 内部带有输出锁存器,可以与AT89S51 单片机直接相连。
(2)初始化时,使 ST 和OE信号全为低电平。
(3)送要转换的哪一通道的地址到 A,B,C端口上。
(4)在ST 端给出一个至少有 100ns 宽的正脉冲信号。
(5)是否转换完毕,我们根据EOC 信号来判断。
(6)当EOC变为高电平时,这时给OE 为高电平,转换的数据就输出给单片机了。
4、AD0809 的应用
电路说明:主要由 AD 转换器 AD0809,频率发生器 SUN7474,单片机 AT89S51及显示用数码管组成。AD0809的启动方式为脉冲启动方式,启动信号START启动后开始转换,EOC 信号在START 的下降沿10us后才变为无效的低电平。这要求查询程序待EOC无效后再开始查询,转换完成后,EOC 输出高电平,再由 OE 变为高电平来输出转换数据。我们在设计程序时可以利用 EOC 信号来通知单片机(查询法或中断法)读入已转换的数据,也可以在启动AD0809 后经适当的延时再读入已转换的数据。AT89S51的输出频为晶振频的1/6(2MHZ),AT89S1 与SUN7474连接经与7474的ST脚提供 AD0809 的工作时钟。AD0809 的工作频范围为 10KHZ-1280KHZ,当频率范围为500KHZ 时,其转换速度为128us。AD0809 的数据输出公式为:Dout=Vin*255/5=Vin*51,其中Vin为输入模拟电压,Vout 为输出数据。
当输入电压为 5V 时,读得的数据为 255 再乘以 2,得 510。我们用 510*98%得 499,再将百位数码管的小数点点亮,显示为4.99V,显示值与输入值基本吻合。编程思路:
(1)向AD0809 写入通道号并启动转换
(2)延时 1ms 后等待EOC 出现高电平(JNB
EOC,$)(3)给OE 置高并读入转换数据存入数据地址或数组中。
(4)显示
根据设计要求,结合硬件电路,在输入模拟信号时采用电阻分压,最终价的采样输入电压只有实际输入电压的二分之一,所以在变下程序时,要编写一段数据调整程序,其中还应注意硬件显示电路采用了液晶显示,液晶显示的频率有一定的要求,这就要求再编写程序时,还要考虑到显示子程序。程序设计流程图如图
应用程序设计
(1)程序起始地址MCS-51系列单片机复位后,(PC)=0000H,而0003H~002BH分别为各中断源的入口地址。所以,编写程序时,应在0000H处写一条跳转指令。当CPU接到中断请求信号并予以响应后,CPU把当前的PC内容压入栈中进行保护,然后转入响应的中断服务程序
(2)(2)AD0809时钟脉冲信号本方案中,采用软件定时的方式,该单片机的时钟频率为12MHZ,1个机器周期时间为1us,可以计算出计数初值:TC=65536-5,即有TH0=(65536-5)/256;TL0=(65536-5)%256;定时器T0以定时方式1完成定时。程序如下;
#include
#define uchar unsigned char
#define uint unsigned int sbit st=P3^2;sbit oe=P3^1;sbit eoc=P3^0;
uchar code tab[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};//数码管显示段码 uchar code td[]={0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70};//通道先择数组
uint ad_0809,ad_data1,ad_data2,ad_data3,ad_data0;uchar m,number;
uchar x[8];//八通道数据待存数组
void delaynms(uint x);//nms延时程序
void display();//显示程序
void ad0809();//芯片启动程序
void key();//键扫描程序
main()
{
number=1;
P1=0x00;
while(1)
{
ad0809();//调AD0809 启动子程序
key();//调按键子程序
ad_0809=x[number];//把相关通道数据给 ad_0809
display();//调显示
}}
//nms 延时程序
void delaynms(uint x){
uchar i;
while(x-->0)
{
for(i=0;i<125;i++)
{;}}} void display(){
uchar a;
ad_data1=(ad_0809*49/25)/100;//读得的数据乘以2 再乘以98%除以100 得百位 ad_data2=((ad_0809*49/25)%100)/10;//读得的数据乘以 2 再乘以 98%再分出十位
ad_data3=(((ad_0809*49/25)%100)%10);//读得的数据乘以2 再乘以98%再分出个位
for(a=0;a<10;a++){
P0=tab[ad_data3];//送小数点后第二位显示
P2=0x07;//选通第一个数码管 delaynms(3);
P0=tab[ad_data2];//送小数点后第一位显示
P2=0x0b;//选通第二个数码管
delaynms(3);
P0=tab[ad_data1];//送整数显示
P0_7=0;//点亮第三个数码管小数点
P2=0x0d;//
选通第三个数码管
delaynms(3);
P0=tab[number];//送通道号显示
P2=0x0e;delaynms(3);}}
void ad0809()
{
uchar i,m=1;
for(i=0;i<8;i++)
{
P0=td[i];//选通通道
oe=0;//以下三条指令为起动 AD0809
st=0;
st=1;
st=0;
delaynms(1);
while(!eoc);//等待转换结束
oe=1;//取出读得的数据
x[m]=P2;//送相关通道数组
oe=0;
m++;}}
void key(){
if(!P3_5)//P3.5 是否按下
{
delaynms(20);//延时判误
if(!P3_5)//再一次判断 P3。5 是否按下
{
while(!P3_5);//等待P3。5 为高电平
numif(number>8)number=1;//八通道
}}} ber++;//通道号显示加一
if(number>8)number=1;//八通道 }}}
电路原理图如下:
第三章 电路模块功能的分析
3.1液晶显示部分
采用液晶1602,能够16*02即32个字符(16列2行)。1602采用标准的16脚接口,其中,第1脚:VSS为电源地; 第2脚:VDD接5V电源正极;
第3脚:V0为液晶显示器对比度调整端,接地电源时对比度最高(对
比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
第4脚:RS为寄存器选择,高电平1时选择数据寄存器,低电平0时选择指令寄存器。
第5脚:RW为读写信号线,高电平1时进行读操作,低电平0时进行写操作。
第6脚:E(或EN)端为使能端。第7-14脚:D0-D7为8位双向数据端。
第15-16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。3.2电路检测部分
电路检测部分由电阻和发光二极管组成,接通电源,电路连接无误,灯亮。发光二极管用来检测电路是否连通。电路检测部分电路图:
3.3切换通道电路部分 AD0809 转换器有IN0-IN7共8 条模拟量输入通道;电路功能测量时,用两个大的按键开关来切换通道,实现测量。其中,一个是通过手按按键来切换,另一个按下则实现是自动顺序切换,切换通道的电路图如图8所示:
四.心得与体会
这次设计是体现我专业优势和特点的一次锻炼。从选题,到选原理图制版至最后的写论文。其间查找资料,老师指导,与同学交流,反复修改原理图,每一个过程都是对自己能力的一次检验和提高。通过这次实践,我了解了数字电压表的制作,工作原理及相关芯片的使用和工作原理,锻炼了自己的实际动手能力,培养了自己独立工作能力。我觉得这次实训是对我专业知识和实际动手能力的一次综合检验,同时也是为自己今后走向社会的一次热身。
这次实训收获颇多,比如学会了查找有用信息跟相关资料,有用的数据,并熟悉了做板的流程和巩固了相关专业知识。
第二篇:单片机课设
华 南 理 工 大 学 广 州 学 院
单片机课程设计报告
题 目: 简易电子时钟
评 分
专业: 自动化 班级: 15级自动化一班 姓名: 黎泽钧 同组队员: 郑立涵、曾迪濠、佘庭枫、李明志、方昊辉
学号/座位序号: 201510087034
日 期: 2017 年 03 月
一、设计目的
通过本次课程设计可以灵活运用单片机的基础知识,依据课程设计内容,能够完成从硬件电路图设计,到软件编程及系统调试实现系统功能,完成课程设计,加深对单片机基础知识的理解并灵活运用。
二、设计要求和方案选择
1.设计要求:
(1)通过程序直接对实时时钟时间进行设置,启动时钟运行。用8位数码管显示。
(2)通过按钮对实时时钟时间进行设置,使时钟能正常运行。(3)其他发挥功能。2.设计方案的选择
(1)计时方案
方案1:采用现成实时时钟芯片
使用一些实时时钟集成电路,如DS1287、DS12887、DS1302等。这些实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时等功能,计时数据的更新每秒自动进行一次,不需要程序干预。因此,在工业实时测控系统中多采用这类专用芯片来实现实时时钟功能。
方案2:使用单片机内部的可编程定时器
利用单片机内部的定时计数器进行中断定时,配合软件延时实现时、分、秒的计时。该方案优点是节省硬件成本,可以利用程序代替。缺点是程序设计相对微型控制器时钟电路声光报时校时输入数据显示较为复杂,精确度不高,同时还可能会和延时冲突,导致显示效果不佳。
鉴于以上原因,我们采用了方案二,使用了单片机内部的可编程定时器。(2)显示器件的选择与对比
方案一:采用LED数码管显示。
LED显示器可以分为有静态显示方式和动态显示方式两种。静态显示就是当数码管显示某个字符时,相应的段恒定的导通,直到要显示下一个字符为止。数码管工作在静态显示方式时,共阴极COM端要接地;若为共阳极COM端接在+5V电源。每位的段选线应分别与一个8位数据口的输出端相连,数码管的各位是相互独立的,且要显示字符一经确定,相应数据的输出将必须维持不变。静态显示数码管一直在工作,因而数码管静态显的亮度较高。在这种显示方式编程比较容易,管理也较简单,但占用I/O口线资源较多,因而在显示位数较多的情况下,我们大都都采用数码管动态显示方式进行显示。而对于动态显示方式,虽可以避免静态显示的问题,但设计上如果处理不当,易造成亮度低,有闪烁等问题。方案二:采用LCD显示。
LCD液晶显示具有丰富多样性、灵活性、电路简单、易于控制而且功耗小等优点,对于一般的段式液晶屏,需要专门的驱动电路,而且也经显示作为一种被动显示,可视性相对较差;对于具有驱动电路和微处理器接口的液晶显示模块(字符或点阵),一般多采用并行机接口,对于微处理器的接口要求较高,占用资源多。另外,89C52本身没有专门的液晶驱动接口。
鉴于上述原因,我们采用方案一,采用了数码管显示方式。数码管作为一种主动显示器件,具有亮度高、价格便宜、功耗低、驱动简单等优点。
三、硬件部分
1.STC89C52单片机(1)结构
STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
同时具有以下标准功能: 8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。(2)主要特性
8K字节程序存储空间; 512字节数据存储空间; 内带4K字节EEPROM存储空间;可直接使用串口下载;(3)器件参数
1.增强型8051单片机,6 时钟/机器周期和12 时钟/机器周期可以任意 选择,指令代码完全兼容传统8051.2.工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V 单片机)3.工作频率范围:0~40MHz,相当于普通8051 的0~80MHz,实际工作 频率可达48MHz 4.用户应用程序空间为8K字节 5.片上集成512 字节RAM 6.通用I/O 口(32 个),复位后为:P1/P2/P3 是准双向口/弱上拉,P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻。
7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无 需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程 序,数秒即可完成一片
8.具有EEPROM 功能
9.共3 个16 位定时器/计数器。即定时器T0、T1、T2 10.外部中断4 路,下降沿中断或低电平触发电路,Power Down 模式可 由外部中断低电平触发中断方式唤醒
11.通用异步串行口(UART),还可用定时器软件实现多个UART 12.工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)13.PDIP封装
STC89C52单片机的引脚如图所示:
2.时钟电路
STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方式的时钟电路如图(a)所示,在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用。外部方式的时钟电路如图(b)所示,RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。如图所示,RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。
内部时钟电路如图所示,在XTAL1和XTAL1引脚上外接定时元件,内部振荡电路就产生自激振荡。定时元件是石英晶体和电容组成的并联谐振回路,晶体振荡器选择11.0532MHz,电容采用30PF。
3.按键输入电路
独立式按键采用每个按键单独占有一个I/O口的结构,这是最简单的键盘输入设计。当按下和释放按键时,输入到I/O口端的电平是不一样的,单片机程序根据不同端口的电平变化判断是否有键按下以及是哪一个键被按下。独立式键盘的原理简单,每个按键的电路是独立的,占用一条数据线。
LED数码管电路
LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线连在一起,而各自的公共端称为位选线。显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。
四、软件设计
#include
unsigned char dispbuf[8]={0,0,16,0,0,16,2,1};unsigned char dispbitcnt;unsigned char second;unsigned char minite;unsigned char hour;unsigned int tcnt;unsigned char mstcnt;unsigned char i,j;void main(void){ TMOD=0x02;TH0=0x06;TL0=0x06;TR0=1;ET0=1;EA=1;while(1){ if(P0_0==0){ for(i=5;i>0;i--)for(j=248;j>0;j--);if(P0_0==0){ second++;if(second==60){ second=0;} dispbuf[0]=second%10;dispbuf[1]=second/10;while(P0_0==0);} } if(P0_1==0){ for(i=5;i>0;i--)for(j=248;j>0;j--);if(P0_1==0){ minite++;if(minite==60){ minite=0;} dispbuf[3]=minite%10;dispbuf[4]=minite/10;while(P0_1==0);} } if(P0_2==0){ for(i=5;i>0;i--)for(j=248;j>0;j--);if(P0_2==0){ hour++;if(hour==24){ hour=0;} dispbuf[6]=hour%10;dispbuf[7]=hour/10;while(P0_2==0);} } } } void t0(void)interrupt 1 using 0 {
mstcnt++;if(mstcnt==8){ mstcnt=0;
P3=0xff;//关闭所有显示
P1=dispcode[dispbuf[dispbitcnt]];P3=dispbitcode[dispbitcnt];dispbitcnt++;if(dispbitcnt==8){ dispbitcnt=0;} } tcnt++;if(tcnt==4000){ tcnt=0;second++;if(second==60){ second=0;minite++;if(minite==60){ minite=0;hour++;if(hour==24){ hour=0;} } } dispbuf[0]=second%10;dispbuf[1]=second/10;dispbuf[2]=17;dispbuf[3]=minite%10;dispbuf[4]=minite/10;dispbuf[5]=17;dispbuf[6]=hour%10;dispbuf[7]=hour/10;} }
五、调试及运行结果
六、总结(感想和心得等)
在这次的课程设计中,开始以为电路很简单,但是做实物的时候才知道走线的重要性。数码管的走线都弄成一块了,看来确实得多实践。因为电脑上画的图跟实物有很大区别,得要注意好布局。应该多开设些实践课,为以后的求职之路打下了基础。课程设计分成了硬件和软件两大模块。总的来说,硬件部分很好入手,电路也教简单,主要涉及的是简单的按键、电容、电阻、晶振和数码管。在软件部分,细分为了按键模块、显示模块、定时/计数模块,最后把几个模块整合在主程序模块中。整个设计过程中遇到的最大问题是软件的编写,由于采用的是汇编语言,其间使用到的各种寄存器、存储器地址、变量很多,很难对程序的整体把握。通过电子钟的设计,对单片机的原理、结构、外围电路进一步的了解。要了解在整个设计过程中学到了团体精神和独立解决问题的重要性。
第三篇:单片机课设心得体会
单片机课设心得体会一:单片机课设心得体会
这个学期的单片机课已经早早的上完了,但是理论纯属理论,没有与实践的结合总让我们学的不踏实,感觉没有达到学以致用的效果。所庆幸的是在课程介绍考试完之后,老师给我们安排了这次单片机课程设计,给了我们学以致用的做好的实践。
关于这次课程设计,我们花费了比较多的心思,既是对课程理论内容的一次复习和巩固,还让我们丰富了更多与该专业相关的其他知识,比如软件应用等,在摸索中学习,在摸索中成长,在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获,在真正设计之前我们做了相当丰富的准备,首先巩固一下课程理论,再一遍熟悉课程知识的构架,然后结合加以理论分析、总结,有了一个清晰的思路和一个完整的的软件流程图之后才着手设计。在设计程序时,我们不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;养成注释程序的好习惯是非常必要的,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也能为资料的保存和交流提供了方便;我觉得在设计课程过程中遇到问题是很正常,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计又出错了。
除了对此次设计的准备工作之外,我们还学到了很多平时难得的东西,首先是团队协作,在这次设计当中,难免和同学产生观点和意见的分歧,以及分工明细、时间安排等不合理,通过这次设计,我们体会到了团结合作的重要性及力量之强大,还有让我们处理事情更加有条理,思路更加清晰明了了,发现、提出、分析、解决问题和实践能力的提高都将受益于我在以后的学习、工作和生活中。
此次的设计,其实也是我们所学知识的一次综合运用,让我深深的认识到了学习单片机要有一定的基础,要有电子技术方面的数字电路和模拟电路等方面的理论基础,特别是数字电路;也要有编程语言的汇编语言或c语言。要想成为单片机高手,我们首先要学好汇编语言,然后转入c语言学习,所以我们不能学到后面就忘了前面的知识,更应该将所学的知识紧紧的结合在一起,综合运用,所谓设计,就是要求创新,只有将知识综合运用起来才能真正的设计好。
单片机课设心得体会二:单片机学习心得体会 时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在一周内完成了。
俗话说“好的开始是成功的一半”。说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。
虽然这次的课程设计算起来在实验室的时间只有三天,不过因为我们都有自己的实验板,所以在宿舍里做实验的时间一定不止三天。
硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。
当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课设是对我的学习态度的一次检验。对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。
在这次难得的课程设计过程中我锻炼了自己的思考能力和动手能力。通过题目选择和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。在方案设计选择和芯片的选择上,培养了我们综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识。还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力。并且我们熟练掌握了有关器件的性能及测试方法。
再次感谢老师的辅导以及同学的帮助,是他们让我有了一个更好的认识,无论是学习还是生活,生活是实在的,要踏实走路。课程设计时间虽然很短,但我学习了很多的东西,使我眼界打开,感受颇深。
单片机课设心得体会三:单片机课设心得体会
两周的单片机课程设计实训,真是让我们受益匪浅,学到了很多东西,不管怎么样,先感谢学校给我的这么多机会.真正的学到了东西。
此次课程设计软件与硬件相结合,考察了我们的焊接水平与编程能力.因为以前做过关于焊接的电工实习,所以对于我们机械设计专业的学生而言焊接是不成问题,也很顺利;可到了编程时就出现了很大的障碍,先开始的显示时钟还算顺利,本来还以为编程会很简单的,等到实际操作起来才知道它的复杂性,没有想像中的那么得心应手,理解流程是有思维的前提。其实本身程序的思维是正确的,只是步骤中有点小错误,所以导致整个程序的结果很乱,在仔细修改程序之后,终于一步步地达到效果了。
系统以at89s51为核心部件,利用软件编程,通过键盘控制和液晶显示实现了秒表的功能,能实现本设计题目的基本要求和发挥部分。尽量做到硬件电路简单稳定,充分发挥软件编程的优点,减小因元器件精度不够引起的误差。
我们将各个部分的程序编好后怎么都连不起来,出不了预期的效果.对于硬件在编程过程中pcb板的接触又是一个头疼的问题,在进行编译的时候,数码显示管上什么都没有,按一下旁边与之相连的元器件时就有显示了,所以也花费了好多时间在pcb板的重新焊接上,最后在全组人竭尽全力,老师的精心指导下,程序基本编写成功,这是我们共同努力的结果,在享受我们成果之时,不得不感慨单片机的重要性与高难度性,所以为期两周的单片机课程设计没有浪费,我们从中学到了很多知识,也让我们对单片机有了更深一步的了解.虽然最后结果是出来了,可这与老师的精心指导是分不开的,他引导我们的思路,本来一窍不通的我们经过老师的点拨基本上通了,所以说老师是功不可抹的。
由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。
踉踉跄跄地忙碌了两周,我的单片机课程设计也终将告一段落。设计实物也基本达到预期的效果,但由于能力和时间的关系,总是觉得有很多不尽人意的地方,譬如功能不全、外观粗糙„„数不胜数。但我可以自豪的说,这里面的每一段代码,都有我的劳动。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。
总而言之,单片机课程设计对于我们有很大的帮助,我们从中受益匪浅。
第四篇:单片机课设任务书
《微机应用原理及接口技术》课程设计
一、课程设计题目汇总: 题目
一、数字输入与显示器
题目二、十六进制加法计算器 题目四、十进制加法计算器
题目
五、单片机8255矩阵式键盘接口电路设计 题目
六、LED、步进电机和喇叭的控制 题目
七、实时时钟 题目
八、智能抢答器
题目
九、检测与报警系统的设计 题目
十、自动交通管理系统
题目
十一、基于单片机的函数发生器设计和开发 题目十二 单片机主从式多机串口通信
二、各题设计任务:
题目
一、数字输入与显示器
设计一键盘显示装置,键盘上只需定义16个十六进制数字键,其它键不定义无响应。
要求按下数字键后,相应的数字信息在显示器上予以显示。(扩展:可连续输入,将多个输入值同时显示或总显示最新的输入的功能切换)
题目二、十六进制加法计算器
设计一键盘显示装置,键盘上除需定义16个十六进制数字键外还要相应的功能键,其它键不定义无响应。利用此系统可分别可输入解雇单位十六进制被加数与加数,实现两数相加并将结果显示出来。(扩展:两位无符号16进制数相加,如溢出蜂鸣器响)
题目四、十进制加法计算器
设计一键盘显示装置,键盘上除需定义10个十进制数字键外还要相应的功能键,其它键不定义无响应。利用此系统可分别可输入十进制被加数与加数,实现两数相加并将结果以十进制形式显示出来。(扩展:多位10进制数相加)题目
五、单片机8255矩阵式键盘接口电路设计
用PROTEUS设计出显示系统的硬件图,再进行程序设计。最后在PROTEUS软件内完成软硬件的调试。实现按下相应的键后,在LED上显示出来。
题目六 单片机码值转换
设计键盘显示功能,键盘上定义16个进制数字键及相应功能键,要求将输入的单个16进制数转换成对应的二进制,十进制,8进制显示.题目六:LED、步进电机和喇叭的控制
一、设计目的
利用所学单片机的理论知识进行软硬件整体设计,锻炼学生理论联系实际、综合应用的能力。
二、设计内容:单片机对LED、步进电机和喇叭的控制。
三、设备和器材:单片机最小开发系统,4个按键开关、4个LED指示灯、一个4相步进电机、一个蜂鸣片等。其他器件任选。
四、设计要求:
1、设计接口电路,将这些外设构成一个简单的单片机应用系统,画出接口的连接图。
2、编写下列控制程序
① 上电后,4个LED二极管依次循环点亮。
② 单独按下开关1,步进电机正向慢走50,反向快走100步,依次循环。
③ 同时开关2,开关3时,步进电机来回走100步,然后扬声器发声10次,依次循环。
④ 单独按下开关4时,步进电机先慢走50步,扬声器响2声,停留50秒,扬声器再响两声,最后停机。
题目七:实时时钟
一、设计目的
利用所学单片机的理论知识进行软硬件整体设计,锻炼学生理论联系实际、综合应用的能力。
二、设计内容:以单片机为控制器,采用定时器中断的方法,设计一个一天24小时进制的实时时钟,并用6个发光二极管分别显示时、分、秒的记时,且整点报时(几点钟报几下)。
三、设备和器材:单片机最小系统,一片8155或8255、6个共阳的七段发光二极管由8155驱动(对于实验系统),一个风鸣片等其他器件任选。
四、设计要求:
1、设计硬件接口电路,将以上硬件构成一个简单的单片机应用系统,画出接口的连接图。
2、编写驱动软件,实现以下功能:
① 采用定时器中断的方法,设计一个一天24小时进制的实时时钟; ② 用6个发光二极管分别显示时、分、秒的记时; ③ 能进行整点报时。
④ 可以从键盘中预置、修改时钟值。
题目
八、智能抢答器
一、设计目的
利用所学单片机的理论知识进行软硬件整体设计,锻炼学生理论联系实际、综合应用的能力。
二、设计内容:设计基于单片机的6人抢答器,并编程实现其功能.三、设备和器材:单片机最小开发系统,中断控制器8259A一片(自选),并行接口8255A一片或8155(用单片机开发板),发光二极管12只(红,黄各6只),LED数码管若干只,按钮或按键10个,其他器件任选。
四、设计要求:
1、设计硬件接口电路,将这些外设构成一个简单的单片机应用系统,画出接口的连接图。
2、编写下列控制程序
① 1—6号手中先按下按钮者,LED数码管显示其选手号码(后按下无效),且计时开始,1秒停止计时。
② 由裁判掌握,若回答正确,该选手对应黄灯亮,否则红灯亮。③ 回答正确时,记分牌加10分,不正确减10分(初始分100分)
题目九:检测与报警系统的设计
一、设计目的
利用所学单片机的理论知识进行软硬件整体设计,锻炼学生理论联系实际、综合应用的能力。
二、设计内容:以单片机为控制器,采用中断方式,对2路0-5V的模拟电压进行循环采集,采集的数据送LED显示,并存入内存。超过界限时指示灯闪烁。
三、设备和器材:单片机最小开发系统、一路模拟直流电压信号、ADC0809芯片,6个共阳的七段发光二极管由8155驱动。其他器件任选。
四、设计要求:
1、设计接口电路,将这些外设构成一个简单的单片机应用系统,画出接口的连接图。
2、编写程序实现下列功能:
① 对2路模拟信号输入实行循环采集,每路连续采集16次,取平均值。
② 分别设定每一路的上限值,若采集的平均值超过该界限值,则对应通道的指示灯闪烁10次后一直亮,指示灯闪烁时喇叭发声,以示警告。③ 采集的数据送LED显示,并存入内存。
题目十:自动交通管理系统一、设计目的
利用所学单片机的理论知识进行软硬件整体设计,锻炼学生理论联系实际、综合应用的能力。
二、设计内容:设计用单片机控制的十字路口交通灯及撞红灯报警控制系统,并实现这些功能。
三、设备和器材
计算机、51单片机最小系统板、并行接口芯片8255A一片或8155(自选),发光二极管红、绿、蓝各4只,2只LED数码管,显示时间秒,ADC0809一片)其他器件任选。
四、设计要求
1、设计接口电路,将这些外设构成一个简单的单片机应用系统,画出接口的连接图。
2、编写程序实现下列功能:
用红、绿、黄三支共两组发光二极管表示交通信号灯,利用单片机模拟有时间显示的定时交通信号灯控制管理。信号灯的变化规律可如下:
① 放行线:绿灯亮放行25秒,黄灯亮警告5秒,然后红灯亮禁止。② 禁示线:红灯亮禁止30秒,然后绿灯亮放行。
③ 当某一方向的红灯亮时,若该方向有车通过,则用扬声器声报警。(撞红灯信号可用3-5V模拟量表示)
④ 同时用2位数码管进行30秒钟递减时间显示。
题目十一:基于单片机的函数发生器设计和开发
一、设计目的
利用所学单片机的理论知识进行软硬件整体设计,锻炼学生理论联系实际、综合应用的能力。
二、设计内容:以单片机为基础,设计并开发能输出多种波形(正弦波、三角波、锯齿波、脉冲波、梯形波等)且频率、幅度可变的函数发生器。
三、设备和器材:单片机最小开发系统,DAC0832一片,运算放大器,其他器件任选。
四、设计要求:
1、设计接口电路,将这些外设构成一个简单的单片机应用系统,画出接口的连接图。
2、编写控制程序,实现下列功能: ① 能输出正弦波、三角波、锯齿波、梯形波、脉冲波。② 能根据键盘命令进行波形切换。
③ 能根据键盘命令对输出波形的频率、幅度进行控制调节。
题目十二 单片机主从式多机串口通信
可以实现波特率的调节,利用键盘输入从机地址,实现主机与从机之间的数据传输,并可以将传输的数据送显示。
三、课程设计总体要求:
(1)(2)(3)(4)(5)(6)画出硬件电路原理图 画出软件程序框图 编写控制程序 上机调试、运行
机房检验编程结果、并提问 递交的课程设计报告(打印稿),软件应有适当的注释。
四、课程设计论文参考格式 [ 注: 论文各部分具体格式要求按学校文件要求执行 ]
1、课程设计任务书
2、论文目录
3、正文部分 [设计的具体内容:可分为硬件设计(含电路图)、软件设计(含程序流程图)]
4、调试过程
5、设计小结,心得体会
6、附录:(1)程序清单,后附程序注释;(2)硬件连线图
五、组织安排
注意:每个题目每个班最多安排3个学生,学生可以2人(不超过2人)一组。
实验地点:电气学院机房 实验地点:测控实验室
第五篇:单片机课设心得体会优秀
单片机课设心得体会优秀
结束了两周的电视机实训,我们又迎来了单片机课程设计实训,真是让我们受益匪浅啊?学到了很多东西,不管怎么样,先感谢学校给我的这么多机会。真正的学到了东西。为期一周的单片机课程设计让我们受益匪浅。此次课程设计软件与硬件相结合,考察了我们的焊接水平与编程能力。对于我们应用电子技术的学生而言焊接是不成问题,也很顺利;可到了编程时就出现了很大的障碍,先开始的显示时钟还算顺利,下面的报警部分就花费了相当长的时间,还有加上报警时的音乐也是我们到图书馆里查阅资料由汇编转化成C语言得来的。本来还以为编程会很简单的,等到实际操作起来才知道它的复杂性,没有想像中的那么得心应手,理解流程是有思维的前提。单片机是我们上学期开设的课程,所以很多专业知识也都忘记了。不过经过我们一步步的努力,花费的时间与精力终于没有白费,效果渐渐地出现了。其实本身程序的思维是正确的,只是步骤中有点小错误,所以导致整个程序的结果很乱,在仔细修改程序之后,终于一步步地达到效果了。
我们将各个部分的程序编好后怎么都连不起来,出不了预期的效果。对于硬件在编程过程中PCB板的接触又是一个头疼的问题,在进行编译的时候,数码显示管上什么都没有,按一下旁边与之相连的元器件时就有显示了,所以也花费了好多时间在PCB板的重新焊接上。对于软件我们在时钟完成后就对其加入了报警系统,可加了之后发现程序乱了,以前的时钟也不可以控制了。经过反复研究,发现接地接错了位置,导致了用来报警的红灯跟绿灯根本不亮,然后就将接地线重新焊接了一下,功夫不负有心人,红灯亮了,配合编好的程序,用纸板挡住了发射管与接收管之间的信号传输,数码显示管出现闪烁的效果,并且没信号的时候绿灯亮,有信号的时候红灯就亮了,这个现象让我们喜出望外。经过修改时钟程序和报警系统都被使用上了,可更大的难题就是如何让它报警?这困扰了我们,数码显示管上终于有了闪烁的效果,可报警声还没加的上去。老师的要求是除了蜂鸣器上的报警声再加一段音乐。翻阅了图书馆里的书籍,查出来的音乐程序都是用汇编编的,要将此程序放到主程序中就必须将汇编程序改编成C语言程序。这再次困扰了我们,虽然以前也学过汇编跟C之间的互换,可都是简单的,从没涉及到这么复杂的程序过,改编很是有压力,经过研究,我们将汇编程序舍弃了,到网上下载了一段音乐程序,是C语言编的。要让音乐在我们的红外报警系统中唱出来可不是什么简单的事情,虽然找到了音乐程序,但要让音乐程序跟我们的主程序融合在一起得花费点心思了。
最后在全组人竭尽全力,老师的精心指导下,程序基本编写成功,这是我们共同努力的结果,在享受我们成果之时,不得不感慨单片机的重要性与高难度性,所以为期一周的单片机课程设计没有浪费,我们从中学到了很多知识。也让我们对单片机有了更深一步的了解。虽然最后结果是出来了,可这与老师的精心指导是分不开的,她引导我们的思路,本来一窍不通的我们经过老师的。点拨基本上通了,所以说老师是功不可抹的。
总而言之,单片机课程设计对于我们有很大的帮助,我们从中受益匪浅。