当前位置:文档之家› PIC课程设计报告

PIC课程设计报告

PIC课程设计报告
PIC课程设计报告

电子装置与系统设计

课程设计

学院:

班级:

学号:

姓名:

指导老师:

日期:

电子装置与系统设计课程设计任务书

任务二选择:键盘显示功能(计算器)

相关资料:

一、 PIC18F452芯片

引脚说明:MCLR/VPP:主清0或编程电压

VDD:接电源

VSS:接地

RA0-RA7:双向I/O口

RB0-RB7:数字I/O口

RC0-RC7:数字I/O口

RD0-RD7:数字I/O口

RE0-RE3:数字I/O口

PIC18F452外设功能:

高灌/拉电流:25mA/25mA;

3个外部中断引脚,定时器0模块:具有8位可编程预分频器的8/16位定时器/计数器;

定时器1模块:16位定时器/计数器;

定时器2模块:具有8位周期寄存器的8位定时器/计数器(时基为脉宽调制);

定时器3模块:16位定时器/计数器;

辅助振荡器时钟选项:定时器1/定时器3;

2个捕捉/比较/PWM模块。

CCP引脚,可以配置为:捕捉输入:16位捕捉模块,最大分辨率是

6.25ns(TCY/16);

16位比较模块,最大分辨率为100ns(TCY);

PWM输出:最大PWM是1~10位。最大PWM频率:当8位分辨率为156kHz,10位分辨率为39kHz;

主同步串口(MSSP)模块;2种运作模式:3线SPITM(支持所有4线SPI 模式);I2CTM主从模式;

模拟功能:兼容的10位模数转换模块带有:快速采样率;可用转换睡眠;线形≤1LSB;可编程低电压检测(PLVD);支持中断低电压检测;可编程欠压复位(BOR);

微控制器的特殊功能:可进行100000次擦写操作的闪存程序存储器(标准值);闪存/数据EEPROM的保存时间:>40年,在软件控制下自行编程;

上电复位(POR),上电延时定时器(PWRT)和振荡器起振定时器(OST);

采用自身片上RC振荡器可靠工作的看门狗定时器(WDT),可编程代码保护;省电的休眠模式;可选振荡器选项包括:碴倍锁相回路(初级振荡器);辅助振荡器(32kHz)时钟输入;

通过2个引脚进行5V单电源供电在线串行编程(ICSPTM);通过2个引脚进行在线调试

二、LCD1602液晶显示屏

字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。一般1602字符型液晶显示器实物如图

1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图

`LCD1602主要技术参数:

显示容量:16×2个字符

芯片工作电压:4.5—5.5V

工作电流:2.0mA(5.0V)

模块最佳工作电压:5.0V

字符尺寸:2.95×4.35(W×H)mm

引脚功能说明:

1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口

第1脚:VSS为地电源。

第2脚:VDD接5V正电源。

第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电

位器调整对比度。

第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS 和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W

为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数

据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7为8位双向数据线。

第15脚:背光源正极。

第16脚:背光源负极。

三、4×4键盘

矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是4×4个。这种行列式键盘结构能够有效地提高单片机系统中I/O 口的利用率。

按键排列

4×4矩阵键盘的编程方法:

1、先读取键盘的状态,得到按键的特征编码。

先从P1口的高四位输出低电平,低四位输出高电平,从P1口的低四位读取键盘状态。再从P1口的低四位输出低电平,高四位输出高电平,从P1口的高四位读取键盘状态。将两次读取结果组合起来就可以得到当前按键的特征编码。使用上述方法我们得到16个键的特征编码。

举例说明如何得到按键的特征编码:

假设“1”键被按下,找其按键的特征编码。

从P1口的高四位输出低电平,即P1.4-P1.7为输出口。低四位输出高电平,即P1.0-P1.3为输入口。读P1口的低四位状态为“ 1101”,其值为“0DH”。

再从P1口的高四位输出高电平,即P1.4-P1.7为输入口。低四位输出低电平,即P10-P13为输出口,读P1口的高四位状态为“1110”,其值为“E0H”。

将两次读出的P0口状态值进行逻辑或运算就得到其按键的特征编码为“EDH”。

用同样的方法可以得到其它15个按键的特征编码。

2、根据按键的特征编码,查表得到按键的顺序编码。

将用上述方法得到的16个按键的特征编码按图2按键排列的顺序排成一张特征编码与顺序编码的对应关系表,然后用当前读得的特征编码来查表,当表中有该特征编码时,它所在的位置就是对应的顺序编码。

程序代码:

#include

#define uint unsigned int

#define uchar unsigned char

#define e PORTBbits.RB3

#define rw PORTBbits.RB4

#define rs PORTBbits.RB5

void disp_init(void); //液晶屏初始化

void disp(uint num1,uint i);

void dispc(uint num1);

void disp1(uint num1,uint num2,uint num3,uint num4,uint num5);

void write_com(uchar com); //写指令

void write_data(uchar dat); //写数据

unsigned int anjian(void);

unsigned int jisuan(uint a1,uint a2,uint fuhao);

void delay(uint z)

{

uint x,y;

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

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

}

rom unsigned char SEGCODE[]=

{

0x30,0x31,0x32,0x33,

0x34,0x35,0x36,0x37,

0x38,0x39,0x2B,0x2D,

0x2A,0x2F,0x3D,0x24,

};

rom unsigned char KEYCODE[]=

{

0xEE,0xDE,0xBE,0x7E,

0xED,0xDD,0xBD,0x7D,

0xEB,0xDB,0xBB,0x7B,

0xE7,0xD7,0xB7,0x77,

};

void main(void)

{

uint a=0,b=0,c,s=0;

uint temp,fuhao;

uint i,j,ii=0,temp1=0,temp2=0;

disp_init();

loop:

while(1)

{

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

{

temp=anjian();

if(temp!=0x24)

{

disp(temp,i);temp1=temp-0x30;

if((temp!=0x2B)&(temp!=0x2D)&(temp!=0x2A)&(temp!=0x2F)) {

a=a*10+temp1;

}

else

{

fuhao=temp;

i=6;

}

ii++;

}

else

{

a=(a-temp1)/10;

i--;

disp(0x20,i);

i--;

ii--;

}

}

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

{

temp=anjian();

if(temp!=0x24)

{

disp(temp,j+ii);temp2=temp-0x30;

if(temp!=0x3D)

{

b=b*10+temp2;

}

else

{

j=6;

}

}

else

{ b=(b-temp2)/10;

j--;

disp(0x20,j+ii);

j--;}

}

c=jisuan(a,b,fuhao); //c的值

dispc(c);

temp=anjian(); //c的显示

if(temp=0x24)

{

a=0;

b=0;

ii=0;

disp_init();

goto loop;

}

}

}

unsigned int jisuan(uint a1,uint a2,uint fuhao) {

uint c;

switch(fuhao)

{

case 0x2B:c=a1+a2;

break;

case 0x2D:c=a1-a2;

break;

case 0x2A:c=a1*a2;

break;

case 0x2F:c=a1/a2;

break;

}

return c;

}

unsigned int anjian(void) //按键扫描

{

unsigned char i;

unsigned char KeyTemp;

TRISC=0xFF;

while(1)

{

TRISC=0xF0;

LATC=0xF0;

if(0xF0!=(PORTC & 0xF0))

{

delay(50);

if(0xF0!=(PORTC & 0xF0))

{

KeyTemp=PORTC & 0xF0;

TRISC=0x0F;

LATC=0x0F;

KeyTemp|=(PORTC & 0x0F);

for(i=0;i

{

if(KeyTemp==KEYCODE[i])

{

KeyTemp=i;

i=sizeof(KEYCODE)+1;

}

}

return SEGCODE[KeyTemp];

}

//while(0x0F!=(PORTC & 0x0F));

}

}

}

void write_com(uchar com) //对液晶屏写指令

{

TRISB=0b000000000; //TRISB=0b00010000;

TRISD=0;

e=0;

rw=0;

rs=0; //写指令:RS=L,RW=L,D0~D7=指令码,E=高脉冲PORTD=com; //写指令到液晶

delay(5);

e=1;

delay(5);

e=0;

}

void write_data(uchar dat) //写数据

{

TRISD=0;

e=0;

rw=0;

rs=1; //写数据:RS=H,RW=L,D0~D7=指令码,E=高脉冲PORTD=dat; //写数据到液晶

delay(5);

e=1;

delay(5);

e=0;

}

void disp_init()

{

TRISD=0; //选择D端口为液晶屏数据的输入口

write_com(0x38); //液晶开显示

write_com(0x0c); //显示光标,光标闪烁

write_com(0x06); //读或写一个字符后地址指针加一,光标加一write_com(0x01); //显示清屏:1、数据指针清零;2、所有显示清零write_com(0x80); //第一行首位

}

void disp(uint num1,uint i)

{

write_com(0x80+i); //液晶第一行第i位数

write_data(num1);

delay(1);

}

void dispc(uint num1)

{

uint c1,c2,c3,c4,c5;

c1=num1/10000; //ADC结果千位上的数字

c2=num1%10000/1000; //ADC结果百位上的数字

c3=num1%1000/100; //ADC结果十位上的数字

c4=num1%100/10;

c5=num1%10;

disp1(c1,c2,c3,c4,c5);

}

void disp1(uint num1,uint num2,uint num3,uint num4,uint num5)

{

write_com(0x80+0x40);

write_data(num1+0x30); //液晶第二行第一位数

delay(1);

write_com(0x80+0x41);

write_data(num2+0x30); //液晶第二行第二位数

delay(1);

write_com(0x80+0x42);

write_data(num3+0x30); //液晶第二行第三位数

delay(1);

write_com(0x80+0x43);

write_data(num4+0x30); //液晶第二行第四位数

delay(1);

write_com(0x80+0x44);

write_data(num5+0x30); //液晶第二行第五位数

delay(1);

}

任务三:

相关资料:

一、max232 RS485

MAX232芯片是专门为电脑的RS-232标准串口设计的接口电路,使用+5v

单电源供电。

内部结构基本可分三个部分:

第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。

第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从

T1OUT、T2OUT送到电脑DP9插头;DP9插头的RS-232数据从R1IN、R2IN 输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。

第三部分是供电。15脚DNG、16脚VCC(+5v)。

下图为MAX232引脚图和接线图,带有转串口的电路。

二、ds18b20 数字温度传感器

1.DS1820的特性

·单线接口:仅需一根口线与MCU 连接 ·无需外围元件 ·由总线提供电源

·测温范围为-55℃~75℃,精度为0.5℃ ·九位温度读数 ·A/D 变换时间为200ms

·用户自设定温度报警上下限,其值是非易失性的 ·报警搜索命令可识别哪片DS1820 超温度限 2.DS1820 引脚及功能(见图4)

GND :地;

DQ :数据输入/输出脚(单线接口,可作寄生供电); VDD :电源电压。 3.DS18B20内部结构

DS1820的内部结构如图5所示。由图5可知,DS1820由三个主要数字器件组成:

① 64bit 闪速ROM ;

②温度传感器;

③非易失性温度报警触发器TH 和TL 。

4. 温度寄存器格式

5.DS18B20的使用方法

由于DS18B20采用的是1-Wire 总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。

由于DS18B20是在一根I/O 线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完

整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序

图5.DS18B20内部结构

图4.DS18B20引脚图

都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。

DS18B20的复位时序

DS18B20的读时序

对于DS18B20的读时序分为读0时序和读1时序两个过程。

对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。

DS18B20的写时序

对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。

对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。

程序代码:

//40MHZ,连在RA4脚上

#include

#include

//===================================================================

void PIC18F_HIGH_ISR(void); //高优先级中断服务函数

void PIC18F_LOW_ISR(void); //低优先级中断服务函数

#pragma code high_vector_section=0x08

void high_vector (void)

{

_asm goto PIC18F_HIGH_ISR _endasm

}

#pragma code low_vector_section=0x18

void low_vector (void)

{

_asm goto PIC18F_LOW_ISR _endasm

}

#pragma code

//------------------------------------------------宏定义

#define uint unsigned int

#define uchar unsigned char

#define ds https://www.doczj.com/doc/d010568183.html,TA4

#define DQ1_data PORTA&0x10

#define e PORTBbits.RB3 //液晶屏e端接RB5

#define rw PORTBbits.RB4 //液晶屏rw端接RB6

#define rs PORTBbits.RB5 //液晶屏rs端接RB7

#define LEDSEG_C LATC

#define Key_Data PORTBbits.RB1

#define Key_CLK PORTBbits.RB0

rom unsigned char LEDSEGCODE[]= //0-9笔段代码

{

0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f,

};

//-------------------------------------------------------全局变量

uint temp;

float f_temp; //温度传感器转换结果保存在lednum

uchar a1,a2,a3,a4,num; //a1--a4分别为液晶屏第二行第1、3、4、5位数

unsigned int value=0;

unsigned int value2=0;

unsigned int value3=0;

unsigned char recebuf;

uchar IntNum = 0; //中断次数计数

uchar KeyV; //键值

unsigned char BF = 0;

unsigned char k;

unsigned char flag;

unsigned char i=0;

unsigned char flagok=0;

unsigned char data[2];

unsigned int lednum=0,lednum0=0;

unsigned char SndStr[]={"the tempreture is:"};

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

void disp(uchar num1,uchar num2,uchar num3); //液晶显示

void disp1(uchar num11,uchar num21);

void disp2(uchar num11,uchar num21,uchar num31);

void disp3(uchar num11,uchar num21);

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

void delay_us (unsigned int x);

void disp_init(void); //液晶屏初始化void tempwritebyte(unsigned char dat2); //向18B20写一个字节数据uint tempchange(void); //DS18B20 开始获取温度并转换

void write_com(unsigned char com); //对液晶屏写指令void write_data(unsigned char dat); //写数据

unsigned dsreset(void) ; //传感器初始化unsigned char tempread(void); //读1个字节

//unsigned int get_temp() ; //读取寄存器中存储的温度数据const uchar table[]="now last max min"; //液晶屏第一行显示的字样

void PIC18_PORT_Init(void)

{

ADCON1=0x0F; //禁止所有模拟端口的输入

TRISC=0x00; //配置RC端口全为输出

TRISBbits.TRISB2=0;

https://www.doczj.com/doc/d010568183.html,TB2=0;

// INTCON2bits.RBPU=0; //启用RB端口的内部弱上拉功能

TRISBbits.TRISB0=1;

TRISEbits.TRISE2=1; //RB0为输入引脚

}

void pic18_time0_init(void)

{

T0CONbits.TMR0ON=0;

T0CONbits.T08BIT=0;

T0CONbits.T0CS=0;

TMR0H=(65536-40000)/256;

TMR0L=(65536-40000)%256; //定时10ms

INTCONbits.TMR0IF=0;

T0CONbits.TMR0ON=1;

}

//=================================================================== // PIC18F45K20单片机的外部中断源初始化

//=================================================================== void PIC18_EINTn_Init(void)

{

INTCON2bits.INTEDG0=0; //选择下降沿触发方式

INTCONbits.INT0IF=0; //清INT0中断请求标志

INTCONbits.INT0IE=1; //使能INT0中断

}

//=================================================================== // PIC18F45K20单片机的中断系统初始化

//=================================================================== void PIC18_INTERRUPT_Init(void)

{

RCONbits.IPEN=1; //使能中断嵌套

INTCON|=0XC0; //CPU开中断

}

//=================================================================== void Decode() //键值处理

{

unsigned char TempCyc;

unsigned int a1=0,a2=0,a3=0,a4=0;

TempCyc=KeyV;

if(BF==1) //接收完一个有效数据时

{

delay(100);

if(BF==1)

{

BF=0; //准备下一次接收

switch ( TempCyc ) //键值与显示字符的对应关系

{ //键值// //对应字符//

case 0x70: {k=0; break;} //0

case 0x69: {k=1; break; }//1

case 0x72: {k=2; break;} //2

case 0x7A: {k=3; break;} //3

case 0x6B: {k=4; break;} //4

case 0x73: {k=5; break;} //5

case 0x74: {k=6; break;} //6

case 0x6C: {k=7; break;}//7 case 0x6C: k=7; break

case 0x75: {k=8; break;}

case 0x7D: {k=9; break; }//9

case 0x1c: {k=10; break;}

default: break;

}

value2++;

if(k!=10)

{

if(value2<=2)

value=value*10+k;

else

{

value3 = value3*10+k;

}

}

INTCONbits.INT0IE=1;

}

}

}

void sci_Init(void)

{

TXSTAbits.BRGH = 1; // high baud rate

SPBRG =103; // 设置波特率9600

TXSTAbits.SYNC = 0; // 1=同步接收方式 0=异步接收方式

RCSTAbits.SPEN = 1; // 串口使能位

RCSTAbits.CREN = 0; // 1=允许连续接收 0=禁止连续接收

RCSTAbits.SREN = 0; // 异步方式:此位未用

PIE1bits.TXIE = 0; // 关闭发送

PIE1bits.RCIE = 0; // 关闭接收中断

TXSTAbits.TX9 = 0; // 1:选择9位接收 0:选择8位接收

// RCSTAbits.RX9 = 0; // 1:选择9位接收 0:选择8位接收

TXSTAbits.TXEN = 1; // 发送允许

TRISCbits.TRISC6=1; // 作为串口使用,RC6必须设置为输入

TRISCbits.TRISC7=1; // 作为串口使用,RC7必须设置为输入

}

void send232byte(unsigned char bytebuf)

{

TXREG=bytebuf;

while(TXSTAbits.TRMT==1);

}

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

void main()

{

unsigned int a1=0,a2=0,a3=0,a4=0,a5=0,a6=0,a7=0,a8=0,flag = 0,count = 0; unsigned long temp;

PIC18_PORT_Init();

PIC18_EINTn_Init();

PIC18_INTERRUPT_Init();

pic18_time0_init();

disp_init();

ADCON1=0X06; //所有IO均为数字口,模拟量输入禁止

sci_Init();

while(1)

{

Decode();

a1=value/10; //键盘输入显示 a2=value%10;

disp1(a1,a2);

a1=value3/10; //最小值显示

a2=value3%10;

disp3(a1,a2);

if(flag==0)

{flag=1;

a1=lednum/100; //ADC结果千位上的数字

a2=lednum%100/10; //ADC结果百位上的数字

a3=lednum%10; //ADC结果十位上的数字

disp(a1,a2,a3);} //第一次显示零,隔10S之后进行温度采集

if((value>=10))

{

if( (value3 >= lednum/10)&&(value3 > 20) ) https://www.doczj.com/doc/d010568183.html,TB2=1; else

{

https://www.doczj.com/doc/d010568183.html,TB2=0;

if(value <= lednum/10) https://www.doczj.com/doc/d010568183.html,TB2=1;

else https://www.doczj.com/doc/d010568183.html,TB2=0;

}

}

if(1==INTCONbits.TMR0IF)

{

INTCONbits.TMR0IF=0;TMR0H=(65536-40000)/256;TMR0L=(65536-40000)%256;count++;

if(count>=5)

{ count=0;

lednum=tempchange();

a1=lednum/100; //ADC结果千位上的数字 a2=lednum%100/10; //ADC结果百位上的数字

a3=lednum%10; //ADC结果十位上的数字

send232byte(lednum/10);

disp(a1,a2,a3);

if (lednum0 != lednum)

{

a5=lednum0/100; //ADC结果千位上的数字

a6=lednum0%100/10; //ADC结果百位上的数字

a7=lednum0%10; //ADC结果十位上的数字

disp2(a5,a6,a7);

lednum0 = lednum;

}

}

}

}

}

//////////////////////////////////////////////////LCD驱动程序

void write_com(uchar com) //LCD1602控制字输入

{ //TRISB=0b00000000;

TRISBbits.TRISB3=0;

TRISBbits.TRISB4=0;

TRISBbits.TRISB5=0; //TRISB=0b00010000;

TRISD=0x00;

e=0;

rw=0;

rs=0; //写指令:RS=L,RW=L,D0~D7=指令码,E=高脉冲

PORTD=com; //写指令到液晶

delay(5);

e=1;

delay(5);

e=0;

}

void write_data(uchar dat) //LCD1602数据输入

{

TRISD=0;e=0; rw=0; rs=1;//写数据:RS=H,RW=L,D0~D7=指令码,E=高脉冲PORTD=dat; //写数据到液晶

delay(5);

e=1; delay(5); e=0;

}

void disp_init() //LCD初始化

{

TRISD=0; //选择D端口为液晶屏数据的输入口write_com(0x38); //液晶开显示

write_com(0x0c); //显示光标,光标闪烁

write_com(0x06); //读或写一个字符后地址指针加一,光标加一write_com(0x01); //显示清屏:1、数据指针清零;2、所有显示清零

write_com(0x80); //第一行首位

}

void disp(uchar num1,uchar num2,uchar num3) //温度显示

{

unsigned char i;

for(i=0;i

{

write_com(0x80+i);

write_data(table[i]);

}

i=0;

write_com(0x80+0x40);

write_data(num1+0x30); //液晶第二行第一位数

delay(1);

write_com(0x80+0x41);

write_data(num2+0x30);

delay(1);

write_com(0x80+0x42);//液晶第二行第三位

write_data('.');//液晶第二行第四位数

delay(1);

write_com(0x80+0x43);

write_data(num3+0x30); //液晶第二行第五位数

delay(1);

}

void disp1(uchar num11,uchar num21) //最大值显示

{

write_com(0x80+0x4a);

write_data(num11+0x30);

delay(1);

write_com(0x80+0x4b);

write_data(num21+0x30);

delay(1);

}

void disp2(uchar num1,uchar num2,uchar num3) //之前的温度显示

{

write_com(0x80+0x45);

write_data(num1+0x30);

delay(1);

write_com(0x80+0x46);

write_data(num2+0x30);

delay(1);

write_com(0x80+0x47);

write_data('.');

delay(1);

write_com(0x80+0x48);

write_data(num3+0x30);

delay(1);

}

void disp3(uchar num1,uchar num2) //之前的温度显示

{

write_com(0x80+0x4d);

write_data(num1+0x30);

delay(1);

write_com(0x80+0x4e);

write_data(num2+0x30);

delay(1);

}

//////////////////////////// 18B20的驱动程序

void delay(uint z) //z毫秒延时子程序

{

while(z)

{delay_us(300);z--;}

}

void delay3us(void){Nop();} //3us延时

void delay_us (unsigned int x) //微妙延时函数

{//x/=2;

while(x)

{ delay3us();x--;}

}

unsigned dsreset(void) //18B20复位,初始化函数{ unsigned char presence;

TRISA&=0xEF;

ds=0;delay_us(160);

ds=1;TRISA|=0x10;delay_us(26);

presence=DQ1_data;

delay_us(150);

return presence;

}

void tempwritebyte(unsigned char dat2) //向18B20写一个字节数据

{

unsigned int i;

unsigned char j;

unsigned char testb;

for(j=1;j<=8;j++)

{ testb=dat2&0x01;

if(testb) //写 1

{

TRISA&=0xEF;

ds=0; delay3us();delay3us();delay3us();

ds=1; delay_us (16); TRISA|=0x10;

}

else

{

TRISA&=0xEF;

ds=0; delay_us (20);

ds=1;

TRISA|=0x10;

}

dat2>>=1 ;

}

}

unsigned char tempread(void) //读1个字节

{ unsigned char i, dat1;

dat1=0;

for(i=1;i<=8;i++)

{ dat1>>=1;

TRISA&=0xEF;

ds=0; delay3us();delay3us();

ds=1; //起延时作用

TRISA|=0x10;

delay3us();delay3us();delay3us();

if(DQ1_data)

dat1|=0x80;

delay_us (13); //加了大括号3

} //读出的数据最低位在最前面,这样刚好一个字节在DAT里

return(dat1);

}

uint tempchange(void) //DS18B20 开始获取温度并转换{unsigned char a,b;

while(dsreset());

tempwritebyte(0xcc); // 写跳过读ROM指令

tempwritebyte(0x44); // 写温度转换指令

delay(20);

delay(20);

while(dsreset());

tempwritebyte(0xcc);

tempwritebyte(0xbe);

//temp= tempread()*256+ tempread();//两个字节组合为1个字

a=tempread();

b=tempread();

temp=a+b*256;

f_temp=temp*0.0625; //温度在寄存器中为12位分辨率位0.0625°

temp=f_temp*10+0.5; //乘以10表示小数点后面只取1位,加0.5是四舍五入

temp=temp+0.05;

return temp; //temp是整型

}

/////////////////////////////////////////////////////////////////////

#pragma interrupt PIC18F_HIGH_ISR

void PIC18F_HIGH_ISR(void)

{

if(INTCONbits.INT0IF&&INTCONbits.INT0IE)

{

if((IntNum>0)&&(IntNum<9))

{

KeyV=KeyV>>1; //因键盘数据是低>>高,结合上一句所以右移一位

if(Key_Data)

{

KeyV=KeyV|0x80; //当键盘数据线为1时为1到最高位

}

}

IntNum++;

while (!Key_CLK){;} //等待PS/2CLK拉高

if (IntNum > 10)

{

IntNum = 0; //当中断10次后表示一帧数据收完,清变量准备下一次接收

BF = 1; //标识有字符输入完了

INTCONbits.INT0IE= 1; //关中断等显示完后再开中断

}

INTCONbits.INT0IF=0;

}

}

// PIC18F45K20单片机的低优先级中断服务程序

//===================================================================

#pragma interruptlow PIC18F_LOW_ISR

void PIC18F_LOW_ISR(void)

{

}

数字钟设计报告——数字电路实验报告

. 数字钟设计实验报告 专业:通信工程 :王婧 班级:111041B 学号:111041226 .

数字钟的设计 目录 一、前言 (3) 二、设计目的 (3) 三、设计任务 (3) 四、设计方案 (3) 五、数字钟电路设计原理 (4) (一)设计步骤 (4) (二)数字钟的构成 (4) (三)数字钟的工作原理 (5) 六、总结 (9) 1

一、前言 此次实验是第一次做EDA实验,在学习使用软硬件的过程中,自然遇到很多不懂的问题,在老师的指导和同学们的相互帮助下,我终于解决了实验过程遇到的很多难题,成功的完成了实验,实验结果和预期的结果也是一致的,在这次实验中,我学会了如何使用Quartus II软件,如何分层设计点路,如何对实验程序进行编译和仿真和对程序进行硬件测试。明白了一定要学会看开发板资料以清楚如何给程序的输入输出信号配置管脚。这次实验为我今后对 EDA的进一步学习奠定了更好的理论基础和应用基础。 通过本次实验对数电知识有了更深入的了解,将其运用到了实际中来,明白了学习电子技术基础的意义,也达到了其培养的目的。也明白了一个道理:成功就是在不断摸索中前进实现的,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步,才会一步步向自己的目标靠近,才会取得自己所要追求的成功。 2

二、设计目的 1.掌握数字钟的设计方法。 2熟悉集成电路的使用方法。 3通过实训学会数字系统的设计方法; 4通过实训学习元器件的选择及集成电路手册查询方法; 5通过实训掌握电子电路调试及故障排除方法; 6熟悉数字实验箱的使用方法。 三、设计任务 设计一个可以显示星期、时、分、秒的数字钟。 要求: 1、24小时为一个计数周期; 2、具有整点报时功能; 3、定时闹铃(未完成) 四、设计方案 一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器和定时器组成。干电路系统由秒信号发生器、“时、 3

课程设计报告模板)

课程设计报告模板()

————————————————————————————————作者: ————————————————————————————————日期: ?

课程设计(论文)任务书 软件学院软件+电商专业09级(2)班 一、课程设计(论文)题目基本模型机设计与实现 二、课程设计(论文)工作自2011年6月 20 日起至2011年 6月 24日止。 三、课程设计(论文) 地点:计算机组成原理实验室(5#301) 四、课程设计(论文)内容要求: 1.课程设计的目的 通过课程设计的综合训练,在掌握部件单元电路实验的基础上,进一步掌握整机 概念。培养学生实际分析问题、解决问题和动手能力,最终目标是想通过课程设计的形式,帮助学生系统掌握该门课程的主要内容,更好地完成教学任务。 2.课程设计的任务及要求 1)基本要求? (1)课程设计前必须根据课程设计题目认真查阅资料; (2)实验前准备好实验程序及调试时所需的输入数据; (3)实验独立认真完成; (4)对实验结果认真记录,并进行总结和讨论。 2)课程设计论文编写要求 (1)按照书稿的规格撰写打印课设论文 (2)论文包括目录、绪论、正文、小结、参考文献、附录等 (3)正文中要有问题描述、实验原理、设计思路、实验步骤、调试过程与遇到问题的解决方法、总结和讨论等 (4)课设论文装订按学校的统一要求完成 3)课设考核 从以下几方面来考查:

(1)出勤情况和课设态度; (2)设计思路; (3)代码实现; (4)动手调试能力; (5)论文的层次性、条理性、格式的规范性。 4)参考文献 [1]王爱英.计算机组成与结构[M]. 北京:清华大学出版社, 2007. [2] 王爱英. 计算机组成与结构习题详解与实验指导[M]. 北京:清华大学出版社, 2007. 5)课程设计进度安排 内容天数地点 构思及收集资料1图书馆 实验与调试 3 实验室 撰写论文 1 图书馆 6)任务及具体要求 设计实现一个简单的模型机,该模型机包含若干条简单的计算机指令,其中至少包括输入、输出指令,存储器读写指令,寄存器访问指令,运算指令,程序控制指令。学生须根据要求自行设计出这些机器指令对应的微指令代码,并将其存放于控制存储器,并利用机器指令设计一段简单机器指令程序。将实验设备通过串口连接计算机,通过联机软件将机器指令程序和编写的微指令程序存入主存中,并运行此段程序,通过联机软件显示和观察该段程序的运行,验证编写的指令和微指令的执行情况是否符 合设计要求,并对程序运行结果的正、误分析其原因。 学生签名: 亲笔签名 2011年6月20 日 课程设计(论文)评审意见 (1)设计思路:优( )、良()、中( )、一般()、差( ); (2)代码实现:优()、良()、中()、一般()、差();

数字钟课设报告

1.本实验中所用元器件: 1)计数器:74ls190,74ls192,74ls161 2)译码器:7448七段显示译码器 3)共阴数码管 2.各元器件基本介绍: a)74ls190是十进制计数器,具有同步置零和异步预 置数的功能。 b)741S192是同步十进制可逆计数器,它具有双时钟 输入,并具有异步置零和异步预置数的功能。 c)74ls161为二进制同步计数器,具有同步预置数, 异步清零以及保持的功能。 d)7448七段显示译码器是驱动显示器的核心部件,它 可以将输入代码转化成相应的数字显示代码,并在 数码管上显示出来。 e)共阴数码管的阴极连接在一起,当某个发光二极管 的阳极为高电平时,二极管点亮相应的段被显示。

3.各元器件功能及相关图 注意:74ls190与74ls191逻辑图和功能表均相同74ls192与74ls193逻辑图和功能表均相同 74ls192(双时钟) 192 引脚排列图 74ls192功能表

74ls192逻辑符号 74ls190(单时钟) 引脚排列图

74ls190功能表 当置入控制端(LD)为低电平时,不管时钟CP的状态如何,输出端(Q0-Q3)即可预置成与数据输入端(D0~D3)相一致的状态。190的计数是同步的,靠CP加在4个触发器上而实现。当计数控制端(CT)为低电平时,在CP上升沿作用下Q0-03同时变化,从而消除了异步计数器中出现的计数尖峰。当计数方式控制(UD)为低电平时进行加计数,当计数方式控制(UD)为高电平时进行减计数。只有在CP为高电平时CT和UD才可以跳变

74ls161(二进制计数器) 管脚图介绍 时钟CP 四个数据输入端A~D 清零RD 使能S1S2 置数LD 数据输出端QA~QD

课程设计报告参考模板

课程设计报告参考模板 河海大学计算机及信息工程学院 课程设计报告 题目专业、学号授课班号学生姓名指导教师完成时间 课程设计任务书 Ⅰ、课程设计题目: Ⅱ、课程设计工作内容 一、课程设计目标1、培养综合运用知识和独立开展实践创新的能力; 2、…… 二、研究方法及手段应用 1、将任务分成若干模块,查阅相关论文资料,分模块调试和完成任务; 2、…… 三、课程设计预期效果 1、完成实验环境搭建; 2、…… 学生姓名:专业年级: 目录空一行。空一个中文字符行。“目录”,分页,居中,加黑宋体二号。前言………………………………………………………………………………………………1 第一章系统设计………………………………………………………………

…………………2 第一节课题目标及总体方案…………………………………………………………………..2 ……………… 目录正文,宋体小四号,倍行距。第二节…………………………….. ………………… 第二章实验结果及讨论 (5) ……………… 第三章结论 (10) ……………… 心得体会 (42) 河海大学本科课程设计报告 1、移动台 MS 二级标题“1、”,左对齐,加黑宋体小三号。移动台是公用GSM移动通信网中用户使用的设备,……………… NMCDPPSPCSSEMC OSSOMCMBTSSBTSBSCHLR/ MSC/VLRAUC BSSEIR NSSPSTNISDNPDN 图 GSM系统

组成 2、基站子系统 BSS 图编号及图名“图”,位于图下,居中。基站子系统BSS是GSM系统实现无线通信的关键组成部分。它通过无线接口直接与移动台通信,进行无线发送、无线接收及无线资源管理。另一方面,它通过与网络子系统NSS的移动业务交换中心,………………。 ⑴、基站收发信台 BTS 三级标题“⑴、”,左对齐,加黑宋体四号。基站收发信台BTS属于基站子系统BSS的无线部分,………………。①收发信台组成四级标题“①”,左对齐,加黑宋体小四号。 BTS包含有若干个收发信息单元TRX,而一个TRX有八个时隙,………………。●收发信息单元 五级标题“●”,左对齐,加黑宋体小四号。收发信息单元是………………。●其它辅助单元 辅助单元包括………………。②收发信台作用 收发信台的主要作用有………………。 ⑵、基站控制器 BSC 基站控制器BSC是基站子系统BSS的控制部分,………………。 3、网络交换子系统 NSS - 4 - 河海大学本科课程设计报告

文章编辑课程设计报告

实验报告 (课程设计)课程名称:数据结构 实验项目名称:文章编辑 学院:计算机与软件学院指导教师: 报告人: 实验时间 实验报告提交时间: 教务处制

实验项目名称 一、问题描述 描述算法设计的内容、约束条件,要求达到的目标等内容。(由老师公布) 输入一页文字,每行最多不超过80个字符,共N行; 程序可以统计出文字、数字、空格的个数 要求在光标下(与记事本相似)做插入、删除等操作 要求能够存盘,并能对老文件打开进行修改操作 采用的数据结构及其算法:线性结构[采用顺序存储方式];查找、插入、删除 二、基本要求 描述算法设计项目应达到的基本要求。 应该实现基本的删除插入查找打开文件以及存盘等操作.并能对打开的文件里的内容进行插入删除查找等操作,并且在进行完这些操作之后能够进行存盘. 三、分析与实验 分析算法设计方法,拟采用的数据结构(类结构)与主要算法实现原理等内容。 拟采用链表进行操作,与字符串结合. 主要运用了KMP算法进行查找操作,在删除中也有涉及. void GetNext(string p, int next[]) //求模式串p的next[j]的值 { int j = 0, k = -1; next[0] = -1; int length = p.length() - 1; while (j

else k = next[k]; } } int KMPFind(string p, int next[], string q,int search[]) //用KMP算法在主串中查找子串,p为主串,q为子串{ int i = 0, j = 0, k = 0, plength = p.length(), qlength=q.length(),flag=0,t=0; while (i < plength) { if (j == -1 || p[i] == q[j]) { i++; j++; } else j = next[j]; if (j == qlength) { flag++; search[t]= i-qlength;//flag存放的是每一次匹配到的字符的首位置 t++; } } return flag; } Search[]数组存放子串出现的位置.

课程设计论文格式要求

课程设计(论文)书写规范与打印要求 (一)论文书写 论文(设计说明书)要求统一使用Microsoft Word软件进行文字处理,统一采用A4页面(210×297㎜)复印纸,单面打印。其中上边距30㎜、下边距30㎜、左边距30㎜、右边距20㎜、页眉15㎜、页脚15㎜。字间距为标准,行间距为固定值22磅。 页眉内容统一为“沈阳理工大学学士学位论文”,采用宋体五号字居中排写。 页码在下边线下居中放置,Times New Roman小五号字体。摘要、关键词、目录等文前部分的页码用罗马数字(Ⅰ、Ⅱ……)编排,正文以后的页码用阿拉伯数字(1、2……)编排。字体和字号要求 论文题目:二号黑体 章标题:三号黑体(1□□×××××) 节标题:四号黑体(1.1□□××××) 条标题:小四号黑体(1.1.1□□×××) 正文:小四号宋体 页码:小五号宋体 数字和字母:Times New Roman体 注:论文装订方式统一规定为左装订。 (二)论文前置部分 包括:封面、答辩成绩评定页、评阅意见页、任务书、设计档案页均按学校统一内容和格式填写。 (三)摘要 摘要是学位论文内容的不加注释和评论的简短陈述,说明研究工作的目的、实验方法、实验结果和最终结论等。应是一篇完整的短文,可以独立使用和引用,摘要中一般不用图表、化学结构式和非公知公用的符号和术语。 1、中文摘要(300字左右) “摘要”字样(三号黑体),字间空一个字符,“摘要”二字下空一行打印摘要正文(小四号宋体)。 摘要正文后下空一行打印“关键词”三字(小四号黑体),其后为关键词(小四号宋体),关键词是为了便于文献标引从该学位论文中选取出来用以表示全文主题内容信息款目的单词或术语,关键词一般为3~5个,每一关键词之间用分号“;”隔开,最后一个关键词后不打标点符号。 2、英文摘要(250个实词左右) 英文摘要另起一页,其内容及关键词应与中文摘要一致,并要符合英语语法,语句通顺,文字流畅。 英文和汉语拼音一律为Times New Roman体,字号与中文摘要相同。 (四)目次页 目次页由学位论文的章、条、款、致谢、参考文献、附录等的序号、名称和页码组成,目次页置于外文摘要后,由另页开始。 目录题头用三号黑体字居中排写,隔行书写目录内容。 目录采用三级标题,按(1 ……、1.1 ……、1.1.1 ……)的格式编写,目录中各章题序的阿拉伯数字用Times New Roman体,第一级标题用小四号黑体,其余用小四号宋体。(五)论文的主要部分 1、引言(或绪论) 引言(或绪论)简要说明研究工作的目的、范围、前人的工作和知识空白、理论基础和分析、

数字钟课程设计实验报告

《电子技术课程设计报告》 教学院:电气与电子信息工程学院 专业班级:xx级电子信息工程(x)班 学号:xxxxxxxxxxxx 学生:坏水 指导教师:xxxxxxxxxxxx 时间:2011.10.10~10.23 地点:电子技术实验室

课程设计成绩评定表

电子技术课程设计任务书 2011~2012学年第一学期 学生:坏水专业班级:xx电信本x班 指导教师:xxxxxxxxx 工作部门:电气与电子信息工程学院 一、课程设计题目:多功能数字钟电路的设计/直流稳压电源的设计 二、课程设计容(含技术指标): ①拟定多功能数字钟和直流稳压电源的组成框图,要现电路的基本功能,使用 的器件少,成本低; ②画出数字钟和直流稳压电源的主体电路逻辑图; ③测试多功能数字钟的逻辑功能,同时满足基本功能与扩展功能的要求; ④设计并安装各单元电路,要求布线整齐、美观,便于级联与调试;

四、基本要求 1.基本功能:要求设计出+5V的直流稳压电源。数字钟要求以数字形式显示时、分、秒的时间。小时计数器的计时要求为“12翻1”,要求具有手动校时功能。 2.扩展功能:定时控制,其时间自定;仿广播电台正点报时,自动报整点时数或触摸报整点时数(主要体现在理论知识上进行电路设计)。 (一)实训题目:直流稳压电源和多功能数字钟。 (二)实训目的: 1、巩固和加深学生对模拟电子技术,数字逻辑电路等课程基本知识的理解,综 合运用课程中所学到的理论知识去独立完成一个实际课题。 2、根据课程需要,通过查阅手册和文献资料,培养学生独立分析和解决实际问 题的能力。 3、通过电路方案的分析、论证和比较,设计计算和选用元气件,通过电路组装, 调试和检测环节,掌握电路的分析方法和设计方法。 4、熟用常用电子元气件的类型和特性,并掌握合理选用原则。 5、掌握电路图、PCB图的设计方法,学会电路的安装与调试。 6、掌握常用仪器、仪表的正确使用方法,学会电路整机指标的测试方法。(三)实训要求

课程设计心得体会范文

课程设计心得体会范文 在大学生课程设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。下面是管理资源吧小编为大家收集整理的大学生课程设计心得,欢迎大家阅读。 课程设计心得体会范文1本学期我们开设了《模拟电路》与《数字电路》课,这两门学科都属于电子电路范畴,与我们的专业也都有联系,且都是理论方面的指示。正所谓“纸上谈兵终觉浅,觉知此事要躬行。”学习任何知识,仅从理论上去求知,而不去实践、探索是不够的,所以在本学期暨模电、数电刚学完之际,紧接着来一次电子电路课程设计是很及时、很必要的。这样不仅能加深我们对电子电路的任职,而且还及时、真正的做到了学以致用。 这两周的课程设计,先不说其他,就天气而言,确实很艰苦。受副热带高气压影响,江南大部这两周都被高温笼罩着。人在高温下的反应是很迟钝的,简言之,就是很难静坐下来动脑子做事。天气本身炎热,加之机房里又没有电扇、空调,故在上机仿真时,真是艰熬,坐下来才一会会,就全身湿透,但是炎炎烈日挡不住我们求知、探索的欲望。通过我们不懈的努力与切实追求,终于做完了课程设计。 在这次课程兼职设计过程中,我也遇到了很多问题。比如在三角波、方波转换成正弦波时,我就弄了很长时间,

先是远离不清晰,这直接导致了我无法很顺利地连接电路,然后翻阅了大量书籍,查资料,终于在书中查到了有关章节,并参考,并设计出了三角波、方波转换成正弦波的电路图。但在设计数字频率计时就不是那么一帆风顺了。我同样是查阅资料,虽找到了原理框图,但电路图却始终设计不出来,最后实在没办法,只能用数字是中来代替。在此,我深表遗憾! 这次课程设计让我学到了很多,不仅是巩固了先前学的模电、数电的理论知识,而且也培养了我的动手能力,更令我的创造性思维得到拓展。希望今后类似这样课程设计、类似这样的锻炼机会能更多些! 课程设计心得体会范文2经过一个学期的学习,我对C语言有了一定的了解。C语言是学习计算机科学的基础,作为一名计算机专业学生,掌握C语言更是毋庸置疑。在上课之前,就经常听同学说,C语言很难学,确实,刚开始听课时觉得老师不知所云。不过,发现对后续内容的预习后,前面的疑团都迎刃而解,这让我对C语言的学习更有信心。 计算机最重要的就是上机操作,自己编写程序,在VisualC++运行,刚开始经常会出现错误,经过分析改正后,终于能够运行了,就觉得特别激动。 课程设计是一个把需求分析、程序编写、程序调试、

课程设计报告【模板】

模拟电子技术课程设计报告设计题目:直流稳压电源设计 专业电子信息科学与技术 班级电信092 学号 200916022230 学生姓名夏惜 指导教师王瑞 设计时间2010-2011学年上学期 教师评分 2010年月日

昆明理工大学津桥学院模拟电子技术课程设计 目录 1.概述 (2) 1.1直流稳压电源设计目的 (2) 1.2课程设计的组成部分 (2) 2.直流稳压电源设计的内容 (4) 2.1变压电路设计 (4) 2.2整流电路设计 (4) 2.3滤波电路设计 (8) 2.4稳压电路设计 (9) 2.5总电路设计 (10) 3.总结 (12) 3.1所遇到的问题,你是怎样解决这些问题的12 3.3体会收获及建议 (12) 3.4参考资料(书、论文、网络资料) (13) 4.教师评语 (13) 5.成绩 (13)

昆明理工大学津桥学院模拟电子技术课程设计 1.概述 电源是各种电子、电器设备工作的动力,是自动化不可或缺的组成部分,直流稳压电源是应用极为广泛的一种电源。直流稳压电源是常用的电子设备,它能保证在电网电压波动或负载发生变化时,输出稳定的电压。一个低纹波、高精度的稳压源在仪器仪表、工业控制及测量领域中有着重要的实际应用价值。 直流稳压电源通常由变压器、整流电路、滤波电路、稳压控制电路所组成,具有体积小,重量轻,性能稳定可等优点,电压从零起连续可调,可串联或关联使用,直流输出纹波小,稳定度高,稳压稳流自动转换、限流式过短路保护和自动恢复功能,是大专院校、工业企业、科研单位及电子维修人员理想的直流稳压电源。适用于电子仪器设备、电器维修、实验室、电解电镀、测试、测量设备、工厂电器设备配套使用。几乎所有的电子设备都需要有稳压的电压供给,才能使其处于良好的工作状态。家用电器中的电视机、音响、电脑尤其是这样。电网电压时高时低,电子设备本身耗供电造成不稳定因家。解决这个不稳定因素的办法是在电子设备的前端进行稳压。 直流稳压电源广泛应用于国防、科研、大专院校、实验室、工矿企业、电解、电镀、充电设备等的直流供电。 1.1直流稳压电源设计目的 (1)、学习直流稳压电源的设计方法; (2)、研究直流稳压电源的设计方案; (3)、掌握直流稳压电源的稳压系数和内阻测试方法。 1.2课程设计的组成部分 1.2.1 设计原理

采矿学课程设计论文设计

采矿学课程设计

目录 第一章前言 第二章采区储量与生产能力 第一节采区储量 第二节生产能力与服务年限 第三章开拓方式简介 第一节井筒 第二节大巷 第四章采区准备方式 第一节上山布置与断面 第二节采区车场与硐室 第五章采煤方法 第一节采煤系统和回采巷道布置 第二节采煤工艺 (含工作面循环作业图表) 第三节采煤工作面设备选型 第六章总结与分析

第一章前言 一、设计的目的 1、应用《采矿学》所学的知识,通过课程设计巩固和扩大所学理论知识并使之系统化。 2、培养运用所学理论知识解决实际问题的能力,提高计算、绘图、查阅资料的基本技能。 3、为毕业设计中编写毕业设计说明书及绘制毕业设计图纸奠定基础。 二、矿井开采条件 1、二 1 煤层 二 1 煤层位于组下部,矿区围标高为-600~+300m,埋深约179~1080m。上 距砂锅窑砂岩一般为65.02m,下距L 9 石灰岩7.24m左右。煤层厚度变化较大,厚0~16.26m,平均5.74m,为薄~特厚煤层。 二 1 煤层结构较简单,含1层夹矸,夹矸厚分别为0.14~0.05m,岩性为炭质泥岩。 二 1 煤层顶底板特征: 1)顶板:二 1 煤层直接顶板以砂质泥岩为主,厚0~7.35m,平均1.93m,抗压强度58.5Mpa;老顶大占砂岩,以中粒砂岩为主,厚 1.03~28.52m,平均14.82m,抗压强度44.6~103.5Mpa、抗拉强度4.83~5.23Mpa。二1煤层顶板受滑动构造影响较大,顶板不稳定,不易管理。 2)底板:二1煤层直接底板为砂质泥岩或条带状细砂岩,平均厚7.42m;局部直接底板为粉细砂岩、炭质泥岩及泥岩,采煤过程中,泥岩易遇水膨胀发生地鼓现象。 大部分直接顶板为砂质泥岩,间接顶板为大占砂岩,以中粒砂岩为主,有时可成为直接顶板,厚1.03~28.52m,平均14.82m。大部分直接底板为砂质泥 岩或条带状细粒岩,平均7.24m;间接底板为组L 7~8 石灰岩。 2、煤质 (1)、物理性质 二 1煤层物理性质:二 1 煤层以粉煤为主,为黑~灰黑色,玻璃光泽,粉状、 鳞片状产出,强度很低,手捻即成为煤粉,易污手。煤层中下部常有碎粒或块状

fpga数字钟课程设计报告

课程设计报告 设计题目:基于FPGA的数字钟设计 班级:电子信息工程1301 学号:20133638 姓名:王一丁 指导教师:李世平 设计时间:2016年1月

摘要 EDA(Electronic Design Automation)电子设计自动化,是以大规模可编程器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,通过相关的软件,自动完成软件方式设计得电子系统到硬件系统,最终形成集成电子系统或专用集成芯片。本次课程设计利用Quartus II 为设计软件,VHDL为硬件描述语言,结合所学知识设计一个多功能时钟,具有显示年、月、日、时、分、秒显示,计时,整点报时,设定时间等功能。利用硬件描述语言VHDL 对设计系统的各个子模块进行逻辑描述,采用模块化的思想完成顶层模块的设计,通过软件编译、逻辑化简、逻辑综合优化、逻辑仿真、最终完成本次课程设计的任务。 关键词:EDA VHDL语言数字钟

目录 摘要 1 课程设计目的 2 课程设计内容及要求 2.1 设计任务 2.2 设计要求 3 VHDL程序设计 3.1方案论证 3.2 系统结构框图 3.3设计思路与方法 3.3.1 状态控制模块 3.3.2 时分秒模块 3.3.3 年月日模块 3.3.4 显示模块 3.3.5脉冲产生模块 3.3.6 扬声器与闹钟模块 3.4 RTL整体电路 4 系统仿真与分析 5 课程设计总结,包括.收获、体会和建议 6 参考文献

1 课程设计目的 (1)通过设计数字钟熟练掌握EDA软件(QUARTUS II)的使用方法,熟练进行设计、编译,为以后实际工程问题打下设计基础。 (2)熟悉VHDL 硬件描述语言,提升分析、寻找和排除电子设计中常见故障的能力。 (3)通过课程设计,锻炼书写有理论根据的、实事求是的、文理通顺的课程设计报告。 2 课程设计内容及要求 2.1 设计任务 (1)6个数字显示器显示时分秒,setpin按键产生一个脉冲,显示切换为年月日。 (2)第二个脉冲可预置年份,第三个脉冲可以预置月份,依次第四、 五、六、七个脉冲到来时分别可以预置时期、时、分、秒,第八个脉冲到来后预置结束正常从左显示时分秒。 (3)up为高时,upclk有脉冲到达时,预置位加一,否则减一。 2.2 设计要求 (1)在基本功能的基础上,闹钟在整点进行报时,产生一定时长的高电平。 (2)实现闹钟功能,可对闹钟时间进行预置,当达到预置时间时进行报时。

过程控制仪表课程设计论文报告

中南大学 《过程控制仪表》 课程设计报告 设计题目液位控制系统 指导老师 设计者 专业班级 设计日期 2011年6月 目录 第一章过程控制课程设计的目的和意义 (2) 1.1课程设计的目的 (2) 1.2课程设计的意义 (3) 1.3课程设计在教学计划中的地位和作用 (3) 第二章液位控制系统的设计任务 (3)

2.1设计内容及要求 (3) 2.2课程设计的要求 (4) 第三章实验内容及调试中遇到的具体问题和解决的办法 (4) 3.1实验目的 (4) 3.2实验内容 (5) 3.2.1流量单闭环控制系统 (5) 3.2.2流量比值控制系统 (6) 3.3实验调试中遇到的具体问题和解决办法 (7) 第四章液位控制系统总体设计方案 (9) 4.1液位控制系统在工业上的应用 (9) 4.2液位控制系统变送器以及开关阀的选择 (10) 4.3控制算法 (11) 4.4系统控制主机的选择 (11) 4.5系统的硬件设计(单纯的逻辑控制) (13) 4.5.1 水塔液位控制系统的主电路图 (13) 4.5.2 I/O接口的分配 (13) 4.5.3 水塔液位控制系统的I/O设备 (14) 4.5.2 控制系统硬件介绍 (14) 第五章系统软件设计 (16) 5.1系统软件设计1(单纯的逻辑控制) (16) 5.1.1水塔液位控制系统的程序流程图 (16) 5.1.2 水塔液位控制系统的工作过程 (17) 5.1.3 水塔液位控制系统的梯形图 (19) 5.2系统控制的程序 (20) 5.3 加入PID控制的指令的软件程序 (20) 5.3.1PID控制系统梯形图 (21) 5.3.2PID控制系统的指令: (24) 第六章收获、体会和建议 (25) 参考文献 (26) 第一章过程控制课程设计的目的和意义 1.1课程设计的目的 本课程设计是为《过程控制仪表》课程而开设的综合实践教学环节,是对《现代检测技术》、《自动控制理论》、《过程控制仪表》、《计算机控制技术》等前期课堂学习内容的综合应用。其目的在于培养学生综合运用理论知识来分析和解决实

课程设计报告模版

课程设计报告模版

《城市排水处理》 课程设计报告 系别:城市建设系 专业班级:给水排水0601班 学生姓名: 指导教师:段泽琪 (课程设计时间: 6月15日—— 6月19日) 华中科技大学武昌分校

目录 1.课程设计目的 (1) 2.课程设计题目描述和要求 (1) 3.课程设计报告内容 (3) 3.1污水处理工艺方案比较 (3) 3.2主要污水处理构筑物选型 (6) 3.3污水处理构筑物的主要设计参数 (7) 3.4污水处理辅助构筑物设计 (8) 3.5污水处理厂平面布置设计 (8) 3.6 污水处理厂高程布置设计 (9) 3.7 设计计算………………………………………………………………………

10 4.总结……………………………………………………………………………页码 参考文献…………………………………………………………………………页码 (要求:目录题头用三号黑体字居中书写,隔行书写目录内容。目录中各级题序及标题用小四号黑体)

1. 课程设计目的 (1) 经过污水处理厂课程设计,巩固学习成果,加深对《水污染控制》课程内容的学习与理解,使学生学习使用规范、手册与文献资料,进一步掌握设计原则、方法等步骤,达到巩固、消化课程的主要内容; (2) 锻炼独立工作能力,对污水处理厂的主体构筑物、辅助设施、计量设备及污水厂总体规划、管道系统做到一般的技术设计深度,培养和提高计算能力、设计和绘图水平; (3) 在教师指导下,基本能独立完成一个中、小型污水处理厂工艺设计,锻炼和提高学生分析及解决工程问题的能力。 2.课程设计题目描述和要求 2.1 设计题目描述 (1) 设计题目 某城市污水处理厂工艺初步设计。 (2) 设计内容 根据任务书所给定的资料,综合运用所学的基础、专业基础和专业知识,设计一个中小型污水处理厂。 ①确定污水处理方法和工艺流程; ②选择各种处理构筑物形式,并进行工艺设计计算(计算书中要附计算草图); ③估算各辅助构筑物的平面尺寸; ④进行污水厂平面布置和高程布置。

基于单片机的电子时钟课程设计报告

目录 一、引言········ 二、设计课题········· 三、系统总体方案········· 四、系统硬件设计······ 1.硬件电路原理图 2.元件清单 五、系统软件设计········· 1.软件流程图 2.程序清单 六、系统实物图········ 七、课程设计体会········ 八、参考文献及网站········· 九、附录·········

一.引言 单片机因将其主要组成部分集成在一个芯片上而得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等部件集成在一个芯片上。 基于单片机设计的数字钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。 数字钟是采用数字电路实现对日期、时、分、秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。数字钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便。不仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。而且是控制的核心部分。因此,研究数字钟及扩大其应用,有着非常现实的意义。 本设计使用12MHZ晶振与单片机AT89C51相连接,以AT89C51芯片为核心,采用动态扫描方式显示,通过使用该单片机,加之在显示电路部分使用HD74LS373驱动电路,实现在8个LED数码管上显示时间,通过4个按键进行调时、复位等功能,在实现各功能时数码管进行相应显示。软件部分用C语言实现,分为显示、延迟、调时、复位等部分。通过软硬件结合达到最终目的。

机器人课程设计报告范例

机器人课程设计报告范例

**学校 机器人课程设计名称 院系电子信息工程系 班级10电气3 姓名谢士强 学号107301336 指导教师宋佳

目录 第一章绪论 (2) 1.1课程设计任务背景 (2) 1.2课程设计的要求 (2) 第二章硬件设计 (3) 2.1 结构设计 (3) 2.2电机驱动 (4) 2.3 传感器 (5) 2.3.1光强传感器 (5) 2.3.2光强传感器原理 (6) 2.4硬件搭建 (7) 第三章软件设计 (8) 3.1 步态设计 (8) 3.1.1步态分析: (8) 3.1.2程序逻辑图: (9) 3.2 用NorthStar设计的程序 (10) 第四章总结 (12) 第五章参考文献 (13)

第一章绪论 1.1课程设计任务背景 机器人由机械部分、传感部分、控制部分三大部分组成.这三大部分可分成驱动系统、机械结构系统、感受系统、机器人一环境交互系统、人机交互系统、控制系统六个子系统现在机器人普遍用于工业自动化领域,如汽车制造,医疗领域,如远程协助机器人,微纳米机器人,军事领域,如单兵机器人,拆弹机器人,小型侦查机器人(也属于无人机吧),美国大狗这样的多用途负重机器人,科研勘探领域,如水下勘探机器人,地震废墟等的用于搜查的机器人,煤矿利用的机器人。如今机器人发展的特点可概括为:横向上,应用面越来越宽。由95%的工业应用扩展到更多领域的非工业应用。像做手术、采摘水果、剪枝、巷道掘进、侦查、排雷,还有空间机器人、潜海机器人。机器人应用无限制,只要能想到的,就可以去创造实现;纵向上,机器人的种类会越来越多,像进入人体的微型机器人,已成为一个新方向,可以小到像一个米粒般大小;机器人智能化得到加强,机器人会更加聪明 1.2课程设计的要求 设计一个机器人系统,该机器人可以是轮式、足式、车型、人型,也可 以是仿其他生物的,但该机器人应具备的基本功能为:能够灵活行进,能感知光源、转向光源并跟踪光源;另外还应具备一项其他功能,该功能可自选(如亮灯、按钮启动、红外接近停止等)。 具体要求如下: 1、根据功能要求进行机械构型设计,并用实训套件搭建实物。 2、基于实训套件选定满足功能要求的传感器; 3、设计追光策略及运动步态; 4、用NorthStar设计完整的机器人追光程序;

数字钟课程设计报告

摘要 数字电子钟是一种用数字显示秒﹑分﹑时的记时装置,与传统的机械时钟相比,它一般具有走时准确﹑显示直观﹑无机械传动装置等优点,因而得到了广泛的应用。数字电子钟的设计方法有许多种,例如,可用中小规模集成电路组成电子钟;也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟;还可以利用单片机来实现电子钟等等。本课程设计采用的是中小规模集成电路法,时钟信号发生器采用32768Hz的CMOS石英谐振器制作,产生1Hz时钟脉冲;用74LS290设计两个六十进制的计数器对“分”、“秒”信号计数,二十四进制计数器对“时”信号计数、再通过“时”、“分”校正电路进行时间的校正,实现数字电子钟的功能。 关键词 数字电子钟;中小规模集成芯片;计数器;数字电子技术 设计的目的 (1)加强对电子制作的认识,充分掌握和理解设计个部分的工作原理、设计过程、选择芯片器件、电路的焊接与调试等多项知识。(2)把理论知识与实践相结合,充分发挥个人与团队协作能力,并在实践中锻炼。(3)提高利用已学知识分析和解决问题的能力。(4)提高实践动手能力 设计用到的仪器和零件 计数器(3片CD4518、CD4081)、显示译码器(6片CD4511)、6片共阴极数码管、二极管、电阻、电容、晶振(32.768kHz)、集成计数器(CD4060、CD4013)、开关、接线座、PCB板等元件。 数字钟的结构及基本工作原理 结构 数字电子时钟实际上是一个对标准频率(1Hz)进行计数的计数电路。由于计数的起始时间不可能与某一个标准时间(如东八时区时间)一致,故需要在电路上加上一个对“时”、“分”进行校正的校时电路,同时为了提高计时的准确性,信号发生器产生的标准的1Hz时间信号

PLC课程设计论文报告

摘要 城市规模不断扩大,城市的交通问题也变的日益突出,如堵车问题,城 市交通问题也越来越引起人们的关注,人、车、路三者关系的协调,已成 为交通管理部门需要解决的重要问题之一。为了解决交叉口混合交通流中 的相互影响或彼此的相互影响,我们可以合理的设置交叉路口的红绿灯系统,帮助疏导交通流,从而有效的减少交通阻塞等问题,并为行人的安全 提供强有力地保障。 现在,城市的红绿灯基本上都是程序控制,在实际使用中采用可编程序 控制器( PLC)控制占很大比例,其主要原因是因为PLC 具有简单易懂、操作方便、可靠性高、通用灵活、体积小、使用寿命长等一系列的优点。 本设计介绍了应用 PLC 实现十字路口交通信号灯的自动控制。通过对交通信号灯的控制要求分析,对 PLC 控制系统进行了软、硬件设计,并通过仿真实验证明该系统的实用性,利用 PLC 对十字路口交通灯进行模拟控制,从而能够对真正的十字路口交通灯控制系统有更深入的了解。 关键词:可编程序控制器、十字路口、交通灯控制

1概述 1.1 引言 当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在 19 世纪就已出现了。 1858 年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868 年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯 组成,红色表示“停止”,绿色表示“注意”。1918 年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下, 车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红 灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏 感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延 长一段时间,推迟汽车放行,以免发生交通事故。 信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路 通行能力,减少交通事故有明显效果。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。

课程设计模板

山西大学商务学院 《软件工程课程设计》报告 题目:基于手机的智能家居控制系统的设计与实现班级:??嵌入式?班 组长: 组员姓名:

说明 一、设计题目:基于手机的智能家居控制系统的设计与实现 二、小组成员及任务分配情况 姓名学号任务分配 软件工程课程总体设计报告、???? 系统可行性分析文档、???? 系统需求分析文档、???? 系统详细设计文档、???? 系统测试文档、????

目录 1. 开发目的和意义 (3) 1.1 开发背景和意义 (3) 1.2 完成情况 (3) 2. 开发相关技术及方法 (2) 2.1 开发环境 (2) 2.2 相关技术及方法 (2) 3. 系统分析 (3) 3.1 可行性分析 (3) 3.2 需求分析 (3) 3.2.1 性能需求 (3) 3.2.2 功能分析 (3) 3.2.3 行为模型 (4) 4. 系统设计 (6) 4.1 总体设计 (6) 4.2 详细设计 (6) 4.2.1 用户登录控制模块的设计 (6) 4.2.2 网络管理模块的设计 (7) 4.2.3 温度控制模块的设计 (7) 4.3 数据库设计 (8) 4.3.1 概念结构设计 (8) 4.3.2 逻辑结构设计 (8) 4.3.3 数据表设计 (8) 5. 系统实现 (10) 5.1 用户注册界面 (10) 5.2 用户登录界面 (10) 5.3 手机端远程桌面控制实现界面 (10) 6. 系统测试 (11) 6.1 测试方法 (11) 6.2 测试用例及结果 (11) 6.3 测试记录和结果反馈 (11) 7.实践总结 (13) 7.1 小结 (13) 7.2 实践感想 (13) 附录1 系统可行性分析文档 (15) 附录2 系统需求分析文档 (20) 附录3 系统详细设计文档 (24)

数字电子钟课程设计实验报告

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计任务书2016/2017 学年第一学期 学生姓名:张涛学号: 李子鹏学号: 课程设计题目:数字电子钟的设计 起迄日期:2017年1月4日~2017年7月10日 课程设计地点:科学楼 指导教师:姚爱琴 2017年月日 课程设计任务书

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计开题报告2016/2017 学年第一学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号:

指导教师:姚爱琴 2017 年 1 月 6 日 中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计说明书2016/2017 学年第二学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号: 指导教师:姚爱琴 2017 年月日

目录 1 引言 (6) 2 数字电子钟设计方案 (6) 2.1 数字计时器的设计思想 (6) 2.2数字电路设计及元器件参数选择 (6) 2.2.2 时、分、秒计数器 (7) 2.2.3 计数显示电路 (8) 2.2.5 整点报时电路 (10) 2.2.6 总体电路 (10) 2.3 安装与调试 (11) 2.3.1 数字电子钟PCB图 (11) 3 设计单元原理说明 (11) 3.1 555定时器原理 (12) 3.2 计数器原理 (12) 3.3 译码和数码显示电路原理 (12) 3.4 校时电路原理 (12) 4 心得与体会 (12) 1 引言 数字钟是一种用数字电子技术实现时,分,秒计时的装置,具有较高的准确性和直观性等各方面的优势,而得到广泛的应用。此次设计数字电子钟是为了了解数字钟的原理,在设计数字电子钟的过程中,用数字电子技术的理论和制作实践相结合,进一步加深数字电子技术课程知识的理解和应用,同时学会使用Multisim电子设计软件。 2数字电子钟设计方案 2.1 数字计时器的设计思想 要想构成数字钟,首先应选择一个脉冲源——能自动地产生稳定的标准时间脉冲信号。而脉冲源产生的脉冲信号地频率较高,因此,需要进行分频,使得高频脉冲信号变成适合于计时的低频脉冲信号,即“秒脉冲信号”(频率为1Hz)。经过分频器输出的秒脉冲信号到计数器中进行计数。由于计时的规律是:60秒=1分,60分=1小时,24小时=1天,就需要分别设计60进制,24进制计数器,并发出驱动信号。各计数器输出信号经译码器、驱动器到数字显示器,是“时”、“分”、“秒”得以数字显示出来。 值得注意的是:任何记时装置都有误差,因此应考虑校准时间电路。校时电路一般

相关主题
文本预览
相关文档 最新文档