仿真+代码+报告。十字路口的交通灯控制系统,四组灯(红黄绿)对应十字路口的四个方向,用两位的数码管显示剩余的时间。利用proteus画出仿真图,在keil中编写好程序并调试,并下载到单片机内实现仿真。
2023-04-04 16:46:37 359KB 单片机 proteus
1
本文主要介绍了C51单片机的内存优化问题。
2023-04-04 16:18:52 77KB 单片机 C51 内存优化 文章
1
硬件:51单片机+LCD1602显示屏-DS1302-DS18B20 6017 可以显示万年历时间,当前温度 带整点报时,和设置闹铃
2023-04-04 14:51:57 13.66MB 51单片机
1
LibSpritesGUI 上古神器I:精灵图2D图形引擎 想要一个能在单片机上运行的高性能的2D图形引擎,却不知道怎么如何下手?没问题! 想要制作一些简单的GUI,却苦于不想写字库的处理?没问题! 想要开发一点复杂的GUI,但是资源有限跑不动市表面的GUI库?没问题! 甚至是想要制作复杂的动画,甚至是制作一款2D RPG游戏?也是没问题! 让这个库帮你解决掉这些烦恼! 注意:该项目因涉及大量整型运算优化,需要至少16位机方可运行 请放弃手动的51单片机吧,建议使用STM32 / ESP8266 / ESP32等更加先进又便宜的设备来运行 (演示视频位于static / demo.mp4) 它可以做什么? 128x64分辨率,黑白输出,适合合适便宜的12864屏幕 最大可同时输出256个完全不同的精灵图 支持5个层叠(查找表)的叠加渲染 除背景层外,每个季度均支持多层多层信息 每个季度
2023-04-04 13:53:28 5.96MB 系统开源
1
开关机功能是使用电池供电系统的基本功能。如果使用机械式开关(2段拨动开关,自锁开关等)等直接接通和切断电源,不说机械部件的可靠性,至少自动关机(一般在长时间不操作、电池电量低时需要自动关机)功能就比较难实现。所以电池供电系统一般采用按钮开关,用一个按钮配合软件实现按开机、再按关机的功能及自动关机的功能。     这部分内容就讲述如何在上实现一键式的开关机功能。开关机功能要使用单片机的一个引脚(PD4)作为输入端,连接到按钮,接收按纽按下产生的电信号,然后再使用另一个引脚(PD3)作为输出端去驱动由三极管8550构成的一个电子开关实现对系统电源的控制。而STM8S单片机本身就直接接在电池上,利用
1
使用两块单片机,A单片机使用PCF进行AD采值(IIC通信),使用MAX232与B单片机进行通信,B单片机接收数据,并用LCD1602显示出来,程序+仿真
2023-04-04 12:49:11 172KB 单片机 MAX232 LCD PCF
1
关于瑞萨mcu经典应用,已经打包上传了,网上资料太少我就在这分享一下我自己找到的资源吧。关于瑞萨mcu经典应用,已经打包上传了,网上资料太少我就在这分享一下我自己找到的资源吧。
2023-04-04 09:39:46 16.22MB 瑞萨 单片机 嵌入式
1
前几天,51单片机课设写的,保证好使,如不会操作,可联系,文档有联系方式.通过按键输入密码,通过数码管显示当前输入的密码,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,密码输入正确,蜂鸣器提示。若密码不正确,则可以从新输入密码。如连续三次输入错误,则禁止输入,蜂鸣器长鸣报警。
1
说明:专为楼下客厅设计的PWM调光智能LED照明系统。 基本功能: 1、整套系统基于C51单片机控制,使用315MHz无线遥控模块实行无线控制 2、能够无级调光,实现最暗至最亮任意调整 3、设置呼吸灯提醒程序,睡眠状态中显示呼吸灯,提示电源并未切断。
2023-04-04 07:21:20 7KB PWM Light
1
#include #define uchar unsigned char #define uint unsigned int uchar buff,times,j; unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f, //0,1,2,3 0x66,0x6d,0x7d,0x07, //4,5,6,7 0x7f,0x6f,0x77,0x7c, //8,9,A,B 0x39,0x5e,0x79,0x71,0x00}; //C,D,E,F,null unsigned char idata value[8]; void delay1ms(void) //消抖动 { uchar i; for(i=200;i>0;i--); } void delay5ms(void) //延时5ms { unsigned char i,j; for(i=5;i>0;i--) for(j=248;j>0;j--); } void key_scan(void) //键盘输入扫描函数 { uchar hang,lie,key; P3=0xf0; if((P3&0xf0)!=0xf0) //行码为0,列码为1 { delay1ms(); if((P3&0xf0)!=0xf0) //有键按下,列码变为0 { hang=0xfe; //逐行扫描 times++; if(times==2) times=1; while((hang&0x10)!=0) //扫描完4行后跳出 { P3=hang; if((P3&0xf0)!=0xf0) //本行有键按下 { lie=(P3&0xf0)|0x0f; buff=((~hang)+(~lie)); switch(buff) { case 0x11: key=0;break; case 0x21: key=1;break; case 0x41: key=2;break; case 0x81: key=3;break; case 0x12: key=4;break; case 0x22: key=5;break; case 0x42: key=6;break; case 0x82: key=7;break; case 0x14: key=8;break; case 0x24: key=9;break; case 0x44: key=10;break; case 0x84: key=11;break; case 0x18: key=12;break; case 0x28: key=13;break; case 0x48: key=14;break; case 0x88: key=15;break; } value[times-1]=key; //按下的键值 } else hang=(hang<<1)|0x01; //下一行扫描 } } } } void main(void) { uchar key; while(1) { key_scan(); P0=0; for(j=times;j>0;j--) { P2=j-1; //数码管列扫描 P0=dispcode[value[times-j]]; //A-G数据 delay5ms(); } } }
2023-04-04 03:08:28 84KB 51单片机 键盘 数码管
1