-
-
16//音符半周期us 1908 1706 1520 1436 1276 1136 1012 956 854 760 718 638 568 506 478 426 380 358 320 284 254 #include <reg51.h> #include <intrins.h> #include "lcd1602.h" #define uchar unsigned char #define uint unsigned int sbit K1=P1^0;//按钮定义 sbit K2=P1^1; sbit K3=P1^2; sbit K4=P1^3; sbit K5=P1^4; sbit beep=P2^7;//蜂鸣器 uchar ge_num=1;//歌曲编号 //音符半周期us 1908 1706 1520 1436 1276 1136 1012 956 854 760 718 638 568 506 478 426 380 358 320 284 254 //半周期 uint code music[22]={0x0fff,1908,1706,1520,1436,1276,1136,1012,956,854,760,718,638,568,
-
1【H文件】 #ifndef __MAX31855_H_ #define __MAX31855_H_ #include<reg51.h> //---重定义关键词---// #ifndef uchar #define uchar unsigned char #endif #ifndef uint #define uint unsigned int #endif /********************************** PIN口定义 **********************************/ sbit max_so =P1^1; sbit max_sck=P1^0; sbit max_cs =P1^2; /********************************** 函数声明 **********************************/ uint max_read(); #endif 【C文件】 #include "MAX31855.h" #include "intrins.h" //最高位是符号 TCE //返回温度,精度0.01 uint max_read
-
9链接:https://pan.baidu.com/s/1Of402FLX692HoxA5FUmtfQ?pwd=291c 提取码:291c 复制这段内容后打开百度网盘手机App,操作更方便哦 链接:https://pan.baidu.com/s/1A1Bt_spQDeqsfSQIJwbKkw?pwd=ysog 提取码:ysog 复制这段内容后打开百度网盘手机App,操作更方便哦
-
0步进电机控制系统设计,proteus与keil 1、硬件包含正转、反转、停止控制; 2、用矩阵键盘设定电机目标转速及旋转方向,范围100~200转/分; 3、测量、显示电机实际转速和方向(正转显示“S”,反转显示“N”) #include "reg51.h" #define uchar unsigned char #define uint unsigned int sbit AA=P2^4;//步进电机 sbit BB=P2^5; sbit CC=P2^6; sbit DD=P2^7; sbit k1=P1^0;//按钮 sbit k2=P1^1; sbit k3=P1^2; sbit k4=P1^3; sbit k5=P1^4; sbit smg1=P2^0;//数码管 sbit smg2=P2^1; sbit smg3=P2^2; sbit smg4=P2^3; uchar code smgduan[10]={0xC0,
-
8#include "reg51.h" //此文件中定义了单片机的一些特殊功能寄存器 #include "intrins.h" #define uint unsigned int //对数据类型进行声明定义 #define uchar unsigned char sbit ADCLK= P1^5;//时钟,初始状态为0 sbit ADDI= P1^6;//数据输入 sbit ADCS= P1^7; sbit out1=P3^5; sbit out2=P3^6; sbit pwm=P3^7;//PWM sbit key1=P1^0; sbit key2=P1^1; //=============================== uint speed=0,speed2; uint time=0,sec=0;//计时 uint sudu=20,sudu1=0;//速度设定 uchar fang=0,start=0; //读取AD值 unsigned int ADC0832(unsigned char channel) //AD转换,
-
0#include "reg51.h" #define uchar unsigned char #define uint unsigned int //数码管编码 uchar code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7C,0x39,0x5E,0x79,0x71,0x40}; void key_scan()//按键检测 { uchar i,j; i=0; j=0; P3=0x0f; if(P3!=0x0f) //检测有无按下 { switch(P3)//检测行 { case 0x0e:i=1;break; case 0x0d:i=5;break; case 0x0b:i=9;break; case 0x07:i=13; } P3=0xf0; switch(P3)//检测列 { case 0xe0:j=0;break; case 0xd0:j=1;break; case 0xb0:j=2;break; case 0x70:j=3; } P2=smgduan[i+j-1]; P1=~(i+j-1); while(P3!=0xf0);//等待按键松开 } }
-
3ORG 0000H AJMP MAIN ORG 000BH AJMP TIM0 ORG 0030H MAIN: MOV TMOD,#01H//设置定时器 MOV TH0,#3CH//50MS MOV TL0,#0B0H SETB ET0 SETB EA MOV R2,#1//花样 MOV R4,#10//速度 MOV R5,#10//计时 MOV A,#0FEH MOV P1,A SETB C START: JB P3.3,ST1//启动 SETB TR0 ST1:JB P3.4,ST2//暂停 CLR TR0 ST2:JB P3.5,ST3//换向 CPL P2.0 ST3:JB P3.6,ST4//速度 CJNE R4,#10,SU1 MOV R4,#15 AJMP WW1 SU1:CJNE R4,#15,SU2 MOV R4,#20 AJMP WW1 SU2:CJNE R4,#20,SU3 MOV R4,#5 AJMP WW1 SU3:CJNE R4,#5,SU4 MOV R4,#10 AJMP WW1 SU4: WW1:JNB P3.6,WW1 ST4:JB P3.7,ST5//花样 SETB C MOV A,#0FEH MOV P1,A CJNE R2,#1,HU1 MOV R2,#0
-
1
-
0#include "reg51.h" #define uchar unsigned char #define uint unsigned int sbit beep=P1^4;//蜂鸣器 sbit led1=P2^3;//LED sbit led2=P2^4; sbit led3=P2^5; sbit led4=P2^6; sbit led5=P2^7; sbit smg1=P2^0;//数码管 sbit smg2=P2^1; sbit smg3=P2^2; //数码管编码 uchar code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar time=0,mode=0,flag=0;//系统变量 uchar shi=0,fen=0,miao=0,sec=0; uchar shi1=0,fen1=0,miao1=0,sec1=0; uchar key_time=0; //延时 void delay(uint i) { while(i--); } uchar key=0,key1=0; uchar key_scan()//按键检测 { uchar i,j; i=0; j=0; P3=0x
-
4//音符半周期us 1908 1706 1520 1436 1276 1136 1012 956 854 760 718 638 568 506 478 426 380 358 320 284 254 #include <reg51.h> #include <intrins.h> #include"ds1302.h" #include"i2c.h" #define uchar unsigned char #define uint unsigned int sbit beep=P3^2;//蜂鸣器 sbit smg1=P2^0;//74LS138 sbit smg2=P2^1; sbit smg3=P2^2; sbit led1=P3^3;//led sbit led2=P3^4; sbit led3=P3^5; sbit led4=P3^6; sbit led5=P3^7; uchar code smgduan0[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0~9,无小数点 uchar code smgduan1[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0x
-
0#include "reg51.h" #define uchar unsigned char #define uint unsigned int sbit k1=P1^0;//选手按钮 sbit k2=P1^1; sbit k3=P1^2; sbit k4=P1^3; sbit k5=P1^4; sbit k6=P1^5; sbit k7=P1^6; sbit k8=P1^7; sbit s1=P3^2;//主持人按钮 sbit s2=P3^3; sbit s3=P3^4; sbit s4=P3^5; sbit s5=P3^6; sbit smg1=P2^0;//数码管引脚 sbit smg2=P2^1; sbit smg3=P2^2; sbit smg4=P2^3; sbit beep=P2^4; uchar mode=0,flag=0,num=0;//模式 uchar time=0,miao=0,set1=10,set2=10;//系统时间 uchar beep_time=0; uchar code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //延时函数 void delay
-
0#include "reg51.h" typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; sbit K1=P1^0;//按钮 sbit K2=P1^1; sbit K3=P1^2; sbit K4=P1^3; sbit K5=P1^4; u8 mode=0;//模式 u8 time=0,speed=19;//计时 u16 num1=1,num2=0,num=0; u8 flag=0; //主函数 void main() { //定时器0初始化 TMOD|=0X01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; ET0=1;//打开定时器1中断允许 EA=1;//打开总中断 while(1) { if(!K1)//启动 { TR0=1; } if(!K2)//暂停 { TR0=0; } if(!K3)//模式切换 { if(mode<15) mode++; else mode=0; flag=0; switch(mode) { case 0:
-
3#include "reg51.h" #include"Ds18b20.h" #define uchar unsigned char #define uint unsigned int sbit smg1=P2^0;//数码管 sbit smg2=P2^1; sbit smg3=P2^2; sbit smg4=P2^3; sbit k1=P1^0;//按钮 sbit k2=P1^1; sbit k3=P1^2; sbit k4=P1^3; sbit k5=P1^4; sbit k6=P1^5; sbit out =P3^7;//电机 sbit led=P2^7; //数码管编码 uchar code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wendu=0,set=30; uchar mode=0; uint time=0; uchar pwm=0,sec=0; uchar start=0; //延时 void delay() { uint i=50; while(i--); } //主函数 void main() { uchar k=0; //设置INT0 IT0=
-
0#include "reg51.h" sbit k1=P3^2;//按钮 sbit k2=P3^3; unsigned char time=0,pos=0;//系统变量 unsigned char num=1;//数量 //延时 void delay(unsigned int i) { while(i--); } void show(unsigned char pos,unsigned char seg)//点亮数码管 { P0=0; P2=(7-pos)<<2; P0=seg; delay(100); } void disp(unsigned char weizhi)//按位置点亮 { switch(weizhi) { case 8:show(7,0x02);break; case 26:show(7,0x04);break; case 35:show(0,0x20);break; case 17:show(0,0x10);break; default: if(weizhi<8) { show(weizhi,0x01); } else if(weizhi<17) { show(16-weizhi,0x40); } else if(weizhi<26)
-
11. 做一个时钟和秒表切换界面,通过按键切换当前显示2.秒表功能: 能够进行秒记录。显示 前两位代表分,后两位代表秒, 由按键控制启动/暂停/继续/清楚(按键可根据功能复用。) 3. 时钟功能: 时钟默认展示 1200,(小时/分钟) 每过1分钟自动增加,可以通过按键进行时钟和分钟的矫正(增加/减少) #include "reg51.h" #define uchar unsigned char #define uint unsigned int sbit smg1=P2^0; sbit smg2=P2^1; sbit smg3=P2^2; sbit smg4=P2^3; sbit k1=P2^4;//按钮 sbit k2=P2^5; sbit k3=P2^6
-
0
-
0
-
5#include "reg51.h" #include "lcd1602.h" #include <PCF8591.h> #define uchar unsigned char #define uint unsigned int sbit k1=P1^0;//按钮 sbit k2=P1^1; sbit k3=P1^2; sbit k4=P1^3; uchar time=0,mode=0;//系统变量 uchar speed=0;//播放速度0-7,1k-8k uchar code tth[]={ (65536-1000000/4000)/256,(65536-1000000/3500)/256, (65536-1000000/3000)/256,(65536-1000000/2500)/256, (65536-1000000/2000)/256,(65536-1000000/1500)/256, (65536-1000000/1000)/256,(65536-1000000/500)/256 }; uchar code ttl[]={ (65536-1000000/4000)%256,(65536-1000000/3500)%256, (65536-1000000/3000)%256,(6
-
0骗子跟我私信对吗,我给骂的太凶了,私信这3天被禁了。有事直接吧里说
-
0
-
1
-
04#include "reg51.h" #include "absacc.h" #include "Ds18b20.h" #include "lcd1602.h" #define uchar unsigned char #define uint unsigned int sbit K1=P1^0; sbit K2=P1^1; sbit K3=P1^2; sbit K4=P1^3; uchar mode=0;//功能 uint time=0; void delay(uint i)//延时us { while(i--); } void delay_ms(uint i)//延时ms { uchar k; while(i--) { for(k=0;k<110;k++); } } void led1()//流水灯 { uchar i; if(mode !=0) return; for(i=0;i<8;i++) { PA8155=~(1<<i); delay_ms(500); if(mode !=0) return; } PA8155=0xff; } void led2()//单灯向里移动 { uchar i; if(mode !=0我的设计题目是基于8155的LCD显示温度控制彩灯,求求大神给我搞一下11#include"reg51.h" #include"absacc.h" #define uchar unsigned char #define uint unsigned int #define PA8155 XBYTE[0x0101] #define PB8155 XBYTE[0X0102] #define PC8155 XBYTE[0x0103] #define PD8155 XBYTE[0x0100] uchar time=0,flag=0,mode=0;//功能 uchar num=0; uchar disp[]=" 12345678"; uchar key=0; //延时函数 void delay_uint(uint i) { while(i--); } //1602命令函数 void write_com(uchar com) { PD8155=3; PB8155=0; PA8155=com; delay_uint(20); PB8155=4; delay_uint(20); PB8155=0; } //1602写数据函数 void write_data(uchar dat) { //PD8155=3; PB8155=1; PA8155=dat; d102#include "reg51.h" #define uchar unsigned char #define uint unsigned int sbit k1=P1^4;//设置 sbit k2=P1^5;//加 //数码管编码 uchar code smgduan[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; uchar time=0,mode=0;//系统变量 uchar shi=12,fen=0,miao=0;//计时 //延时 void delay(uint i) { while(i--); } void main()//主函数 { uchar a=0,k=0; TMOD|=0X01; TH0=(65536-50000)/256;//50ms TL0=(65536-50000)%256; ET0=1;//打开定时器0中断允许 EA=1;//打开总中断 TR0=1;//打开定时器 while(1) { if(!k1 &&(k!=1))//设置切换 { k=1; if(mode<6) mode++;10100


