基于单片机超声波视力保护系统设计-基于51单片机8音键电子琴仿真设计-基于8086八路模拟信号采集均值显示系统设计-基于8086八路数据电压温度采集系统-基于8086波形发生器仿真设计【毕设课设分享】

539基于单片机超声波视力保护系统设计-设计资料

硬件构成:单片机+最小系统+LCD1602液晶显示模块+超声波模块+DS18B20温度采集模块+光线检测模块+ADC0832模块+蜂鸣器模块+LED指示灯模块+按键模块

本设计基于STC89C51/52

1.LCD1602液晶显示测量的距离(头部与探头)、温度和看书时间(默认开机是45分钟);
2.带有温度补偿功能(DS18B20传感器);
3.采用超声波模块测距,测量范围0.02m~4m,精度为0.01m;
4.距离小于30cm,蜂鸣器和LED灯报警提示;
5.四个按键功能:按键1复位按键、按键2设置、按键3加键、按键4减键;
6.附加功能:采用光敏电阻检测光线强弱,AD0832模数转换芯片将模拟量转换成数字量给单片机。光线过强、过弱也会报警提示,按键可以设置光线报警值。


//显示模式  0正常  1计时时间调整  2最小值调整
uchar mode=0;

char min=45;
char sec=0;
char Mini=30;
char HG=70;
char LG=30;
//按键标志
uchar k=0;
//数值有误
uchar FW=0;
uint light=0;

/*********************************端口定义**********************************/
sbit CS   = P2^3;
sbit Clk = P2^0;
sbit DATI = P2^1;
sbit DATO = P2^1;

/*******************************定义全局变量********************************/
unsigned char dat = 0x00;      //AD值
unsigned char CH=0;       //通道变量
//uchar pdata tt[51];		   //定义空数组用于AD取平均值
bit bdata flag_BJS=0,flag_BJC=0,flag_BJG=0,jishi=1;
#include "BJ_Key.h"	   	 //报警按键
#include "display.h"			 //显示头函数
#include "ultrasonic_wave.h"//超声波头函数
#include "DS18B20.h"	   	 //温度传感器头函数
点击并拖拽以移动

  

1137基于51单片机8音键电子琴仿真设计

#include<reg52.h>	    		 	//定义头文件
#define uchar unsigned char			//宏定义
#define led P0					//定义LED等位P0口
#define sw_port P1				//中间变量。。。使按键和led对应
sbit buzzer=P2^7;				//扬声器管脚
sbit key1=P3^2;					//播放音乐与弹奏歌曲转换
sbit key3=P3^4;					//掉电存储按键
sbit key4=P3^5;                 //播放掉电存储的歌曲                                         
sbit keybofang=P3^3;			//播放刚才弹奏的歌曲
sbit key7=P3^0;					//音调键。。。 和  歌曲键
sbit key8=P3^1;					//音调键。。。 和  歌曲键
sbit key6=P1^7;
sbit key5=P1^6; 				  
sbit sda=P1^1;				      	//24c02数据线  
sbit scl=P1^0;					//24c02时钟线
uchar keyd,i,keys,b;			  	//定义变量
uchar tone_H;					//定义变量
uchar tone_L;					//定义变量
void beat_125(unsigned char);			//声明函数
uchar code beat1[]={16,8,8,8,8,4,4,16,8,4,4,8,4,4,4,	//歌曲1节拍 
4,4,4,16,16,8,8,4,4,12,8,16,16,8,4,4,4,4,16};
uchar code song1[]={6,5,3,5,7,6,5,6,3,5,6,5,3,		//歌曲1简谱
2,1,6,5,3,2,2,3,5,5,6,3,2,1,5,3,2,1,6,1,1,15};

uchar code beat2[]={7,7,7, 7,8,9, 1,2,3, 6,2,4, 4,4,4, 12, 	//歌曲二节拍
8,2,2, 4,4,4, 8,2,2, 4,4,4, 2,2,4,4, 12,};
uchar code song2[]={1,2,8, 8,5,1, 3,3,3, 5,4,3,		//歌曲二简谱
 5,4,3, 2, 2,1,0, 1,2,3, 4,3,2, 3,4,5, 5,4,3, 2,1,15};

uchar code beat4[]={4,4,4, 6,2,4, 4,4,4, 6,2,4, 4,4,4, 12, 
8,2,2, 4,4,4, 8,2,2, 4,4,4, 2,2,4,4, 12,};
uchar code song4[]={1,1,1, 3,2,1, 3,3,3, 5,4,3,
 5,4,3, 2, 2,1,0, 1,2,3, 4,3,2, 3,4,5, 5,4,3, 2,1, 15};

uchar code tone[]={115,102,91,86,77,68,61,57};		//歌曲音调
unsigned int code tone1[]={1012,956,852,759,716,638,568,506,478,426,379,531,10}; //歌曲音调
uchar song3[43];				      	//定义空数组
void play(uchar*,uchar*);			  	//演奏歌曲函数
void delay8um(uchar);				  	//第一8um延时函数
void sound(uchar);					//弹奏发声函数
  

 

1155基于8086八路模拟信号采集均值显示系统设计-微机

利用8255、ADC0809、8253、8259等元器件设计一个多路传感器数据采集并显示的系统。要求每20毫秒由8253产生一次中断请求,设8253时钟CLK等于1MHZ, 8253的OUT0连接到8259的IR2端,已知写入8259的ICW2是08H,中断服务程序名称为ISR_Sample8。要求每次20毫秒中断时,中断服务程序对ADC0809八个通道的每个通道采集一遍。主程序对八个通道传感器数据进行求平均值,并用三位七段数码管静态显示平均值。

;---模式设置----------------------------------------------------------------------------
.model small
.8086
;---宏定义-----------------------------------------------------------------
;---常量端口地址定义--------------------------
nIO1  equ 0200h   
nIO2  equ 0400h  
nIO3  equ 0600h   
nIO4  equ 0800h   
nIO5  equ 0a00h  

; 8255A端口
PORT_A_8255        equ  nIO1    ; 8255A控制端口
PORT_B_8255        equ  nIO1+2  ; 8255A  端口A
PORT_C_8255        equ  nIO1+4  ; 8255A  端口B
PORT_CTR_8255      equ  nIO1+6  ; 8255A  端口C

; ADC0809端口
PORT_START_0809    equ  nIO2  ; 启动并选择通道端口
PORT_EOC_0809      equ  nIO2  ; 查询AD转换结束否端口
PORT_DATA_0809     equ  nIO3  ; 读转换结束端口

1156基于8086八路数据电压温度采集系统仿真资料

利用8255、ADC0809、8253、8259等元器件设计一个多路传感器数据采集并显示的系统。要求每20毫秒由8253产生一次中断请求,设8253时钟CLK等于1MHZ, 8253的OUT0连接到8259的IR2端,已知写入8259的ICW2是08H,中断服务程序名称为ISR_Sample8。要求每次20毫秒中断时,中断服务程序对ADC0809八个通道的每个通道采集一遍。主程序对八个通道传感器数据进行求平均值,并用三位七段数码管静态显示平均值。

;---模式设置----------------------------------------------------------------------------
.model small
.8086
;---宏定义-----------------------------------------------------------------
;---常量端口地址定义--------------------------
nIO1  equ 0200h   
nIO2  equ 0400h  
nIO3  equ 0600h   
nIO4  equ 0800h   
nIO5  equ 0a00h  

; 8255A端口
PORT_A_8255        equ  nIO1    ; 8255A控制端口
PORT_B_8255        equ  nIO1+2  ; 8255A  端口A
PORT_C_8255        equ  nIO1+4  ; 8255A  端口B
PORT_CTR_8255      equ  nIO1+6  ; 8255A  端口C

; ADC0809端口
PORT_START_0809    equ  nIO2  ; 启动并选择通道端口
PORT_EOC_0809      equ  nIO2  ; 查询AD转换结束否端口
PORT_DATA_0809     equ  nIO3  ; 读转换结束端口

; 8253定时器端口
PORT_COUNTER0_8253 equ nIO4
PORT_CTR_8253      equ nIO4+6

  

1158基于8086波形发生器仿真设计-微机原理设计资料

; 8255+DAC0832产生多种波形的示例,用开关控制,依次可实现锯齿波,三角波,矩形波(方波),脉冲波,梯形波的演示。

;输出专用,X为端口地址,Y为要输出内容
OUT_PORT  MACRO  X,Y
       MOV DX, X
       MOV AL, Y
       OUT DX, AL
     ENDM
     
;延时的宏,X用于延时设定,AA为标号
DELAY_M   MACRO  X,AA
       LOCAL  AA
       MOV  BX,CX
       MOV  CX,X
AA:
       LOOP AA
       MOV  CX,BX
     ENDM
;====================================================================
;几个常数的设定
     IO6   EQU    60H         ;8255 PA端口地址
     TIMES EQU    40          ;用于延时控制

  


文章转自电设屋,资料百度网盘下载地址 https://www.aiesst.cn/share.html

目录

539基于单片机超声波视力保护系统设计-设计资料

1137基于51单片机8音键电子琴仿真设计

1155基于8086八路模拟信号采集均值显示系统设计-微机

1156基于8086八路数据电压温度采集系统仿真资料

1158基于8086波形发生器仿真设计-微机原理设计资料


猜你喜欢

转载自blog.csdn.net/u014683833/article/details/123360749