1641基于单片机病房呼叫系统数码管显示房号设计
设计思路:此设计实现的功能通过按键模拟房号,当按键按下时会将房号编号发送到数目管上进行显示,并通过声光进行提示。包含的电路有:数码管显示电路、按键电路、单片机电路、蜂鸣器电路、lec指示电路等。
#include <reg51.h>
#define uint unsigned int
#define uchr unsigned char
sbit led0=P2^2;
sbit buzzer=P2^3;
sbit dula=P2^6; //声明段选线选通端
sbit wela=P2^7; //声明位选线选通端
sbit clear=P3^4;
uchr key,shi,ge,count;
uchr code tab[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,
0x76,0x79,0x38,0x3f};
/*延时子函数,xms为形参*/
void delay(uint xms)
{
uint x,y;
for(x=xms;x>0;x--)
for(y=110;y>0;y--);
}
/*矩阵键盘扫描子程序*/
void matrixkeyscan()
{
uint temp;
P3=0xf7; //给P3口赋值
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0) //检测是否有键按下
{
省略
1633基于单片机工业生产现场的光照强度控制系统设计(仿真,程序,报告)
用单片机控制总装车间中的LED照明系统,使其输出恒定照度的光,以满足总装生产工序中的照明需要。
总体设计方案
由设计要求可知,需使用MCS-51系列单片机,构建控制系统,实现LED灯亮度的控制。所以采用AT89C52 单片机为核心,以3*3按键键盘作为输入端,以达到控制所需输出电流的功能,并且由LCD1602显示模块可以显示输入电流的大小和电流源输出的电流大小。在设计中,采用PCF8591芯片进行AD/DA转换,单片机通过I2C通信协议控制PCF8591 AD转换输出的电压所需电压,输入压控电压源,通过采样电阻的电压DA转换获得电流源输出的电流值,经过单片机计算最后显示实际输出电流。
该直流电机控制系统的设计,在总体上大致可分为以下6个部分组成:AT89C52单片机最小系统,3*3按键键盘,直流稳压源,1602显示模块,AD/DA转换模块,可控电流源模块。
///工业生产中的产品数量自动计量系统创新设计
///功能:通过MUC-51芯片控制电流源输出电流,实现LED灯亮度控制
///*************************************************************************
#include<reg52.h>
#include<iic.h>
#include<lcd1602.h>
#define KEY_PRESET(code) { P1=code; temp=P1; temp=temp&code; delay(10);}
uchar str1[16]="310mA<=I<=3100mA";
uchar str2[16]="set: out: ";
uchar str3[16]=" Error occurred ";
uchar dianliu[4]={0,0,0,0};
uchar key_num,key_flag,key_count=0,OK_flag;
ulong pian,bai,shi,ge,set_value;
float key_value;
uchar h,l,temp;
ulong back_voltage1,back_current;
void get_Data();
void set_Data();
uchar keyscan();
bit DACconversion(uchar sla,uchar c,uchar Val);
bit ISendByte(uchar sla,uchar c);
uchar IRcvByte(uchar sla);
void delay1(uint j);
///*************************************************************************
///主函数
///*************************************************************************
void main()
{
INIT_I2c();//iic总线初始化
LCD_Init();//LCD1602初始化
while(1)
{
get_Data();
set_Data();
}
}
//*******************************************************************
//DAC 变换, 转化函数
//*******************************************************************
bit DACconversion(uchar sla,uchar c, uchar Val)
{
Start_I2c(); //启动总线
SendByte(sla); //发送器件地址
if(ack==0)return(0);
SendByte(c); //发送控制字节
if(ack==0)return(0);
1634基于单片机多功能智能台灯设计(带时钟、姿态矫正、温度、亮度)
1、上电之后LED灯点亮,代表当前灯是自动控制模式;
2、通过按键K5可以在自动和手动模式来回切换;
3、在手动模式下,按键K2,K3,K4分别对应一个灯光亮度;(k1按下时不可用)
4、在自动模式下,首先要检测到有人,才进行亮度的自动控制,否则台灯熄灭。可以挡住光敏电阻
的光线,或用手电筒来照射光敏电阻,模拟光照的变化,从而就可以看到台灯的亮度会随着环境中的
光照强度的改变而改变,效果是光照越弱,台灯越亮。如果人体传感器1分钟检测不到有人,台灯就
会自动熄灭。(光敏电阻在USB灯后面);
5、无论是自动模式还是手动模式,都是把亮度分为10个等级的,并在LCD上显示0-9;
6、设置日期时间:按下K1(设置)键,显示年位置会有光标闪烁,表示此时可以调节年份,如需调节年份,
按K3(加),K4(减)即可对年份进行调节。然后按K2(移动)键,显示月份位置会光标闪烁,同样的方法可
以调节月,再按K2键分别可设置日,时,分,秒。
7、靠近超声波时,蜂鸣器报警。
#include <reg52.h> //调用单片机头文件
#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255
#define uint unsigned int //无符号整型 宏定义 变量范围0~65535
#include "eeprom52.h"
#include "intrins.h"
#include "ds1302.h"
#include "lcd1602.h"
#include "ultrasonic_wave.h"//超声波头函数
bit flag_200ms ;
bit flag_100ms ;
bit flag_beep1_en;//定时模式开启标志
bit flag_beep2_en;
bit flag_beep3_en;
sbit k1=P1^4; //时间设置切换
sbit k2=P1^5; //光标移动
sbit k3=P1^6; //加
sbit k4=P1^7; //减
sbit k5=P2^7; //手动/自动
sbit ADC_CS = P3^5; //ADC0832引脚定义
sbit ADC_CLK = P3^6;
省略。。
1636基于单片机的二维码LCD显示控制设计
- 实现对二维码的产生,
- 在12864液晶屏上显示二维码。
- 二维码数据可通过通信接口(串口或者usb)上传到上位机上显示。
/*
取模软件 液晶汉字字模提取
// 汉字字模表 //
// 汉字库: 宋体16.dot 纵向取模下高位,数据排列:从左到右从上到下 输出大小设置128*64 然后输入字符串
*/
#include<reg51.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#include<stdio.h>
#include "delay.h"
#include "math.h"
#include "string.h"
#include "ascii_hz.h"
#include "12864.h"
#define uchar unsigned char
#define uint unsigned int
sbit JIESHOU=P3^7;
sbit led=P1^4;
unsigned char uart_rx_finish=0;
unsigned char uart_rx_cnt=0;
unsigned char uart_rx_cnt_before=0;
//char dis0[32]; //串口数据显示
unsigned char dis2[17]; //串口数据显示
unsigned char dis3[17]; //去掉后缀0x0d 0x0a
unsigned long time_20ms=0; //定时器计数
省略
1637基于单片机的多功能时钟闹钟万年历控制系统设计
基于单片机的多功能时钟闹钟万年历控制系统设计主要实现得功能包含时钟调整,灯光开关,外界光照监测,温度监测等功能,包含得电路有:时钟电路、LCD12764液晶显示电路,LED灯USB、温度传感器、光敏传感器接口、报警电路、按键电路、单片机电路等
/*系统头文件--------------------------------------------------------------------*/
#include <STC12C5A60S2.H> //此文件中定义了单片机的一些特殊功能寄存器
#include "Delay.h" //全局通用延时头文件
#include "19264ks0108ZK.h" //19264屏字库
#include "19264ks0108.h" //19264屏驱动
#include "ds3231.h" //ds3231时钟芯片驱动
#include "rqzh.h" //日期转换
#include "dht11.h" //DHT11湿度温度驱动
#define uchar unsigned char //宏定义无符号字符形数据类型进行声明定义 定义名称uchar 所占位数8位 范围0~255
#define uint unsigned int //宏定义无符号整形数据类型进行声明定义 定义名称uint 所占位数16位 范围0~65535
sbit LED_NO=P1^7; //LEDD开关按键
sbit SJTZ_k1=P1^6; //调整时钟按键
sbit SJTZ_k2=P1^5; //调整时钟加按键
sbit SJTZ_k3=P1^4; //调整时钟减按键
sbit SJTZ_k4=P1^3; //调整时钟OK按键
sbit fmq=P1^2; //闹钟蜂鸣器引脚
sbit LED=P3^7; //LEDD灯引脚
sbit pingbg=P3^6; //屏背光引脚
sbit nz_KG=P2^0; //闹钟开关引脚
uint pingbgjs; //用于屏背光自动控制定时计数标志
uchar SJTZ=0; //调整时钟标志
uchar jia=0; //调整时钟或闹钟加标志
uchar jian=0; //调整时钟或闹钟减标志
uchar fb_nian,fb_yue,fb_ri,fb_shi,fb_fen,fb_nz1_shi,fb_nz1_fen;//调整时钟反白标志
uchar NZ_xl=0; //闹钟状态标志 NZ_xl=0不响铃 NZ_xl=1响铃
static uint D=0,L=0; //声明定时器static静态变量标志 用于某些功能计数
省略