点击链接获取Keil源码与ProjectBackups仿真图:https://download.csdn.net/download/qq_64505944/87853299?spm=1001.2014.3001.5503源码获取主要内容:本设计是基于51系列的单片机进行的设计,利用所给键盘的八个键,能够发出8个不同的音调,并且要求按下按键发声,松开延时一段时间停止,中间再按别的键则发另一音调的声音。并在LED上相应的设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51单片机。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析
1.MDK与C51下载、安装1.1下载最新MDK和C51安装包进入keil官网产品下载界面1.2.安装MDK和C51**MDK安装**双击”MDK“安装包,然后按着提示,一步一步安装。这里我们安装在“D:\keil5\keil5_MDK”路径**C51安装**双击**“C51”**安装包,然后按着提示,一步一步安装。这里我们安装在“D:\keil5\keil5_C51”路径2.MDK5与KeilC51合并2.1.打开C51安装目录和MDK的安装目录2.2.把C51安装目录下的C51文件夹整个复制到MDK目录中2.3.打开C51安装目录下的UV4,选中UV4文件夹的全部文件进行复制2.4.打开M
定时器也可以做为计数器,其实他们本质上的原理是一样的,定时器是计数单片机内部的系统时钟,每1个或者12个时钟脉冲,就加一。计数器则是记录外部输入脉冲。1. 定时器0有四种工作模式,这里使用的是定时器0的16位可重新装载模式,16位(0x0000~0xFFFF)即可以从0数到65535共计65536个,区别8位(0x00~0xFF)的256个,可重装载指的是初始化设置的起始数,在溢出中断后会重新装载。TMOD= 0x00;//配置工作模式2.配置定时器0的工作频率,手上的设备是工作在35MHz,设置1T模式,定时器0也工作35MHz,计数间隔就是1/35us,如果设置12T模式,那么定时器0就会
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、RS485引脚功能二、RS485驱动程序1.串口初始化程序2.串口中断服务程序2.RS485解码程序3.RS485发送程序总结前言 在自动化领域,随着分布式控制系统的发展,迫切需要一种总线能适合远距离的数字通信。在rs-422标准的基础上,eia研究出了一种支持多节点、远距离和接收高灵敏度的rs-485总线标准。 rs-485标准采用平衡式发送,差分式接收的数据收发器来驱动总线,具体规格要求: 1.接收器的输入电阻rin≥12kΩ 2.驱动器能输出±7v的共模电压 3.输入端的电容≤50pf 4.在节点数
51单片机读引脚和读端口测试总结_单片机怎么读取引脚电平_爱嘟嘟的小屁孩的博客-CSDN博客近期看了几篇有关单片机读/写端口或引脚的区别的文章,其中上面引用本CSDN的这篇文章,总结的2点感觉还不错,先引用一下:1.51单片机里对某一个I/O口进行读--改--写(例如上面的取反后写回)操作时,读取的是与之对应的锁存器的输出,而不是实际物理引脚的电平;其他非读--改--写(例如上面的ifXX==0)指令读取的是引脚电平。2.读引脚电平时一定要先向该端口写1,然后再读取引脚电平!其中:第2点说的可能是针对已设置I/O为双向的情况! 实际可能不用写1,只需临时改写端口为高阻态也行的,高阻态时不用管原
交互设计原则有很多,《小红书的52条设计原则》可以学习下,非常棒的输出,值得做产品设计的童鞋学习一下。01、帕累托法则就是我们常说的二八法则,表单设计中,可以默认选中一个最常用的选项,提高用户的填写效率和用户体验。PS:该法则更适合用于分析竞品,可能并不适合规划。02、多功能代价产品的功能增多,可以满足更多用户需求,但可用性和操作性会降低,并拿瑞士军刀距离,功能丰富,但跟单功能工具想比,可用性就差。当无法明确用户需求时,提供多样的功能可以提高产品未来的可拓展性,当用户有明确的需求时,简洁专一的功能可以提高产品的可用性。功能丰富多彩的burbn是ins的前身,精简后改名ins,迎来爆炸式增长。P
前言使用52单片机实现独立键盘控制数码管计数代码#include#defineucharunsignedchar#defineuintunsignedintsbitkey2=P3^4;sbitkey3=P3^5;sbitkey4=P3^6;sbitkey5=P3^7;charcodesmg[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};sbitwei=P2^7;sbitduan=P2^6;voiddelayms(uintnms);voiddispla
在向数据库中添加英文测试数据时没问题,但是添加中文测试数据时发现一个错误:1366-Incorrectstringvalue:‘\xE5\xBC\xA0\xE4\xB8\x89’forcolumn‘name’atrow1。解释为:1366-字符串值不正确:第1行的列’name’为’\xE5\xBC\xA0\xE4\xB8\x89’出现这个问题的原因是你的数据库编码、排序类型不是utf-8的,所以你创建的表的排序规则自然也不是utf-8类型的。如下:people表是正常支持中文的,user表是错误1366的,看他们排序规则区别。为什么会出现这种情况?在mysql中新建数据库,如果只写数据库名,没
所需要使用的元器件: 代码:(使用的是keil5)#include //调用单片机头文件#defineucharunsignedchar //无符号字符型宏定义 变量范围0~255#defineuint unsignedint //无符号整型宏定义 变量范围0~65535 //数码管段选定义 0 1 2 3 4 5 6 7 8 9 ucharcodesmg_du[]={0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xBa,0x20,0x28, 0x30,0x25,0xe4,0
#include"reg51.h"#include"myheader.h"#defineucharunsignedcharucharsleep_i=0;ucharsleep_i_b=0;uchari=0;uchari_b=0;ucharp2_b=0;ucharth1_b=0;uchartl1_b=0;voidrgb_light(){ while(1) { P20=P21=0;P22=1;P23=1;P24=P25=0; sleep(2*10); for(i=0;i这个代码需要稍微改一下才能运行,看得懂的不超过1分钟应该能够搞好。看不懂的无法运行