这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » yeximei MCU DIY进程帖

共17条 1/2 1 2 跳转至

yeximei MCU DIY进程帖

助工
2011-11-14 14:07:41     打赏
今日开版,各位支持。申请成功。材料备齐,欢迎指导。



关键词: yeximei     进程    

助工
2011-11-16 00:12:50     打赏
2楼
暂定设计这些模块程序:LED显示、点阵LED、数码管显示、LCD(1602)、串口通信、24C02、DS1302时钟,AD模块应用。然后改进实验现象或功能。
原定计划调整:串口部分电路不能工作,还没有查原因。24C02没有芯片,AD没有芯片。这些模块无法完成。
加入:按键扫描,DS18B20温度采样
改进:1、时钟用批传送方式,速度快。
            2、加入DS1302内部RAM读写程序。
            3、数码管显示加入小数点,闪烁,消隐控制功能。

助工
2011-11-18 09:51:28     打赏
3楼

DIY  MCU板接口头文件

http://163.fm/BULEYI1   ,提取码:93WXGSy4
更正:DS1302模块引脚定义有错。请看原图


助工
2011-11-24 19:06:28     打赏
4楼

今天终于收到板了,等了好久啊。
为什么不能上传图片呢?终于好了。可能是网络速度太慢,一直没有反映。


助工
2011-11-24 19:07:20     打赏
5楼
硬件相关。元件买回来了,按键封装不对,还好可以安装。焊接了一半,从旧电脑上拆了三极管和小电容,可是还没焊好,对不住各位看客。先上个图。
焊好板,测试发现没有接单片机P10的发光二极管亮,蜂鸣器不响,经查发现蜂鸣器极性不对,三极管Q1改成PNP是可以的。J23的1,3脚原理图与PCB不同

助工
2011-11-24 19:07:52     打赏
6楼

测试程序1。先发布一下主程序。各模块测试程序占用一个case分支。各分支切换由按键控制。
void main()
{
 InitInterrupt();
//输入程序代码
 Init();
 while(1){
    switch(func)
  {
  case 0: flashLED();break;//流水灯
  case 1: readtemp(dispbuf);break;//读温度并显示在LED上

 
  default:break;
  }
 }
}
主程序与流水灯打包.i51.rar


助工
2011-11-24 19:08:08     打赏
7楼

测试程序2:流水灯程序及动画
void flashLED(void)

{char code ledout[]={0x1,0x2,0x4,0x8,0x10,0x20,0x40,0x80};
 char i;
 for(i=0;i<8;i++)
 {
  LED8=~ledout[i];
  delayNms(2000);
 }
 LED8=0xff;//关LED灯
}
流水灯.rar


助工
2011-11-24 19:15:42     打赏
8楼

测试程序3:数码管显示程序,没有找到合适大小的数码管,先接一下。加入小数点,闪烁,消隐控制功能。在调试程序时,由于LCD模块的影响,数码管的G段常为暗。因此在显示程序中加入LCD模块不选中信号(E=0),显示正常。前5秒显示4567,后显示秒计时。


char code disppointtab[]={0x0,0x1,0x2,0x4,0x8,0x10,0x20,0x40,0x80 }; //
void Init(void)
{
 func=2;//i流水灯
 disphide=0x20;
 dispflash=0x40;
 disppoint=0x80;
 dispbuf[0]=0x0;
 dispbuf[1]=0x1;
 dispbuf[2]=0x2;
 dispbuf[3]=0x3;
 dispbuf[4]=0x4;
 dispbuf[5]=0x9;
 dispbuf[6]=0x6;
 dispbuf[7]=0x7;
 second=0;

}
void disp(void)
{
 char dispcnt,temp;
   for (dispcnt=8;dispcnt>0;dispcnt--)
 {  LCDE=0;
  temp =DISPTAB[dispbuf[dispcnt-1]];
     if (disppoint & disppointtab[dispcnt])
      temp =temp |DISPDOT; //加入小数点
  if (dispflash & disppointtab[dispcnt])
      if (tickcnt&0x8) temp =0x00;//加入闪烁
  if (disphide & disppointtab[dispcnt])
      temp =0x00;//加入消隐
  DISPLEDD=temp;
  DISPCLK=0;DISPCLK=1;DISPCLK=0;
  DISPWM(dispcnt-1);
  delayNms(2);DISPLEDD =0x00;DISPCLK=0;DISPCLK=1;DISPCLK=0;
 }

}


助工
2011-12-03 14:39:45     打赏
9楼
是啊,版主寄的。做个背景。

高工
2011-12-05 14:58:45     打赏
10楼
不错啊

共17条 1/2 1 2 跳转至

回复

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