用51单片机做16*16点阵需要哪些材料 20
展开全部
师弟。。。不能做伸手党丫。。。: )
好吧说正经的。。
首先最基本的要求是点阵驱动。
因为16x16,要用32个I/O口,对于89S51单片机这是不现实的。所以需要I/O口扩展。I/O扩展有很多方法,比较常用的是用四个锁存器(74HC573),把一组八个I/O口的数据在四个时钟周期内分别锁存在四个锁存器里。这是最简单最笨的方法(用12个IO口),而且有缺陷。。
更好的方法是利用移位寄存器(74HC595),用SPI总线通信的方式(单片机的硬件SPI接口,或软件I/O模拟SPI)。四个595就能存32位了——用环形SPI总线的方式在时钟的驱动下把32位数据逐一移入595内部的寄存器,然后再让595的输出端口刷新。这样非常节省IO口(用3个就行),硬件电路也简单很多
第二,你说的“重力感应”。。。
这个也是能实现的 :P
重力感应(其实就是测量倾角)需要加速度传感器。测量倾角其实就是测量重力在传感器的水平轴向的分量(这分量和传感器与水平面间夹角呈三角函数的关系),这个分量测量值与传感器测量1G时的输出数值之比做arcsin变换就是倾角。
加速度传感器要用数字的,因为89s51单片机没有模拟量采集用的A/D接口。淘宝有售,一般还有例程,可以参考。我用过的是MMA8451。当然你也可以用带A/D的增强型51——STC12C5A60S2,然后用模拟加速度计MMA7361,不用总线通信编程。
这样的工程网上是找不到现成东西的,希望你能自己学习,这对你也很有帮助。零基础学51可以看杜阳《爱上单片机》。买块开发板最好。
另外想要快速开发用arduino比51好。。。是用老外用AVR搞的,不但运算速度快、接口丰富,而且有现成的驱动函数调用就行。
好吧说正经的。。
首先最基本的要求是点阵驱动。
因为16x16,要用32个I/O口,对于89S51单片机这是不现实的。所以需要I/O口扩展。I/O扩展有很多方法,比较常用的是用四个锁存器(74HC573),把一组八个I/O口的数据在四个时钟周期内分别锁存在四个锁存器里。这是最简单最笨的方法(用12个IO口),而且有缺陷。。
更好的方法是利用移位寄存器(74HC595),用SPI总线通信的方式(单片机的硬件SPI接口,或软件I/O模拟SPI)。四个595就能存32位了——用环形SPI总线的方式在时钟的驱动下把32位数据逐一移入595内部的寄存器,然后再让595的输出端口刷新。这样非常节省IO口(用3个就行),硬件电路也简单很多
第二,你说的“重力感应”。。。
这个也是能实现的 :P
重力感应(其实就是测量倾角)需要加速度传感器。测量倾角其实就是测量重力在传感器的水平轴向的分量(这分量和传感器与水平面间夹角呈三角函数的关系),这个分量测量值与传感器测量1G时的输出数值之比做arcsin变换就是倾角。
加速度传感器要用数字的,因为89s51单片机没有模拟量采集用的A/D接口。淘宝有售,一般还有例程,可以参考。我用过的是MMA8451。当然你也可以用带A/D的增强型51——STC12C5A60S2,然后用模拟加速度计MMA7361,不用总线通信编程。
这样的工程网上是找不到现成东西的,希望你能自己学习,这对你也很有帮助。零基础学51可以看杜阳《爱上单片机》。买块开发板最好。
另外想要快速开发用arduino比51好。。。是用老外用AVR搞的,不但运算速度快、接口丰富,而且有现成的驱动函数调用就行。
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
STM32是一款单片机,由意法半导体公司制造。ST是意法半导体的简称,M是指微控制器(也就是单片机的)MCU的第一个英文字母,32是指32位的CPU,它的CPU是采用的ARM公司的Cortex-M系列的内核设计。STM32具有高性价比、内部...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询