- 浏览: 589792 次
最新评论
-
wjwjwjwj:
void T0_Work() //T0定时器调用的工作函数 ...
51单片机学习笔记:基于状态机的按键对时程序(短按,长按,连发) -
xouou_53320:
lastSeries 写道前辈,是不是在工作以后连System ...
java学习笔记:TCP通讯,传送任意文件(服务端并发) -
lastSeries:
前辈,是不是在工作以后连System.out.println( ...
java学习笔记:TCP通讯,传送任意文件(服务端并发) -
xouou_53320:
chuanwang66 写道不过改了iconv.exe路径也不 ...
Source Insight 中文乱码,用iconv转码,解决中文乱码问题_20150930更新 -
anazel:
正在学习,多谢分享
51单片机学习笔记:基于状态机的按键对时程序(短按,长按,连发)
文章列表
步进电机应用广泛,
例如打印机、磁盘驱动器、玩具、汽车雨刷、手机震动、机械夹具、刻录机等各种机械控制场合
一些概念:
拍数N定子控制绕组每改变一次通电方式,即为一拍一个磁场通电周期是 A-B-C-D-A完成一个磁场周期 ...
STC单片机的内部EEPROM是用DATAFLASH模拟出来的,不是真正的EEPROM存储器,不能用普通的方法来操作下面是一些注意点:1.字节写之前要先将这个字节所在扇区的其它有效数据读取到RAM暂存(这步不是必须的)2.暂存完之后再对整个扇区(512字节)进行擦除操作,擦拭完后,整个扇区每个地址中数据都变成0xFF3.将欲写入的N个字节数据,用字节写函数写入EEPROM4.将暂存到RAM的其它有用的EEPROM值再用字节写函数写回EEPROM5.STC用FLASH模拟出来的EEPROM的字节写功能只能将1变成0,而不能将0变成1, 只有扇区擦除后数据才是全1, 例如:在地址0x21f0 ...
正点原子的ALIENTEK遥控器
用户码00ff
16进制键值码表45 46 4744 40 4307 15 0916 19 0d0c 18 5e08 1c 5a42 ☻ 4a
红外接收管 通用型即可
----------------------------------- ...
百度ds1302 写道
DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。 DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时 ...
#include "my51.h"
#include "smg.h"
#include "ds18b20.h"
void main() //测试 ,6位数码管显示温度值
{
u8 i=0;
u16 temp=0;
while(1)
{
temp=ds18b20_readTemperaData();
for(i=0;i<100;i++)
{
displaySMG(ds18b20_proces ...
纯山寨tx-1c开发板 ,第一次动手焊板子, ,*_*,
可以兼容以前写的程序
板子右边还有些空间,准备加上lcd接口
反正是低频的, 各种飞线, 飞来飞去
单体的数码管焊接有些麻烦,9*15cm的板子要尽量挤挤,
5V的供电直接用手机充电器,手上有好几个呢, 用7805反而麻烦,
反正电脑USB口也是5V的可以用.
板子上没加TTL与232转换部分,我的台式机和笔记本上都没有232,只有usb口
所以平时都是用一个专用的下载器编程,(自己用2303做也可以)
用下载器直接插到usb口上,keil中点击编译成功后就会自动下载,不需要按开关冷启动
内置保险丝防止 烧 ...
之前的电子钟程序中,用的按键消抖处理方法是10ms的延时,这种方法效率比较低
所以现在利用状态机原理重写一下,效率很高啊
4个独立按键中用到3个,
keys5用于切换对时分秒等状态,keys2是减小数值,keys3是增加数值
同时可以判断按键的"短按,长按,连发"等功能
小于2秒视为短按,
大于2秒视为长按,
在长按状态下每0.2秒自动连发一次, 这样对时的时候就不用按N次了
欢迎一起交流,qq 102351263 验证码 iteye
程序分很多个文件 ,Keil uVision4 打包
#include " ...
硬件上由于24c01的A0A1A2管脚不允许悬空,故暂时的想法是兼容24c02 ---24c16
使用一个dip8封装的芯片插座,A0 A1 A2管脚都悬空即可,换芯片方便
软件上24c02地址只有8位,而其他型号是大于8位的,故地址参数使用16位
256个字节作为一个大页,即largePage,测试芯片24c04空间有512字节
上代码,求测试和讨论
#include "MY51.H"
//转载请注明:http://xouou.iteye.com 求测试讨论
//stc89c52rc,11.0592MHz晶振
sbit sda=P2^0; // ...
AT24C02A, 2K SERIAL EEPROM:
Internally organized with 32 pages of 8 bytes each,the 2K requires an 8-bit data word address for random word addressing.
24c02有32个页,每页8字节,本帖中不讨论页写的方式
-------------------------------------------------------------------
AT24C02内部设有一个8位控制寄存器,其每一位的含义如下: Bit7 Bit6 B ...
TX-1C板
操作并行模式的1602液晶液晶第1,2脚是gnd和vcc第3脚是对比度调节第4脚是数据/指令选择端RS第5脚是读写选择端R/W,我们这次只写不读,故直接接地第6脚是读写使能EN第7到14脚是数据口,我们接STC89C52RC的P0口第15,16脚是背光源
最终液晶显示
Tom is playing the TNT game!
#include <reg52.h>
#include "MY51.H"
void write_data(uchar dataValue); //写数据
void write_cmd(uchar ...
电位器调节待检测电压值,在数码管上显示出来,
代码大多从书上搬过来的,书上例5.3.1要求前3个数码管显示AD转换后的8位数字量(即0~255)
我这里让前4个数码管显示具体电压值,比如1.352
#include <reg52.h>
#include "MY51.H"
void initSMG() //数码管初始化信息
{
//上电时,都为高电平
P0=0xff;
wela=open;
P0=0xff;
wela=lock;
P0=0;
dula=open;
P0=0;
dula=lock;
}
...
芯片STC89C52RC
在PC端向单片机发送任意数据后, 单片机向PC端发送4行文本,
由于在windos下,回车换行用\r\n
#include <reg52.h>
#include "MY51.h"
void initSer(); //串口初始化
uchar sendFlag = 0; //未发送数据时
uchar receFlag =0; //未接受到数据时
code uchar TEXT0[] = "*************************** ...
今天学习了下矩阵键盘,
4*4, 分别代表0~F这16个数字
我们按了哪个键就显示到数码管上
看完郭老师讲解原理后就自己动手写了,郁闷的是
在keil软件中,我在switch-case语句中 少了个冒号,竟然编译通过!
结果当然不正确了,然后我再keil中调试代码,那更郁闷了,P3口在扫描到第2行键盘时就
会复位成0xff,怎么赋值都没用,其实是没写冒号啊!
调了半天都不行,最后不得不将STC89C52RC换上仿真芯片SST89E516,在线调试后才发现的错误,
然后参考书上的代码才调试成功的,表示无语~~~
mark下
#include <r ...
本篇是对上一篇的改进,昨天学习了第4章 中的独立键盘的使用
独立键盘拥有自己独有的IO口,所以比较简单,我上一篇写的电子钟程序只能烧程序对时,
不能手动按键对时,这肯定是最差劲的做法,所以学习了按键之后,就立马动手改进我的电子钟了
同时改进了数码管小数点的显示,消除了叠影
使用芯片STC89C52RC, 2个锁存器
6个带小数点共阴极数码管显示一个24时制时钟
没有时钟芯片,所以掉电后时间会复位
原理图为TX-1C开发板
==============================
最终显示的<时.分.秒>是 16.31.37 形式
使用 ...
使用芯片STC89C52RC, 2个锁存器
6个带小数点共阴极数码管显示一个24时制时钟
没有时钟芯片,所以掉电后时间会复位
原理图为TX-1C开发板
暂时显示了半小时,一秒不差,
未验证有无其他bug,代码贴上来,欢迎高手指点
==============================
最终显示的<时.分.秒>是 16.31.37 形式
#include <reg52.h>
#include "MY51.H"
void show();
uint8 shi=15; //初始时间15:45:00 按 ...