这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » th152210的MCU DIY进程贴-自动校时万年历之收音机

共40条 1/4 1 2 3 4 跳转至

th152210的MCU DIY进程贴-自动校时万年历之收音机

助工
2011-11-08 22:53:36     打赏

1月7日更新
自动校时万年历的收音机部分已经调试成功。请看视频。

1月1日更新
自动校时万年历,以前做过的东西,没有做好,现在完成它。

12月31日更新
pcf8951的ad转换,通过12864进行显示,直接显示电压值

12月30日更新
rtx51下的12864显示ds1302时间,掉电不丢失奥。详细见39,40,41楼。工程文件已经上传。

12月28日更新
居然还会出现如此情况,我的单片机居然是stc89c52rc,难道单片机会自己变性,疑惑是变质?这个得问厂家了。看看我的截图,大家猜猜是怎么回事?38楼见

12月26日更新
在rtx51系统下实现的流水灯。
目前功能比较简单,程序不断升级,后续功能不断增加,敬请关注。详细内容见36楼。
37楼再更新,使用更多的rtx51内部程序,如os_send_signal,os_wait1等。

1225日更新
终于找到下载不进去的原因:单片机有问题。详细内容见32,33楼。

 

12月23日更新

 

好不容易焊好的电路板,不能下载啊,郁闷,大家一块讨论一下。
详细内容见30,31楼


12月16日更新 

 不完整的焊接效果图
12
10日更新

由于时间比较紧,三天才焊接了一点,给大家的建议是,焊接的时候要边焊接边测试,不要一味的焊接板子等焊接好了,最后发现很多错误,不但阻碍调试速度,而且会损坏很多器件。
下面是我这一周的进程,可能比较慢,工作之余做的东西,而且是边焊接,边检测。目前的成果是:stc12a单片机的串口下载还没调试通过。详细内容请看23,24,25楼。
 
11月20日更新
pcb
板现在还没到手,先学习一下51单片机的RTOS,想一块学的请报个名。最近工作也比较忙,希望大家能理解一个边工作边学习与工作无关的参赛者,呵呵。目前先在自己焊接的洞洞板上实际使用一下keil提供的rtx51 tiny



关键词: th152210     进程     自动     校时     万年历     收音机    

助工
2011-11-15 02:43:15     打赏
2楼
今天看到此贴http://forum.eepw.com.cn/thread/203995/1,让我兴奋不已。前100名申请者中,我是第27个。
由于本人工作时间的原因,业余时间主要集中在晚上10点到次日的上午10点,该贴的主要更新时间也主要集中于此时间段。
报名成功名单下来之前,我已经开始了元器件的采买。除去自己平时积累下来的器件外,所有器件都将从淘宝网站的信德电子采购。该网店的器件较全,信誉也比较好,大家多多的支持他吧。
购买的器件正在紧张的整理当中。先发表一下官方提供的主要元器件示意图吧,这个可以从eepw论坛中(http://www.eepw.com.cn/event/action/MCU_DIY/data.html)下载到。示意图如下图所示:

助工
2011-11-15 23:57:26     打赏
3楼
不是我的笔记本好,是这个图本来就是官方网站上传的,请自己打开我所提供的链接下载。

助工
2011-11-16 00:28:49     打赏
4楼
以前经常用AT89S52单片机,Flash存储为8k,sRAM为256B,都比较小。这次比赛官方提供的PCB开发板能兼容STC的12C5AXXX些列单片机,SRAM在1280B,外设比较多,如ADC、PWM等,功能比较强大,机器周期较短。所以本人将采用STC的单片机。为了让大家能更好的了解他,特提供如下资料。
STC12C5A系列单片机中文资料如下:
——回复可见内容——

助工
2011-11-20 23:22:44     打赏
5楼
近年来随着科技的飞速发展,单片机的应用正在不断深入。与此同时,各个开发商也在不断的升级自己的单片机,89s52到avr,stm8到stm32。然而万变不离其宗,我们还是要拯救一下那些可怜的51单片机。
      当然,仅仅把51单片机当作一个“裸机”使用已经不能满足diy人的需要,所以我们要向嵌入式操作系统进攻。如何把操作系统放在51单片机上呢?很多人可能知道keil里面带有的一种RTOS--rtx51 tiny。这是一个可以运行在低端单片机上的嵌入式实时操作系统。
      RTX51 Tiny是一个实时操作系统(RTOS), 允许你创建同时完成多个功能或任务的应用程序. 这是一个嵌入式应用的常规要求. 当然没有RTOS(通过在一个循环里执行一个或多个功能或任务)也可以创建一个实时程序. RTOS象RTX51可以为你解决很多安排, 维护和时间的问题.

一个实时操作系统(RTOS)允许弹性地安排系统资源象CPU和存储器并提供某些方法在任务之间通信. RTX51 Tiny是一个功能强大的RTOS, 易于使用并可以与所有8051系列MCU工作.

RTX51 Tiny程序使用标准C结构编制并用Keil C51 C编译器编译. C语言允许你容易地声明任务函数而不需要复杂的堆栈和变化的结构配置. RTX51 Tiny程序只要求你包含一个特殊的头文件和链接RTX51 Tiny库到你的程序中.
以下是RTX51的中文资料,欢迎下载。
——回复可见内容——
——回复可见内容——


助工
2011-11-26 23:35:20     打赏
6楼

现在使用rtx51编写了一个显示程序,感觉rtx51还是挺好用的。
网友奔腾似海(http://blog.sina.com.cn/s/blog_533074eb0100opxo.html写的好:“
对于使用RTX51的具体好处可以在实践中去体会,就象会用了C51,就
不想再用汇编了。用了RTX51,说不定就感到再也离不开它了。”我坚信古人说的一句话;“工欲善其事,必先利其器”。

其实学习rtx51的好处就是能实现了实时性和多任务性。很多底层的东西也不需要绞尽脑汁的去想。就像你可以在windows系统中编写一个简单的小程序显示一串字符而不需要考虑该怎样实现复杂点阵的显示一样。

使用rtx51编写程序其实很简单,在keil中,你只需在目标选项的target标签中的operating中选择rtx-51 tiny,在你的头文件中加上#include <rtx51tny.h>即可。如:

#include <rtx51tny.h>                 /* RTX-51 tiny functions & defines      */

long counter0;                        /* counter for task 0                   */
long counter1;                        /* counter for task 1                   */

/******************************************************************************/
/*       Task 0 'job0':  RTX-51 tiny starts execution with task 0             */
/******************************************************************************/
job0 () _task_ 0  {                 
  os_create_task (1);                 /* start task 1                         */
  os_create_task (2);                 /* start task 2                         */

  while (1)  {                        /* endless loop                         */
    counter0++;                       /* increment counter 0                  */
  }
}

/******************************************************************************/
/*    Task 1 'job1':  RTX-51 tiny starts this task with os_create_task (1)    */
/******************************************************************************/
job1 () _task_ 1  {
  while (1)  {                        /* endless loop                         */
    counter1++;                       /* increment counter 1                  */
  }
}

以上就是一个简单的rtx51应用实例。


助工
2011-11-27 21:43:06     打赏
7楼

可能是系统错误,我上传的文件链接在下面,你可以使用那个链接下载一下吧。


已经修改,可以下载了。


助工
2011-11-27 22:08:56     打赏
8楼

发一个今天我写的显示程序,功能很简单,高手可以拍砖。

程序1:
文件“RTX_EX1.C”内容
#include <rtx51tny.h>                 /* RTX-51 tiny functions & defines      */
#include <main.h>

unsigned char code discod[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};
            //0  1   2    3 4  5   6    7   8  9   -

unsigned char disCount = 0,disBuf[8]={1,2,3,4,5,6,7,8};
/******************************************************************************/
/*       Task 0 'job0':  RTX-51 tiny starts execution with task 0             */
/******************************************************************************/
job0 () _task_ 0  {                 
  os_create_task (1);                 /* start task 1                         */
 P2 = 0X80;
  while (1)  {                        /* endless loop                         */
  os_delete_task(0);                //delet itself
  }
}

/******************************************************************************/
/*    Task 1 'job1':  RTX-51 tiny starts this task with os_create_task (1)    */
/******************************************************************************/
job1 () _task_ 1  {
  while (1)  {                        /* endless loop                         */
  
  disp();
  os_wait(K_TMO,1,0);
  }
}


bit disp( void )
{    
 P2 = 0xff;   //关闭显示
 P0 = discod[disBuf[disCount]];//写入显示数据
 P2 = ~(0x80>>disCount);  //打开显示
 //为显示下一位做好准备
 disCount ++;
 //超出显示位数范围,返回第一位
 if(disCount >= 8)
  disCount = 0;
 return 1;
}
文件“main.h”内容
#ifndef __MAIN_H__
#define __MAIN_H__

#include <at89x52.h>     //include the device macro file

bit disp(void );

#endif


助工
2011-11-27 22:14:55     打赏
9楼

配置文件“Conf_tny.a51"中
; Define Hardware-Timer tick time in 8051 machine cycles.
INT_CLOCK EQU 10000 ; default is 10000 cycles
;
选择默认配置所显示的效果为:



配置文件“Conf_tny.a51"如果改为如下内容为
; Define Hardware-Timer tick time in 8051 machine cycles.
INT_CLOCK EQU 1000 ; default is 10000 cycles
;
选择默认配置所显示的效果为


手机拍照的原因,两个图片显示效果差不多,但实际观察中会看到第一个配置中,显示闪烁严重,因为任务切换较慢,导致显示不连续;第二个配置解决了上面的问题。

助工
2011-11-29 19:48:58     打赏
10楼
昨天我的元器件收集齐全了。
我的元器件采买清单如下

器件 数量 单价 备注
STC12C5A16AD 1 9.5  
1602液晶 1 10 带背光
四位一体数码管 2 1  
DS18B20 1 5  
USB接口 1 1  
小按键 20 0.2  
LED 14 0.1  
蜂鸣器 1 1  
DS1302 1 3.5  
74HC138 2 0.5 封装:so-16
74HC573 2 1 封装:SO20
晶振32.678KHz 1 0.5  
晶振12MHz 1 1  
AD转换器PCF8591 1 9 封装:SOL-16
热敏电阻 1 0.3  
光敏电阻 1 0.25  
ULN2003 1 1 封装:so-16
7805 1 0.95 封装:TO-220W
IN4007 1 0.2 封装:DIODE-0.4
9014 1 0.2 封装:sot-23
USB口 1 0.3  
红外接收 1 1.5 封装:三脚直插
24C02 1 1.5 封装:so-8
电位器(10K) 4 0.2  
ISP下载接口 1 0.3  
RS232(DB9RA/F) 1 1.2  
排阻 1 0.5 330欧姆
排阻 1 0.5 4.7K
电容 3 0.2 10uF
贴片电阻包 1 8 20种电阻值
贴片电容包 1 13 32种电容值
合计 82
 

共40条 1/4 1 2 3 4 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]