首页

> 期刊投稿知识库

首页 期刊投稿知识库 问题

51单片机计算器毕业论文

发布时间:

51单片机计算器毕业论文

1、硬件仿真图

硬件部分比较简单,当键盘按键按下时它的那一行、那一列的端口为低电平。因此,只要扫描行、列端口是否都为低电平就可以确定是哪个键被按下。

2、主程序流程图

程序的主要思想是:将按键抽象为字符,然后就是对字符的处理。将操作数分别转化为字符串存储,操作符存储为字符形式。然后调用compute()函数进行计算并返回结果。具体程序及看注释还有流程图。

3、Altium Designer画的PCB图

4、程序源代码

#include #include

#include

#include

#define uchar unsigned char

#define uint unsigned int

uchar operand1[9], operand2[9];

uchar operator;

void delay(uint);

uchar keyscan();

void disp(void);

void buf(uint value);

uint compute(uint va1,uint va2,uchar optor);

uchar code table[] = {0xc0,0xf9,0xa4,0xb0,0x99,

0x92,0x82,0xf8,0x80,0x90,0xff};

uchar dbuf[8] = {10,10,10,10,10,10,10,10};

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

uchar keyscan()

{

uchar skey;

P1 = 0xfe;

while((P1 & 0xf0) != 0xf0)

{

delay(3);

while((P1 & 0xf0) != 0xf0)

{

switch(P1)

{

case 0xee: skey = '7'; break;

case 0xde: skey = '8'; break;

case 0xbe: skey = '9'; break;

case 0x7e: skey = '/'; break;

default:   skey = '#';

}

while((P1 & 0xf0) != 0xf0)

;

}

}

P1 = 0xfd;

while((P1 & 0xf0) != 0xf0)

{

delay(3);

while((P1 & 0xf0) != 0xf0)

{

switch(P1)

{

case 0xed: skey = '4'; break;

case 0xdd: skey = '5'; break;

case 0xbd: skey = '6'; break;

case 0x7d: skey = '*'; break;

default:   skey = '#';

}

while((P1 & 0xf0) != 0xf0)

;

}

}

P1 = 0xfb;

while((P1 & 0xf0) != 0xf0)

{

delay(3);

while((P1 & 0xf0) != 0xf0)

{

switch(P1)

{

case 0xeb: skey = '1'; break;

case 0xdb: skey = '2'; break;

case 0xbb: skey = '3'; break;

case 0x7b: skey = '-'; break;

default: skey = '#';

}

while((P1 & 0xf0) != 0xf0)

;

}

}

P1 = 0xf7;

while((P1 & 0xf0) != 0xf0)

{

delay(3);

while((P1 & 0xf0) != 0xf0)

{

switch(P1)

{

case 0xe7: skey = '$'; break;

case 0xd7: skey = '0'; break;

case 0xb7: skey = '='; break;

case 0x77: skey = '+'; break;

default:   skey = '#';

}

while((P1 & 0xf0) != 0xf0)

;

}

}

return skey;

}

void main()

{

uint value1, value2, value;

uchar ckey, cut1 = 0, cut2 = 0;

uchar operator;

uchar i, bool = 0;

init:

buf(0);

disp();

value = 0;

cut1 = cut2 = 0;

bool = 0;

for(i = 0;i < 9;i++)

{

operand1[i] = '\0';

operand2[i] = '\0';

}

while(1)

{

ckey = keyscan();

if(ckey != '#')

{

if(isdigit(ckey))

{

switch(bool)

{

case 0:

operand1[cut1] = ckey;

operand1[cut1+1] = '\0';

value1 = atoi(operand1);

cut1++;

buf(value1);

disp();

break;

case 1:

operand2[cut2] = ckey;

operand2[cut2+1] = '\0';

value2 = atoi(operand2);

cut2++;

buf(value2);

disp();

break;

default: break;

}

}

else if(ckey=='+'||ckey=='-'||ckey=='*'||ckey=='/')

{

bool = 1;

operator = ckey;

buf(0);

dbuf[7] = 10;

disp();

}

else if(ckey == '=')

{

value = compute(value1,value2,operator);

buf(value);

disp();

while(1)

{

ckey = keyscan();

if(ckey == '$')

goto init;

else

{

buf(value);

disp();

}

}

}

else if(ckey == '$')

{    goto init;}

}

disp();

}

}

uint compute(uint va1,uint va2,uchar optor)

{

uint value;

switch(optor)

{

case '+' : value = va1+va2;    break;

case '-' : value = va1-va2;    break;

case '*' : value = va1*va2;    break;

case '/' : value = va1/va2;    break;

default :  break;

}

return value;

}

void buf(uint val)

{

uchar i;

if(val == 0)

{

dbuf[7] = 0;

i = 6;

}

else

for(i = 7; val > 0; i--)

{

dbuf[i] = val % 10;

val /= 10;

}

for( ; i > 0; i--)

dbuf[i] = 10;

}

void disp(void)

{

uchar bsel, n;

bsel=0x01;

for(n=0;n<8;n++)

{

P2=bsel;

P0=table[dbuf[n]];

bsel=_crol_(bsel,1);

delay(3);

P0=0xff;

}

}

扩展资料:

PROTEUS 是单片机课堂教学的先进助手

PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。

它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。

课程设计、毕业设计是学生走向就业的重要实践环节。由于PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台

随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中PROTEUS也能茯得愈来愈广泛的应用。

使用Proteus 软件进行单片机系统仿真设计,是虚拟仿真技术和计算机多媒体技术相结合的综合运用,有利于培养学生的电路设计能力及仿真软件的操作能力;

在单片机课程设计和全国大学生电子设计竞赛中,我们使用 Proteus 开发环境对学生进行培训,在不需要硬件投入的条件下,学生普遍反映,对单片机的学习比单纯学习书本知识更容易接受,更容易提高。

实践证明,在使用 Proteus 进行系统仿真开发成功之后再进行实际制作,能极大提高单片机系统设计效率。因此,Proteus 有较高的推广利用价值。

参考资料来源:百度百科-protues

刚做过,发给你参考下

这是原理图

51单片机简易计算器程序:

#include 

#include 

#define uchar unsigned char

#define uint unsigned int

//---------定义引脚--------------------

bit clr=0;

bit ok=0;

bit xiaoshu=0;

bit jiego=0;

bit first_1=1;

bit first_2=1;

sbit dout = P3^2;

sbit load = P2^0;

sbit din  = P2^1;

sbit dclk = P2^2;

sbit beer=P0^1;

sbit LCD1602_RS=P2^3;

sbit LCD1602_RW=P2^4;

sbit LCD1602_E=P2^5;

//---------定义变量--------------------

uchar ch451_key=0xff;

uchar yun_sign;

uchar xiabiao=0;

uchar tab[32];

uchar tab1[]={"welcome to use!"};

uchar tab2[]={" make by JunRu!"};

uchar tab3[]={"ERR0R"};

float opr_1=0,opr_temp=0,end=0,a;

//---------声明函数--------------------

void ch451_init(void);     //CH451初始化

void ch451_write(uint  command);//写命令或数据到ch451

uchar ch451_read(void);        //读按键值

uchar get_char(void);

void LCD_init(void);//初始化;

void delay(unsigned int k);//延时程序

void LCD_inter_command(unsigned char command);//写入控制字

void LCD_inter_dat(unsigned char dat);//写入要显示的数据

void set_xy(unsigned char x,unsigned char y);//找地址

void write(unsigned char date);//写入字符

void lcdbusy();//查忙时

void display(void);

void spec(void);

void get_end(void);

void hun_he(uchar n);

//-------- 主函数----------------------

void main()

{

uchar i;

LCD_init();//LCD初始化;

ch451_init();//CH451初始化

EA = 1;//打开中断

LCD_inter_command(0x01);//清屏

for(i=0;i<=14;i++)

{

LCD_inter_dat(tab1[i]);

beer=0;

delay(4000);//延时

beer=1;

}

LCD_inter_command(0xc0);//从第二行开始显示

for(i=0;i<=14;i++)

{

LCD_inter_dat(tab2[i]);

beer=0;

delay(4000);//延时

beer=1;

}

delay(0xffff);

delay(0xffff);

LCD_inter_command(0x01);

while(1)

{

if(ok)

{

display();

ok=0;clr=1;

}

}

}

//----------子函数--------------------

void hun_he(uchar n)

{int j;

switch(n)

{

case '+':opr_temp=opr_temp+opr_1;break;

case '-':opr_temp=opr_temp-opr_1;break;

case '*':opr_temp=opr_temp*opr_1;break;

case '/':

{

if(a==0)//减数为零显错

{ LCD_inter_command(0xc0);

for(j=0;j<=4;j++)

{

LCD_inter_dat(tab3[j]);

beer=0;

delay(4000);//延时

beer=1;

}

}

else

{opr_temp=opr_temp/opr_1;}

break;

}

default:break;}

}

void ch451_init(void)//CH451初始化

{

EX0 = 1;

din = 0;

din = 1;

ch451_write(0x403);   //开显示

ch451_write(0x580);   //BCD译码方式

}

void ch451_write(uint  command)//写命令或数据到ch451

{  uchar i;

EX0 = 0;

load = 0;

for(i=0;i<12;i++)

{

din = command&1;

dclk = 0;

command>>=1;

dclk = 1;

}

load = 1;

EX0 = 1;

}

uchar ch451_read(void)//读按键值

{ uchar key=0x07;

uchar i;

EX0=0;

load = 0;

for(i=0;i<4;i++)        //将0111读入

{

din = key &1;

dclk = 0;

key>>=1;

dclk =1;

}

load = 1;

key = 0;

for(i=0;i<7;i++)         //从CH451读出按键值

{

key<<=1;

key|= dout;

dclk =0;

dclk =1;

}

EX0 =1;

return key;

}

void EX0_ISR(void)interrupt 0 //中断程序

{

uchar temp;

ch451_key=ch451_read(); //将读出的按键值赋给变量

spec();

if(clr) {LCD_inter_command(0x01);clr=0;}

temp=get_char();

if(temp){tab[xiabiao++]=temp; LCD_inter_dat(temp);}

if(xiabiao>=16)LCD_inter_command(0xc0);//若大于16,则从第2行开始显示

if(ok) get_end();

beer=0;

delay(3000);

beer=1;

}

uchar get_char(void)

{

uchar dis=0;

uint temp=0,temp1=0;

switch(ch451_key)

{

case 0x40:dis='1';break;

case 0x41:dis='2';break;

case 0x42:dis='3';break;

case 0x48:dis='4';break;

case 0x49:dis='5';break;

case 0x4A:dis='6';break;

case 0x50:dis='7';break;

case 0x51:dis='8';break;

case 0x52:dis='9';break;

case 0x58:dis='0';break;

case 0x43:dis='+';break;

case 0x4B:dis='-';break;

case 0x53:dis='x';break;

case 0x5B:dis='/';break;

case 0x44:dis='!';break;

case 0x5A:dis='=';

ok=1;                      //遇到“=”,开始运算

break;

case 0x59:dis='.';break;     //小数点

case 0x5C:                    //删除键

LCD_inter_command(0x01);

xiabiao=0;

break;

default: break;

}

return dis;

}

void spec(void)                   //特殊功能键

{

switch(ch451_key)

{

case 0x4C:LCD_inter_command(0x10);{if(xiabiao>0)xiabiao-=1;}break; //左移

case 0x54:LCD_inter_command(0x14);{xiabiao+=1;}break;  //右移

default:break;

}

}

void delay(unsigned int k)//延时程序

{

while (k--);

}

void LCD_inter_command(unsigned char command)//写入控制字

{

delay(5000);

LCD1602_RS=0;

LCD1602_RW=0;

LCD1602_E=1;

P1=command;

LCD1602_E=0;

lcdbusy();

}

void LCD_init(void)//初始化;

{delay(5000);

LCD_inter_command(0x01);//清屏

delay(5000);

LCD_inter_command(0x38);//设置为8位的数据接口,两行显示,5、7点字符

delay(5000);

LCD_inter_command(0x0E);//显示打开,光标开并闪烁

delay(5000);

}

void LCD_inter_dat(unsigned char dat)//写入要显示的数据

{

delay(5000);

LCD1602_RS=1;

LCD1602_RW=0;

LCD1602_E=1;

P1=dat;

LCD1602_E=0;

lcdbusy();

}

void lcdbusy()//查忙

{

P1=0xFF;

LCD1602_RS=0;

LCD1602_RW=1;

LCD1602_E=1;

while((P1&0x80)==1);

}

void display(void)            //转化在LCD上显示计算结果

{

int temp=end;  //浮点数

int i;

uint xiao_temp;

uint xx; //浮点数的整数部分

if (end>-32769&&end<32768)

{

xx=fabs(end);

xiao_temp=(fabs(end)-xx)*1000;//取出浮点数的小数部分

LCD_inter_command(0xc0);

if(end<0) LCD_inter_dat('-');beer=0;delay(4000); beer=1;//判断是否为负数,若是则显示负号

if(xx>9999) LCD_inter_dat((xx/10000)%10+'0'); beer=0;delay(4000);beer=1;

if(xx>999) LCD_inter_dat((xx/1000)%10+'0');beer=0;delay(4000);beer=1; //在LCD上显示千位的数

if(xx>99)LCD_inter_dat((xx/100)%10+'0');  beer=0;delay(4000);beer=1;//百位

if(xx>9)LCD_inter_dat((xx/10)%10+'0');beer=0;delay(4000); beer=1;//十位

LCD_inter_dat(xx%10+'0');beer=0;delay(4000); beer=1;//个位

if(xiao_temp!=0)  //显示小数部分

{

LCD_inter_dat('.');beer=0;delay(4000);beer=1;

LCD_inter_dat((xiao_temp/100)%10+'0');beer=0;delay(4000);beer=1;

LCD_inter_dat((xiao_temp/10)%10+'0');beer=0;delay(4000);beer=1;

LCD_inter_dat(xiao_temp%10+'0');beer=0;delay(4000);beer=1;

}

}

else {LCD_inter_command(0xc0);//从第二行开始显示

for(i=0;i<=4;i++)

{   LCD_inter_dat(tab3[i]);

beer=0;

delay(4000);//延时

beer=1;

}

}

}

void get_end(void)//计算子程序

{ float xiaoshu=1;

uchar fu_flag=0;

uchar xiao_flag=0;

uchar lianji_sign;

uchar i=0;

uchar j;

uchar n;//正负标记符

while(i<=xiabiao)

{

while(tab[i]<=0x39&&tab[i]>=0x30)

{

n=0;

opr_1*=10;

opr_1+=tab[i++]-0x30;

n='+';

}

switch(tab[i])

{

case '.':  xiao_flag=1;break;//遇到小数点跳到“if(xiao_flag)”里

case '!':  fu_flag=1;break;

case '+':  xiaoshu=1;yun_sign='+';if(opr_temp==0){end=opr_temp=opr_1;}else hun_he(lianji_sign);opr_1=0;lianji_sign='+'; break;

case '-':  xiaoshu=1;yun_sign='-';if(opr_temp==0){end=opr_temp=opr_1;}else hun_he(lianji_sign);opr_1=0;lianji_sign='-'; break;

case 'x':  xiaoshu=1;yun_sign='x';if(opr_temp==0){end=opr_temp=opr_1;}else hun_he(lianji_sign);opr_1=0;lianji_sign='*';break;

case '/':  xiaoshu=1;yun_sign='/';if(opr_temp==0){end=opr_temp=opr_1;}else hun_he(lianji_sign);a=opr_1;opr_1=0;lianji_sign='/';break;

case '=':

switch(yun_sign)//进行运算

{

case '+':end=opr_temp+opr_1;break;

case '-':end=opr_temp-opr_1;break;

case 'x':end=opr_temp*opr_1;break;

case '/':{

if(a==0)//减数为零显错

{ LCD_inter_command(0xc0);

for(j=0;j<=4;j++)

{

LCD_inter_dat(tab3[j]);

beer=0;

delay(4000);//延时

beer=1;

}

}

else

{end=opr_temp/opr_1;}

break;

}

default:break;

}

ok=1;//开始进行显示,标志位置1

xiabiao=0;//小数的标志位清零

break;

default:break;

}

i++;

if(xiao_flag)//表示小数

{

while(tab[i]<=0x39&&tab[i]>=0x30)

{

xiaoshu*=0.1;

switch(n)

{

case '+': opr_1=opr_1+(tab[i++]-0x30)*xiaoshu;break;

case '-':  opr_1=opr_1-(tab[i++]-0x30)*xiaoshu; break ;

default:break; }

xiao_flag=0;

}

}

if(fu_flag)

{

while(tab[i]<=0x39&&tab[i]>=0x30)

{

n=0;

opr_1=-opr_1*10;

opr_1=-(opr_1+(tab[i++]-0x30));

n='-';

fu_flag=0;

}

}

}

opr_1=0;

opr_temp=0;

xiabiao=0;

xiaoshu=1;

}

1、首先第一步就是要进行查找元器件并放入到原理图中,如下图所示。

2、接着就是要进行原理图连接根据网络标签的方式即可。

3、然后就是要进行编写程序,

程序源代码

#include #include

#include

#include

#define uchar unsigned char

#define uint unsigned int

uchar operand1[9], operand2[9];

uchar operator;

void delay(uint);

uchar keyscan();

void disp(void);

void buf(uint value);

4、最后一步就是进行验证正确后编译程序在protues中加载HEX观察仿真结果是否正确,如下图所示。

一、毕业设计题目及要求 (2个) 1、基于单片机控制的电动机Y-△启动的设计 要求:1)控制器为单片机,电动机为三相异步电动机;2)启动时间为3秒;3)由按键设置电动机Y-△运行、停止。 2、基于单片机控制的可调直流稳压电源的设计 要求:1)控制器为单片机,电压输出范围为0-10V,电压精度为0.1V;2)通过数码管显示电压值;3)由按键设置电压值。 二、毕业设计用到的主要软件(及功能) 毕业设计用到的主要软件(及功能):Keil 51(源程序编译),Proteus(电路仿真),AutoCAD(绘图), Visio(绘流程图), Protel 99SE(原理图电路设计,PCB板制作) 三、单片机方面毕业设计要求 1、学会编写程序(用C语言或汇编语言),用Keil 51软件对源程序进行编译。 2、学会用Proteus电路仿真软件对所设计的硬件电路进行仿真。 3、在写毕业论文时,学会用Word、AutoCAD, Visio,Protel 99SE等软件对程序流程图、电路原理图等进行绘制。 相关答案 ↓位朋友,以51单片机为例。51现在很多都是用仿真器来进行在线调试的,而每个公司的仿真器都会有自带的编程软件,当然,跟keil是差不了多少的。 步骤大体如下: 1.新建,进行程序的编写 2.连上仿真器或烧写器,这一步有可能要对仿真器或烧写器进行设置,具体可看它们的使用说明 3.对程序进行编译,这一步会自动检测你的程序有没错,如果有错,是不能进入下一步的.如果你用的是仿真器,这一步编译成功后就可以直接运行进行在线调试了。 4.如果用的是烧写器,那就进行烧写 各个软件和调试方法会有些不同,但大体就是这样,一些调试工具的说明书也有很详细的说明。 学参数测量技术涉及范围广,特别是微电压、微电流、高电压以及待测信号强弱相差极大的情况下,既要保证弱信号的测量精度又要兼顾强信号的测量范围,在技术上有一定的难度。传统的低成本仪表在测量电压、电阻时都采用手动选择档位的方法来转换量程。在使用中,当忘记转换档位时,会造成仪表测量精度下降或损坏。 现代电子测量对系统的精度要求越来越高且智能化程度也越来越高。全量程无档自动量程转换电压表和电阻表是在保证测量精度不下降的前提条件下省去手动转换量程的工作,得到了广泛应用。 本文介绍了一种基于AT89S52 单片机 的智能多用表。该表能在单片机的控制下完成直流电压、电阻和直流电流的测量。测量电流部分采用了简单的I/V转换电路完成测试;测量电压部分结合模拟开关CD4051和运算放大器OP07构成程控放大器,实现了自动量程转换;测量电阻部分也由模拟开关CD4051和运算放大器OP07相结合,在单片机控制下完成了自动量程转换。电流、电压和电阻的最终测量信号都在单片机的控制下由12位A/D转换器TLC2543进行采集,采集的信号经单片机数据处理后通过LCD(12864)显示出来,测量结果还可以由带有串行EEPROM的CPU存储器和监控器的X25045进行多个数据保存。 关键词:TLC2543 自动量程转换 程控增益放大器 电压 电阻 电流 目录 摘要1 Abstract 2 第一章 绪论 5 1. 1 概述 5 1. 2 智能仪器/仪表国内外发展概况 5 1. 3 课题研究目的及意义 6 第二章 系统结构及功能介绍 8 2. 1 系统功能和性能指标 8 2. 1. 1 仪表功能 8 2. 1. 2 性能指标 8 2. 1. 3 本机特色 8 2. 1. 4 系统使用说明 9 2. 2 系统工作原理概述 9 第三章 方案设计与论证 11 3. 1 量程选择的设计与论证 11

毕业论文基于单片机的计算器

protues里自带了这个程序,是8031的,和原理图,代码都有,自己找找

电气自动化毕业论文题目选择。怎么说。。看你会写吗。。有什么要求。

1 KM-1 键混器的设计 1 Sw3204V监控器的设计 1 基于射频遥控型(单片机)交通灯的设计1 Sw802V视频切换器的设计 1 无线数控多相位灯从机的设计1 基于RS232遥控型交通灯的设计1 Sw802A音频切换器的设计1 Sw6408V监控器的设计 1 KM-3键混器的设计1 无线数控多相位灯主机的设计1 SW162V数字视频切换器的设计1 基于RS232监控切换器1 SW401V 数字视频切换器的设计1 基于单片机的多路数据采集系统1 RS485转RS232的模块设计1 基于LCD显示的波形发生器的设计1 4-20mA转RS-485模块的设计 1 基于RS232流量计的设计 1 基于PTR2000的交通灯控制器主机的设计1 基于RS485量水仪的设计1 压力采集控制器的设计 1 数字量转4-20mA模拟量输出的模块设计1 正弦波形发生器的设计1 基于PTR2000的交通灯控制器从机的设计1 基于RS485视频切换器的设计1 LCD车速里程表电路设计1 LED车速里程表电路设计1 MSK通信系统的仿真设计1 员工信息管理系统 1 计算机文化基础考试系统的设计和开发1 人事工资管理系统1 员工信息管理系统设计1 超市进销存管理系统的VB实现1 基于单片机的多波形发生器的应用1 基于单片机电动自行车控制器设计1 个人理财管理系统1 基于CAN总线火灾监控系统的研究1 基于DSP平台的FIR滤波器设计1 于Matlab的FIR数字滤波器设计与仿真1 基于TMS320VC5402-DSP的最小系统硬件设计1 基于单片机的热水控制器 1 基于单片机的路灯控制系统的设计1 于单片机远程控制家用电器系统的设计1 基于液晶显示的乘法口诀测试仪的设计1 实验室设备管理系统毕业设计开题报告1 用AT89C51做PLC.doc1 洗衣机全自动控制.doc1 数显频率计的设计.doc1 数控车间温度湿度控制系统设计.doc1 三角波斜率测试仪设计.doc1 人脸几何特征提取1 全自动洗衣机的控制程序设计.doc1 乞丐论文.doc1 教学楼毕业设计.doc1 建立海上风电场的技术要求分析与探讨.doc1 基于凌阳61A的数字式温湿度检测仪.doc1 基于几何匹配和分合算法的人脸识别.doc1 基于单片机数字钟的设计.doc1 基于单片机数据通用采集器的设计.doc1 基于单片机数据采集器.doc1 基于单片机的自动报警器的设计.doc1 基于单片机的终端设计.doc1 基于单片机的路灯控制系统控制系统的设计.doc1 基于单片机的交通灯的设计.doc1 基于单片机的简易计算器的设计.doc1 基于单片机的家用安保系统的设计.doc1 基于VHDL的数字频率计.doc1 基于SystemView的OFDM系统仿真设计.doc1 基于SystemView的OFDM系统仿真设计1.doc1 基于PLC的烧结配料控制系统设计.doc1 基于MSP430的温度检测系统设计1.doc1 基于MATLAB工具箱的数字滤波器设计.doc1 基于MATLAB的扩频通信系统仿真研究.doc1 基于GSM短信息通信方式的路灯无线监控系统.doc1 基于FPGA的信号源设计.doc1 基于EPP协议的AVR与PC并行通信系统的设计0.doc1 单片机交通灯.doc1 单片机多点温度巡回检测系统的设计.doc1 单片机的温湿度检测系统A.doc1 单路口交通信号PLC控制系统的设计.doc1 城市路口多相位自寻优交通信号控制设计.doc1 陈洁(螺旋瓶盖的设计).doc1 八路竞赛抢答器.doc1 matlab信号与系统.doc1 GSM系统的研究与SystemView仿真.doc1 蒯申红智能语音报站系统设计5.301 MT8888在家庭安全电话报警系统中的应用设计1 基于FPGA的频率与功率因数在线测量1 基于FPGA的误码测试仪如果需要定做的话系 Q 273546756

ptotues软件中带了一个单片机实现的简易计算器

51单片机交通灯设计毕业论文

#include#define uchar unsigned char#define uint unsigned intsbit RED_A=P0^0; //东西向灯sbit YELLOW_A=P0^1;sbit GREEN_A=P0^2;sbit RED_B=P0^3; //南北向灯sbit YELLOW_B=P0^4;sbit GREEN_B=P0^5;uchar Flash_Count=0,Operation_Type=1; //闪烁次数,操作类型变量《单片机C语言程序设计实训100例---基于8051和PROTEUS仿真》案例5上海师范大学信息与机电工程学院—倪继锋//延时void DelayMS(uint x){uchar i;while(x--) for(i=0;i<120;i++);}//交通灯切换void Traffic_Light(){switch(Operation_Type){case 1: //东西向绿灯与南北向红灯亮RED_A=1;YELLOW_A=1;GREEN_A=0;RED_B=0;YELLOW_B=1;GREEN_B=1;DelayMS(2000);Operation_Type=2;break;case 2: //东西向黄灯闪烁,绿灯关闭DelayMS(300);YELLOW_A=~YELLOW_A;GREEN_A=1;if(++Flash_Count!=10) return; //闪烁5 次Flash_Count=0;Operation_Type=3;break;case 3: //东西向红灯,南北向绿灯亮RED_A=0;YELLOW_A=1;GREEN_A=1;RED_B=1;YELLOW_B=1;GREEN_B=0;DelayMS(2000);Operation_Type=4;break;case 4: //南北向黄灯闪烁5 次DelayMS(300);YELLOW_B=~YELLOW_B;GREEN_B=1;if(++Flash_Count!=10) return;Flash_Count=0;Operation_Type=1;}}//主程序void main(){while(1) Traffic_Light();}

单片机交通灯毕业设计

在日常生活中,交通灯是一项必不可少的公共设施,可以维护道路的畅通和交通的秩序。如若交通灯发生故障,那么后果可想而知。因此,交通灯的正常工作就显得尤为重要。由于交通灯对于公共安全的重要性,本文基于51单片机模拟双向交通灯的设计。下面是我整理的单片机交通灯毕业设计,欢迎来参考!

一、交通灯的设计要求

双向交通灯红、黄、绿灯对应相同,红灯5s,黄灯1s,绿灯5s。当有急救车到达时,双向交通信号为全红,以便让急救车通过。假定急救车通过路口时间为10s,急救车通过后,交通灯恢复中断前状态。

二、AT89C51单片机的中断系统介绍

计算机系统中止当前的正常工作,转入处理突发事件,等到突发事件处理完毕之后,再回到原来被中断的地方,继续原来的工作,这样的整个过程称为中断。能够实现这种功能的.部件称为中断系统。产生中断请求的事件称为中断源。其中AT89C51单片机具有5个中断源,在本次设计中我们采用的是外部事情中断请求源0,以及T1计数溢出事情中断请求这两个中断源。

三、AT89C51单片机的定时/计数器介绍

在单片机中,通常计数器和定时器设计成一个部件――计数器,当计数脉冲的周期一定时,计数器就作为定时器,定时时间就是计数器计数次数和计数脉冲周期的乘积。在此我们采用的就是计数器的这个定时功能。

四、交通灯的硬件电路搭建

本次设计的硬件电路搭建如图1。两路交通灯的6个灯依次接在51单片机P1口的P1.0到P1.5,另外在单片机的P3.2口接一个按压式开关作为救护车到来时的中断源。

五、交通灯的软件编程设计

中断部分的程序设计。首先,应将51单片机中中断允许寄存器IE的EA位设为1,这代表允许中断源向CPU申请中断,即CPU开放中断。同时将IE的EX0位设为1,这代表允许外中断0向CPU申请中断。这样的话,当救护车来的时候,可以借此发出中断请求。接下来,应将定时器控制寄存器TCON的IT0位设为1,这代表外部中断0的触发方式选择为边沿触发方式。由于笔者采用了按压式的开关作为中断的发出方式,这样会产生一个脉冲,因此应当选择边沿触发方式。定时部分的程序设计。首先,应将控制寄存器TCON的TR1位置1,启动定时器T1计数。接下来,应将方式寄存器TMOD的值设为0x01,使得定时器T1工作在方式1,即16位定时/计数方式。然后,由于计时器的定时周期是1s,笔者使用定时/计数器T1精确定时50ms,则20次50ms中断时,定时时间就是1s。在定时器中断部分,笔者采用的是查询方式,即CPU不断查询TF1的状态,当TF1为1时,表示50ms定时已到,在主程序中判断是否20次50ms定时已到,如是,则时间恰好为1s。同时TF1位软件清0。根据公式,当定时时间为50ms时,计数初值应为15536,换算成十六进制是3CB0H,即计数器T1中TL1的初值为B0H;TH0的初值为3CH。当救护车到来时,双向交通灯置红,即将双向交通灯的红灯所对应的P1口位置1,其他位清0即可。时间长短的设置方法同上。最后,由于双向交通灯红灯5s,黄灯1s,绿灯5s,共11个状态,我们利用switch语句为这11个状态分别设置相应P1口的值,再利用一个循环即可。

六、结语

在机动车数量激增的今天,车辆拥堵、交通崩溃的现象还是时有发生的。其原因多半是交通灯时长设置的不合理,抑或无法根据一天之内不同时间的车流状况,对交通灯的状态进行调整。因此,合理地设计交通系统,同时对于交通灯的适当调试无疑将会派上很大用场。

很简单,你把微机原理、计算机系统看一遍就会了。

不就是控制灯的亮跟灭嘛简单得要死

本科51单片机毕业论文

单片机毕业论文答辩陈述

难忘的大学生活将要结束,毕业生都要通过最后的毕业论文,毕业论文是一种有计划的检验大学学习成果的形式,那么毕业论文应该怎么写才合适呢?以下是我为大家收集的单片机毕业论文答辩陈述,仅供参考,希望能够帮助到大家。

单片机毕业论文答辩陈述

各位老师好!我叫刘天一,来自**,我的论文题目是《基于AVR单片机的GSM—R基站天线倾角测量系统》。在这里,请允许我向宁提纲老师的悉心指导表示深深的谢意,向各位老师不辞劳苦参加我的论文答辩表示衷心的感谢。

下面我将从论文的背景意义、结构内容、不足之处三个方面向各位老师作一大概介绍,恳请各位老师批评指导。

首先,在背景和意义上,移动通信网络建设初期,基站站间距大、数量少、站型也不大,并且频率资源相对比较丰富。在这一阶段的网络规划时很少对天线的倾角做详细的规划,基站功率常常以满功率发射。对于越区覆盖则主要通过增加邻区的办法予以解决。

但随着网络的迅速发展,城市中的基站越来越密集,在一个中等城市通常分布着数十个基站,在省会城市更是达到了数百个基站之多,并且基站的密度越来越高,站型也越来越大,如果对越区覆盖的问题仍然釆用老办法解决,那么网络质量将难以保证。因此有必要在规划阶段就对基站天线的倾角、基站静态发射功率等进行更加细化合理的规划,从而减轻优化阶段的工作量。

合理设置天线下倾角不但可以降低同频干扰的影响,有效控制基站的覆盖范围,而且可以加强本基站覆盖区内的信号强度。通常天线下倾角的设定有两方面侧重,一方面侧重于干扰抑制,另一方面侧重于加强覆盖。这两方面侧重分别对应不同的下倾角算法。一般而言,对基站分布密集的地区应该侧重于考虑干扰抑制(大下倾角);而基站分布比较稀疏的地方则侧重于考虑加强覆盖(小下倾角)。

规划阶段进行的倾角设计,在实际施工过程中会出现一定的偏差,在使用的过程中,由于季节变化或风、雨、雪、温度、湿度等自然条件影响,基站天线倾角会发生变化,进而影响场强质量。而移动通信已经是人类日常生活中不可或缺的一部分,正常的通信离不开基站的建设与维护,因此,基站天线倾角的实时、精确测量就显得尤为重要了。但现阶段移动通信基站的天线方位角、下倾角等基本是依靠人工现场通过罗盘、坡度仪等仪器进行测量得到的,而且由于基站的数量巨大,因而测量耗费了大量的时间、人力、物力,并且存在较大的测量人员人身安全隐患。因此,实现一种省时、省力的自动化测量仪器是非常亟需的。

为此,拟研发GSM—R基站天线倾角测量系统,实现不登塔作业即可完成基站天线倾角的测量工作,并可对各基站测试点进行联网,实现对基站天线倾角的实时监测。本系统可以大大降低GSM—R系统现场维护作业的人身安全风险和作业难度、强度,具有很高的实用性和安全性。

其次,在结构内容上,论文主要对基站倾角测量系统进行设计,主要研宄内容为:

(1)根据控制要求,选用倾角测量模块;学会使用并通过使用手册深入学习其特性及原理。

(2)采用ATmegal62作为控制芯片,进行倾角测量系统的硬件电路设计。整个系统分为主板和从板,通过芯片内置的TWI串行总线传输接口进行通信,由主板将数据通过无线模块发送给手持终端。

(3)采用JZ863数传模块,将其与上位机控制芯片、下位机控制芯片的异步串行接收/发送器USART连接,进行上位机与下位机的无线数据通信。

(4)在硬件平台基础上根据模块化思想进行倾角测量系统的软件程序设计。

(5)在设计好的软硬件平台上进行相关实验,实现控制系统设计目标和要求。

本文各章节安排如下:

第1章“引言”,对倾角测量系统进行了简要概述,介绍了研宄背景,并对本文的内容作了简介。

第2章“倾角测量传感器”,主要分析了本系统比较重要的倾角测量模块的原理以及SCA100T—D01倾角测量芯片,对其各个引脚的功能以及通信协议等进行了阐述,为后面的具体实现打下了基础。

第3章“ATmegal62微处理器结构及原理”,分析了本毕设使用的核心单片机芯片ATmegal62,包括它的各个引脚以及I/O端口,并且分析了本论文主要使用的通信协议,即同步串行SPI接口和USART串行口。

第4章“倾角测量系统软硬件实现”,本章首先对系统的总体设计进行了实现,包括主要的技术指标、主要的功能模块等。接着进行了本系统的硬件实现和软件实现。硬件实现包括各个功能模块的具体电路设计以及最后的PCB电路板制作,软件实现包括各个功能模块的程序设计。

第5章“倾角测量系统调试及实验”,本章主要进行了硬件电路的调试,并介绍了通过AVR Studio进行软件仿真以及下载,最后在搭建的系统软硬件平台的基础上,进行调试和实验,以此来验证基站倾角测量系统的硬件与软件设计。

第6章“结论”,本章主要总结了本论文的研究结果,并阐述了系统的不足之处和对以后工作的展望。

最后,在不足之处上,这篇论文的写作以及修改的过程,也是我越来越认识到自己知识与经验缺乏的过程。虽然,我尽可能地收集材料,竭尽所能运用自己所学的知识进行论文写作,但论文还是存在许多不足之处,有待改进。请各位评委老师多批评指正,让我在今后的学习中学到更多。

[知识拓展]

论文答辩提问方式

在毕业论文答辩会上,主答辩老师的提问方式会影响到组织答辩会目的的实现以及学员答辩水平的发挥。主答辩老师有必要讲究自己的提问方式。

1、提问要贯彻先易后难原则。主答辩老师给每位答辩者一般要提三个或三个以上的问题,这些要提的问题以按先易后难的次序提问为好。所提的第一个问题一般应该考虑到是学员答得出并且答得好的问题。学员第一个问题答好,就会放松紧张心理,增强“我”能答好的信心,从而有利于在以后几个问题的答辩中发挥出正常水平。反之,如果提问的第一个问题就答不上来,学员就会背上心理包袱,加剧紧张,产生慌乱,这势必会影响到对后面几个问题的答辩,因而也难以正确检查出学员的答辩能力和学术水平。

2、提问要实行逐步深入的方法。为了正确地检测学员的专业基础知识掌握的情况,有时需要把一个大问题分成若干个小问题,并采取逐步深入的提问方法。如有一篇《浅论科学技术是第一生产力》的论文,主答辩老师出的探测水平题,是由以下四个小问题组成的。

(1)什么是科学技术?

(2)科学技术是不是生产力的一个独立要素?在学员作出正确回答以后,紧接着提出第三个小问题:

(3)科学技术不是生产力的一个独立要素,为什么说它也是生产力呢?

(4)你是怎样理解科学技术是第一生产力的?通过这样的提问,根据学员的答辩情况,就能比较正确地测量出学员掌握基础知识的扎实程度。如果这四个小问题,一个也答不上,说明该学员专业基础知识没有掌握好;如果四个问题都能正确地回答出来,说明该学员基础知识掌握得很扎实;如果能回答出其中的2—3个,或每个小问题都能答一点,但答得不全面,或不很正确,说明该学员基础知识掌握得一般。倘若不是采取这种逐步深入的提问法,就很难把一个学员掌握专业基础知识的情况准确测量出来。假如上述问题采用这样提问法:请你谈谈为什么科学技术是第一生产力?学员很可能把论文中的主要内容重述一遍。这样就很难确切知道该学员掌握基础知识的情况是好、是差、还是一般。

3、当答辩者的观点与自己的观点相左时,应以温和的态度,商讨的语气与之开展讨论,即要有“长者”风度,施行善术,切忌居高临下,出言不逊。不要以“真理”掌握者自居,轻易使用“不对”、“错了”、“谬论”等否定的断语。要记住“是者可能非,非者可能有是”的格言,要有从善如流的掂量。如果作者的观点言之有理,持之有据,即使与自己的观点截然对立,也应认可并乐意接受。倘若作者的观点并不成熟、完善,也要善意地、平和地进行探讨,并给学员有辩护或反驳的平等权利。当自己的观点不能为作者接受时,也不能以势欺人,以权压理,更不要出言不逊。虽然在答辩过程中,答辩老师与学员的地位是不平等的(一方是审查考核者,一方是被考核者),但在人格上是完全平等的。在答辩中要体现互相尊重,做到豁达大度,观点一时难以统一,也属正常。不必将自己的观点强加于人,只要把自己的观点亮出来,供对方参考就行。事实上,只要答辩老师讲得客气、平和,学员倒愈容易接受、考虑你的观点,愈容易重新审视自己的观点,达到共同探索真理的目的。

4、当学员的回答答不到点子上或者一时答不上来的问题,应采用启发式、引导式的提问方法。参加过论文答辩委员会的老师可能都遇到过这样的情况:学员对你所提的问题答不上来,有的就无可奈何地“呆”着;有的是东拉西扯,与你绕圈子,其实他也是不知道答案。碰到这种情况,答辩老师既不能让学员尴尬地“呆”在那里,也不能听凭其神聊,而应当及时加以启发或引导。学员答不上来有多种原因,其中有的是原本掌握这方面的知识只是由于问题完全出乎他的意料而显得心慌意乱,或者是出现一时的“知觉盲点”而答不上来。这时只要稍加引导和启发,就能使学员“召回”知识,把问题答好。只有通过启发和引导仍然答不出或答不到点子上的,才可判定他确实不具备这方面的知识。

【拓展】

单片机毕业论文开题报告参考

1. 课题名称:

数字钟的设计

近年来,随着单片机档次的不断提高,功能的不断完善,其应用日趋成熟、应用领域日趋广泛,特别是工业测控、尖端武器和日常家用电器等领域更是因为有了单片机而生辉增色,不少设备、仪器已经把单片机作为核心部分。单片机应用技术已经成为一项新的工程应用技术。尤其是Intel公司生产的MCS-51系列单片机,由于其具有集成度高、处理功能强、可靠性高、系统结构简单、价格低廉等优点,在我国得到了广泛的`应用,在智能仪器仪表机电一体化等方面取得了令人瞩目的成果。现在单片机可以说是百花齐放,百家争鸣,世界上各大芯片制造公司都推出了自己的单片机,从8位,16位,到32位,数不胜数,应有尽有由于主流C51兼容的,也有不兼容的,但他们各具特色,互成互补,为单片机的应用提供了广泛的天地。在高节奏发展的现代社会,以单片机技术为核心的数字钟越来越彰显出它的重要性。

3. 设计目的和意义:

单片机的出现具有划时代的意义。它的出现使得许多原本花费很高的复杂电路以及繁多的电气元器件都被取缔,取而代之的是一块小小的芯片。伴随着计算机技术的不断发展,单片机也得到了相应的发展,而且其应用的领域也得到更好的扩展。在民用,工用,医用以及军用等众多领域上都有所应用。为了,能够更好的适应这日新月异的社会,我们应当充实我们的知识面,方能不被时代的潮流踩在脚下。

介于单片机的重要性,我们应当对单片机的原理,发展以及应用有着一定的了解。所以,我们应当查阅相关资料,从而能够对单片机有个全方位的了解。进而将探讨的领域指向具体的国内,从而能够在科技与经济飞速发展的当今社会更好的应用这项技术。事实上,该项技术在国内有着极为广泛的发展前景,因此,通过对本课题的研究,我们因当能够充分认识到单片机技术的重要性,对单片机未来的发展趋势有所展望。

单片机的形成背景:

1.随着微电子技术的不断创新和发展,大规模集成电路的集成度和工艺水平不断提高。硅材料与人类智慧的结合,生产出大批量的低成本、高可靠性和高精度的微电子结构模块,推动了一个全新的技术领域和产业的发展。在此基础上发展起来的器件可编程思想和微处理(器)技术可以用软件来改变和实现硬件的功能。微处理器和各种可编程大规模集成专用电路、半定制器件的大量应用,开创了一个崭新的应用世界,以至广泛影响着并在逐步改变着人类的生产、生活和学习等社会活动。

2.计算机硬件平台性能的大幅度提高,使很多复杂算法和方便使用的界面得以实现,大大提高了工作效率,给复杂嵌入式系统辅助设计提供了物理基础。

3.高性能的EDA综合开发工具(平台)得到长足发展,而且其自动化和智能化程度不断提高,为复杂的嵌入式系统设计提供了不同用途和不同级别集编辑、布局、布线、编译、综合、模拟、测试、验证和器件编程等一体化的易于学习和方便使用的开发集成环境。

4.硬件描述语言HDL(Hardware Description Language)的发展为复杂电子系统设计提供了建立各种硬件模型的工作媒介。它的描述能力和抽象能力强,给硬件电路,特别是半定制大规模集成电路设计带来了重大的变革。

5.软件技术的进步,特别是嵌入式实时操作系统EOS(Embedded Operation System)的推出,为开发复杂嵌入式系统应用软件提供了底层支持和高效率开发平台。EOS是一种功能强大、应用广泛的实时多任务系统软件。它一般都具有操作系统所具有的各种系统资源管理功能,用户可以通过应用程序接口API调用函数形式来实现各种资源管理。用户程序可以在EOS的基础上开发并运行。

单片机的发展历史:20世纪70年代,微电子技术正处于发展阶段,集成电路属于中规模发展时期,各种新材料新工艺尚未成熟,单片机仍处在初级的发展阶段,元件集成规模还比较小,功能比较简单,一般均把CPU、RAM有的还包括了一些简单的I/O口集成到芯片上,它还需配上外围的其他处理电路方才构成完整的计算系统。类似的单片机还有Z80微处理器。

1976年INTEL公司推出了MCS-48单片机,这个时期的单片机才是真正的8位单片微型计算机,并推向市场。它以体积小,功能全,价格低赢得了广泛的应用,为单片机的发展奠定了基础,成为单片机发展史上重要的里程碑。

在MCS-48的带领下,其后,各大半导体公司相继研制和发展了自己的单片机。到了80年代初,单片机已发展到了高性能阶段,象INTEL公司的MCS-51系列,Motorola公司的6801和6802系列等等,此外,日本的著名电气公司NEC和HITACHI都相继开发了具有自己特色的专用单片机。

80年代,世界各大公司均竞相研制出品种多功能强的单片机,约有几十个系列,300多个品种,此时的单片机均属于真正的单片化,大多集成了CPU、RAM、ROM、数目繁多的I/O接口、多种中断系统,甚至还有一些带A/D转换器的单片机,功能越来越强大,RAM和ROM的容量也越来越大,寻址空间甚至可达64kB,可以说,单片机发展到了一个全新阶段,应用领域更广泛,许多家用电器均走向利用单片机控制的智能化发展道路。

1982年以后,16位单片机问世,代表产品是INTEL公司的MCS-96系列,16位单片机比起8位机,数据宽度增加了一倍,实时处理能力更强,主频更高,集成度达到了12万只晶体管,RAM增加到了232字节,ROM则达到了8kB,并且有8个中断源,同时配置了多路的A/D转换通道,高速的I/O处理单元,适用于更复杂的控制系统。

九十年代以后,单片机获得了飞速的发展,世界各大半导体公司相继开发了功能更为强大的单片机。美国Microchip公司发布了一种完全不兼容MCS-51的新一代PIC系列单片机,引起了业界的广泛关注,特别它的产品只有33条精简指令集吸引了不少用户,使人们从INTEL的111条复杂指令集中走出来。PIC单片机获得了快速的发展,在业界中占有一席之地。

随后的事情,熟悉单片机的人士都比较清楚了,更多的单片机种蜂拥而至,MOTOROLA公司相继发布了MC68HC系列单片机,日本的几个著名公司都研制出了性能更强的产品,但日本的单片机一般均用于专用系统控制,而不象INTEL等公司投放到市场形成通用单片机。例如NEC公司生产的uCOM87系列单片机,其代表作uPC7811是一种性能相当优异的单片机。MOTOROLA公司的MC68HC05系列其高速低价等特点赢得了不少用户。

1990年美国INTEL公司推出了80960超级32位单片机引起了计算机界的轰动,产品相继投放市场,成为单片机发展史上又一个重要的里程碑。

我国开始使用单片机是在1982年,短短五年时间里发展极为迅速。1986年在上海召开了全国首届单片机开发与应用交流会,有的地区还成立了单片微型计算机应用协会,那是全国形成的第一次高潮。截止今日,单片机应用技术飞速发展,我们上因特网输入一个“单片机”的搜 索,将会看到上万个介绍单片机的网站,这还不包括国外的。随着微电子技术的高速发展,单片机在国民经济的各个领域得到了广泛的应用。首先,单片机技术不断进步,出现了许多新的技术和新的产品。本文以Intel MCS-51系列单片机为模型,阐述单片机的一般原理、应用以及单片机的影响,较为详细地介绍当前主要单片机厂家的产品系列及发展动向。主要内容包括:单片机的基本原理、硬件结构、发展趋势以及具体的应用介绍。本文主要目的是想让大家对单片机有一个更为深入的了解。

科技的进步需要技术不断的提升。试想,曾经一块大而复杂的模拟电路花费了您巨大的精力,繁多的元器件增加了您的成本。而现在,只需要一块几厘米见方的单片机,写入简单的程序,就可以使您以前的电路简单很多。相信您在使用并掌握了单片机技术后,不管在您今后开发或是工作上,一定会带来意想不到的惊喜。

数字钟的发展:1350年6月6日,意大利人乔万尼·德·党笛制造了世界上第一台结构简单的机械打点多功能数字钟,由于数字钟报价便宜,功能齐全,因此很快受到众多用户的喜爱。1657年,荷兰人惠更斯率先把重力摆引入机械钟,进而才创立了摆钟。

到了20世纪以后,随着电子工业的快速发展,电池驱动钟、交流电钟、电机械表、指针式石英电子钟表以及数字显示式石英钟表相继问世,数字钟报价非常合理,再加上产品的不断改良,多功能数字钟的日差已经小于0.5秒,因此受到广大用户的青睐。尤其是原子钟的出现,它是使用原子的振动来控制计时的,是目前世界上最精准的时钟,即使经过将近100万年,其偏差也不可能超过1秒钟。

多功能数字钟最早是在欧洲中世纪的教堂,属于完全机械式结构,动力使用重锤,打点钟声完全使用人工进行撞击铸钟,所以当时一个多功能数字钟工程在建筑与机械结构方面是非常复杂的,进而影响了数字钟报价。进入电子时代以后,电子多功能数字钟也相继问世。我国电子多功能数字钟行业从80年代开始渐渐成长壮大,目前不仅数字钟报价合理,在技术和应用水平上也已经达到世界同类水平。

4. 国内外现状和发展趋势:

纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:

1.低功耗CMOS化

MCS-51系列的8031推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。象80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。CMOS虽然功耗较低,但由于其物理特征决定其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于在要求低功耗象电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径。

2.微型单片化

现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。

此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。

3.主流与多品种共存

现在虽然单片机的品种繁多,各具特色,但仍以80C51为核心的单片机占主流。所以C8051为核心的单片机占据了半壁江山。而Microchip公司的PIC精简指令集(RISC)也有着强劲的发展势头,中国台湾的HOLTEK公司近年的单片机产量与日俱增,与其低价质优的优势,占据一定的市场分额。此外还有MOTOROLA公司的产品,日本几大公司的专用单片机。在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补,相辅相成、共同发展的道路。

用单片机进行温度的控制及LCD显示系统的设计论文编号:JD909 包括开题报告,任务书。 论文字数:14253,页数:45摘 要 温度测量与控制是工程实践中常见的问题,在工业生产中有着广泛的应用。针对此领域的发展方向,本论文设计了一个基于单片机的智能温度测量系统。本系统以AT89C51单片机为微控制器,采用数字温度传感器DS18B20作为测温元件, 温度传感器DS18B20采集温度信号送给单片机处理,单片机再把处理后的温度数据送到LCD上显示出来。 能够实现快速、准确的测温功能和越限声光报警功能。本论文完成了系统硬件电路的设计,给出了软件流程框图,并编写了相关的软件程序。 关键词:温度测量;传感器 ;单片机;LCD显示 Abstract Temperature measuring and the controlling are very common in the project practice and are widely adopted in the industry production . In view of development direction of this domain, this paper introduces a temperature measuring system which take the AT89C51 single chip microcontroller as an controlling unit and the digital temperature sensor --DS18B20, as temperauture measuring transducer. The collected temperature signals of the digital temperature transducer--DS18B20 are processed by the single chip microcontroller. The processed temperature signals are displayed on the LCD.This system has achieved prompt and precise temperature measuring and the super warnning function by sound and light .This paper has finished the design of hardware curcuit and compiled related software program.. Key word: Temperature measuring;Sensor;Single Chip Microcontroller ;LCD Display 目 录摘 要 IAbstract II绪 论 11系统的设计方案 32硬件设计2.1 单片机的选用 42.2 温度检测电路的设计 62.3 键盘模块的设计 102.4 液晶显示模块的设计 122.5 声光报警电路的设计 163软件设计3.1 程序设计语言和软件开发环境 173.2 软件程序设计 184抗干扰设计4.1. 硬件方面的措施 264.2 软件抗干扰技术 26结 论 28致 谢 29参考文献 30附录: 源程序 31以上回答来自:

51单片机优秀毕业论文

二、支持stc52系列单片机的 在线下载三、多个电源接线柱,多个地线接线柱,32个I/O口全部配有接线柱四、配有标准232接口,轻松实现单片机与电脑或者其他设备的通信五、可接4~6伏直流电,6、具有手动复位功能六、赠送丰富的学习资料9G的资料光盘,DVD2张:所有单片机资料,单片机视频,模拟电子视频,数字电路视频。七、发货清单1.最小系统板一块(含SST89C52RC一片)2.串口延长线一条(STC下载线)3.USB延长线一条4.9G的资料光盘,DVD2张:所有单片机资料,单片机视频,模拟电子视频,数字电路视频。5.杜邦线数根需要多的请购买。本产品常用配套可以选配件:1. 杜邦线 一排40个,一排价格15元1. USB转232配件,笔记本用户,价格30元2. 需要AT89S51/52的用户请另行购买 并口AT89S下载线+AT89S52芯片(合计40元)点击查看并口AT89S下载线的详细资料本站专门为该板配套的模块

新款的单片机都可以设置密码

用汇编还是用C语言.

一、毕业设计题目及要求 (2个) 1、基于单片机控制的电动机Y-△启动的设计 要求:1)控制器为单片机,电动机为三相异步电动机;2)启动时间为3秒;3)由按键设置电动机Y-△运行、停止。 2、基于单片机控制的可调直流稳压电源的设计 要求:1)控制器为单片机,电压输出范围为0-10V,电压精度为0.1V;2)通过数码管显示电压值;3)由按键设置电压值。 二、毕业设计用到的主要软件(及功能) 毕业设计用到的主要软件(及功能):Keil 51(源程序编译),Proteus(电路仿真),AutoCAD(绘图), Visio(绘流程图), Protel 99SE(原理图电路设计,PCB板制作) 三、单片机方面毕业设计要求 1、学会编写程序(用C语言或汇编语言),用Keil 51软件对源程序进行编译。 2、学会用Proteus电路仿真软件对所设计的硬件电路进行仿真。 3、在写毕业论文时,学会用Word、AutoCAD, Visio,Protel 99SE等软件对程序流程图、电路原理图等进行绘制。 相关答案 ↓位朋友,以51单片机为例。51现在很多都是用仿真器来进行在线调试的,而每个公司的仿真器都会有自带的编程软件,当然,跟keil是差不了多少的。 步骤大体如下: 1.新建,进行程序的编写 2.连上仿真器或烧写器,这一步有可能要对仿真器或烧写器进行设置,具体可看它们的使用说明 3.对程序进行编译,这一步会自动检测你的程序有没错,如果有错,是不能进入下一步的.如果你用的是仿真器,这一步编译成功后就可以直接运行进行在线调试了。 4.如果用的是烧写器,那就进行烧写 各个软件和调试方法会有些不同,但大体就是这样,一些调试工具的说明书也有很详细的说明。 学参数测量技术涉及范围广,特别是微电压、微电流、高电压以及待测信号强弱相差极大的情况下,既要保证弱信号的测量精度又要兼顾强信号的测量范围,在技术上有一定的难度。传统的低成本仪表在测量电压、电阻时都采用手动选择档位的方法来转换量程。在使用中,当忘记转换档位时,会造成仪表测量精度下降或损坏。 现代电子测量对系统的精度要求越来越高且智能化程度也越来越高。全量程无档自动量程转换电压表和电阻表是在保证测量精度不下降的前提条件下省去手动转换量程的工作,得到了广泛应用。 本文介绍了一种基于AT89S52 单片机 的智能多用表。该表能在单片机的控制下完成直流电压、电阻和直流电流的测量。测量电流部分采用了简单的I/V转换电路完成测试;测量电压部分结合模拟开关CD4051和运算放大器OP07构成程控放大器,实现了自动量程转换;测量电阻部分也由模拟开关CD4051和运算放大器OP07相结合,在单片机控制下完成了自动量程转换。电流、电压和电阻的最终测量信号都在单片机的控制下由12位A/D转换器TLC2543进行采集,采集的信号经单片机数据处理后通过LCD(12864)显示出来,测量结果还可以由带有串行EEPROM的CPU存储器和监控器的X25045进行多个数据保存。 关键词:TLC2543 自动量程转换 程控增益放大器 电压 电阻 电流 目录 摘要1 Abstract 2 第一章 绪论 5 1. 1 概述 5 1. 2 智能仪器/仪表国内外发展概况 5 1. 3 课题研究目的及意义 6 第二章 系统结构及功能介绍 8 2. 1 系统功能和性能指标 8 2. 1. 1 仪表功能 8 2. 1. 2 性能指标 8 2. 1. 3 本机特色 8 2. 1. 4 系统使用说明 9 2. 2 系统工作原理概述 9 第三章 方案设计与论证 11 3. 1 量程选择的设计与论证 11

相关百科

热门百科

首页
发表服务