aressos 发表于 2014-9-12 17:12:58

这文章写得真不错。 值得学习

wshg 发表于 2014-9-14 14:43:42


不错的文章,要是有文件版就好了

Samzzt 发表于 2014-9-17 21:18:48

看了一些内容,觉得很好,继续看下去,努力完善自己的梦。

sitply 发表于 2014-9-18 13:36:58

thanks for share this information

Samzzt 发表于 2014-9-24 08:31:47

追贴到底,一直在路上!

slacki 发表于 2014-9-24 08:47:56

还可以吧!

chaojikoushuige 发表于 2014-9-24 09:46:20

支持楼主,好样的

牛东 发表于 2014-9-25 14:35:16

本帖最后由 牛东 于 2014-9-26 13:21 编辑

楼主能帮我看看,为什么TIME_PER_SEC设成200数码管显示跟不上,差很远!!一闪一闪,要设成2000才勉强不闪!!

#include "REG52.H"

#define MAX_TASK 4    //定义任务数量
#define CLOCK 11059200 //定义时钟晶振,单位Hz
#define TIME_PER_SEC 2000//定义任务时钟频率200Hz


void main()
{
        Timer0Init();
        initial_myself();
        delay_long(100);   
        initial_peripheral();
        EA = 1;
        while(1)
        {        
                if(task_delay==0) {display_drive();   task_delay = 1;} //按键服务程序5HZ
                if(task_delay==0) {display_service();   task_delay = 20;} //显示服务程序5HZ
                if(task_delay==0) {key_service();;   task_delay = 1;}//显示驱动程序 10HZ
                if(task_delay==0) {beep_service();   task_delay = 40;} //蜂鸣器服务程序20HZ
        }
}


/******************************
        T0初始化
******************************/
void Timer0Init(void)
{
        unsigned char i;
        for(i=0;i<MAX_TASK;i++) task_delay=0; //任务延时量清零
        TMOD = (TMOD & 0XF0) | 0X01; //定时器 0 工作在模式 1, 16Bit定时器模式
        TH0 =255-CLOCK/TIME_PER_SEC/12/256;//0xed (0xedff=60927大概5MS中断一次)
        TL0 =255-CLOCK/TIME_PER_SEC/12%256;//0xff
        //(11.0592MHz晶振 机器周期 1.085us,5000us则4608个机器周期,一个机器周期T0=10.085us计数一次,65535-4068=60927=0xedff)
    TR0= 1 ;
    ET0= 1 ;
}



/******************************
        T0中断服务程序
******************************/
void Time0Isr(void) interrupt 1
{
        unsigned char i;
        TH0 =255-CLOCK/TIME_PER_SEC/12/256;//0xed   (0xedff=60927大概5MS中断一次)
        TL0 =255-CLOCK/TIME_PER_SEC/12%256;//0xff
        //(11.0592MHz晶振(0.094us 震荡周期) 机器周期 1.085us, 延时5000us则4608个机器周期,一个机器周期T0计数一次,计数初值=65535-4068=60927=0xedff)       
        for(i=0;i<MAX_TASK;i++) if(task_delay) task_delay--;//每节拍对任务延时变量减1 ,减至 0 后,任务就绪。

        ucKeyTimeFlag1=1; // 按键1消抖计数标志置1
        ucKeyTimeFlag2=1; // 按键2消抖计数标志置1
        ucKeyTimeFlag3=1; // 按键3消抖计数标志置1
        ucKeyTimeFlag4=1; // 按键4消抖计数标志置1
        ucTimeFlag=1; //倒计时的时钟中断标志置1
        ucDpyTimeFlag=1;//数码管的闪烁计时中断标志置1
        ucVoiceFlag=1;//蜂鸣器鸣叫计数时钟中断标志置1                       
}


/******************************
蜂鸣器服务程序
******************************/
void beep_service()
{
        if(ucVoiceFlag==1)
        {
                ucVoiceFlag=0;
                if(uiVoiceCnt==0)                  
                {
                        uiVoiceCnt--; //每次进入定时中断都自减1,直到等于零为止。才停止鸣叫
                        beep_dr=1;//蜂鸣器是PNP三极管控制,低电平就开始鸣叫。
                }
                else
                {
                        beep_dr=0;//蜂鸣器是PNP三极管控制,高电平就停止鸣叫。
                }
        }
}




nanoha2009 发表于 2014-9-26 08:47:34

带了好几个大学生,第一个给他们看的入门教程都是楼主这个帖子

DepravedLucien 发表于 2014-9-26 09:10:13

好多   顶   

zcs 发表于 2014-9-26 10:17:22

lz好人,喜欢逛坛子就是因为坛子里有lz这种好人。

Samzzt 发表于 2014-9-26 14:02:36

追贴到底

Irving 发表于 2014-9-26 15:45:34

巨著啊初学者学习的模板

lze110 发表于 2014-9-26 16:18:02

强烈支持

永康RADIO 发表于 2014-9-27 08:18:39

好贴,表示严重支持,文化低,看那英文语句有点吃力,不知大家有什么好的方法

jiangbing 发表于 2014-9-27 13:24:11

楼主写得好,喝彩。

梁国俭 发表于 2014-9-30 10:50:10

谢谢你的分享

qq3356441 发表于 2014-10-14 22:58:38

mark一下。。。。

tainan9 发表于 2014-10-15 08:38:24

谢谢............{:tongue:}

123bac 发表于 2014-10-16 07:40:51

技巧很重要{:lol:}{:lol:}

踏浪 发表于 2014-10-16 07:52:02

学习了!!!

NEXEN1106 发表于 2014-10-16 08:02:36

感觉好强大的帖子,学习了

Fish_sunshine 发表于 2014-10-16 13:26:20

学习了,很好 MARK!

二师兄 发表于 2014-10-16 14:52:04

mark收藏学习之

DJL.L 发表于 2014-10-16 16:14:10

此文不顶,对不起我单片机初学者的身份,我们还应该把这个帖子,多告诉一些单片机的初学者,希望大家能相互告诉初学者们

zhengd304 发表于 2014-10-17 00:07:48

{:smile:}{:smile:}{:smile:}{:smile:}

爱新觉罗_极刚霸 发表于 2014-10-17 00:22:27

新人学习,谢谢楼主!{:smile:}

我不乐意啊 发表于 2014-10-25 20:06:31

很不错,,,,,,,,,,,,,,,,,,

skyhuo 发表于 2014-11-5 13:28:04

支持!!!!!

Z_X 发表于 2014-11-5 13:33:19

这个以前看过,不错

qiushui_007 发表于 2014-11-5 13:45:57

step by step

sidu320 发表于 2014-11-6 21:49:01

都是瓶颈期的苦窑里待好久了!

凡事不可强求 发表于 2014-11-6 22:40:33

大赞楼主啦,谢谢分享!

7colcor 发表于 2014-11-7 01:36:50

帖子很经典,每过一段时间就会被顶起来

clesun 发表于 2014-11-7 19:57:19

学习学习,不错

mafeimafei 发表于 2014-11-12 10:59:43

模块化程序编译遇到问题了,来学习学习。谢谢楼主。

signal10 发表于 2014-11-12 11:11:58

多谢分享。

悉达多 发表于 2014-11-12 11:33:18

感谢楼主!这个真的是良心教程!阿莫论坛真没白注册啊!

停靠点 发表于 2014-11-12 12:24:31

非常有用!

xuyeqing 发表于 2014-11-12 12:53:54

从单片机初学者迈向单片机工程师 帖子记号。楼主辛苦了!

lyc2010 发表于 2014-11-12 13:42:40

mark 支持一下

h244539987 发表于 2014-11-12 17:48:46

@红金龙吸味,期待你的继续更新

明白 发表于 2014-11-15 10:44:22

很好,顶一个

mcufan5524 发表于 2014-11-18 01:11:49

是个好贴子,记号慢慢看

李程宏 发表于 2014-11-19 16:34:48

谢谢分享,mark

xiaolaoyu 发表于 2014-11-19 16:56:46

支持!!!

IntoTheHell 发表于 2014-11-19 16:58:23

写的不错

硬件小y 发表于 2014-11-19 17:16:09

不错!!!!

szhanlee 发表于 2014-12-10 16:22:27

感谢分享!

GodHunter 发表于 2014-12-10 17:05:05

顶楼主一下

真的好多巧合 发表于 2014-12-16 11:39:17

想想自己的51 也是刚刚入门,未来的路很漫长

Wesley_X 发表于 2014-12-16 12:02:58

写的很好,支持!

achild 发表于 2014-12-16 12:05:02

菜鸟表示很犀利,赞

xiaomao1490 发表于 2014-12-16 14:19:14

感谢楼主的分享,大力支持!正好在学习中

cjwdyzdd 发表于 2014-12-16 15:12:18

开篇说的不错,可内容仍是面向初学者呀

nos002 发表于 2014-12-16 20:11:01

精华在第二页141楼

nos002 发表于 2014-12-16 20:30:52

tangwei039 发表于 2010-4-23 08:17
今天讲个技巧方面的知识:                                       
                                 ...

整形好说,浮点数也右移吗?再说0.0625作为一个常数,引用的时候或乘或除,都在具体引用的地方来个右移或左移,那移植起来就头大了。

laokeiwang 发表于 2014-12-27 19:51:27

马克下{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}

sj1125055001 发表于 2014-12-27 22:46:05

学习                                          

Arthur244 发表于 2014-12-28 13:38:37

支持。。学习了。。其实走弯路未尝不是一件好事。。在弯路中得到的摸索出的经验对自己来说比别人教的捷径会价值更大。。

qq429396287 发表于 2014-12-29 15:48:54

谢谢楼主分享这么多,加油!!

杨子贤 发表于 2014-12-29 17:00:15

楼主厉害,小生从学STM32开始的,但楼主的思想太有益处了,望楼主能多帮助我们

374533905 发表于 2014-12-29 17:06:10

楼主这样的必须支持,顺带来学习下。

msfet 发表于 2014-12-29 17:38:59

楼主说的非常好期待更新

yzh 发表于 2014-12-29 23:36:35

楼主辛苦了!

jeffwang2011 发表于 2015-1-8 10:26:27

看完了帖子我就成高手了。。。

mk_avatar 发表于 2015-1-8 11:16:49

学习!!!!!!!!!!!

Cary_Liu 发表于 2015-1-10 23:45:23

获益匪浅!谢谢!

Zenmvol 发表于 2015-1-21 15:07:30

mark!!!!!!!!!!

电子小黑 发表于 2015-1-22 22:06:36

收藏一下,,明天继续看

无心星矢 发表于 2015-1-24 22:28:19

RE: 从单片机初学者迈向单片机工程师(一份正真的让你成...

tangwei039 发表于 2010-4-25 13:39
发一个51单片机的键盘扫描程序,算法简单有效
                                    再给大家分享一个不 ...

你好楼主,我正在按你的贴子学习,遇到一个问题。数码管是共阴极的“temp = ( 0x01<< dat ) ; //根据要选通的位计算出位码”这部分内容的0x01改为了0xfe后有重影现象,应该是左移后0跟进了。有什么办法解决?

lm4766 发表于 2015-1-24 23:16:04

值得一看,多谢分享

无心星矢 发表于 2015-1-26 22:06:03

不用回答了,已经调通了。用_crol_(0xfe,data).

无心星矢 发表于 2015-1-26 22:07:06

顺便说一下,谢谢,太好了。

suny1022 发表于 2015-1-27 11:37:27

支持,写的够好,够详细,楼主期待更新

sunday640 发表于 2015-1-27 13:20:34

谢谢分享。。

开挂的川子 发表于 2015-1-27 13:51:13

很实用,要是以word的形式可以下载下来慢慢学习就更好了。

hanbing333444 发表于 2015-1-27 16:02:09

好帖子啊,学习学习

hanbing333444 发表于 2015-1-28 18:46:19

楼主,怎么不更新了呀

pop_wu 发表于 2015-2-9 20:09:13

顶一下楼主 写的真好

s20120907 发表于 2015-2-9 22:58:32

楼主整理整理可以编本了

nanjing 发表于 2015-2-10 11:12:42

入门福利啊,多谢。

xd785 发表于 2015-2-10 13:01:45

挺好的……值得学习……

zzj2009a1 发表于 2015-2-10 15:36:06

很好,顶一个{:smile:}

min2008 发表于 2015-2-11 06:36:12

写的很不错 值得初学者学习{:shy:}

234918154 发表于 2015-2-11 16:12:18

我觉得发这样连载的帖子,可以先写好,一次性上传。否则,想这样,最后没有最后了,会扯淡的!

.Alan. 发表于 2015-2-11 23:07:03

之前自己写了个时钟程序    感觉还行       看了这个后    感觉自己的CPU好多都浪费了      谢谢大神指点

Moriarty_li 发表于 2015-3-12 15:41:50

感谢楼主的分享!

Mr.ou 发表于 2015-3-12 16:42:55

MARK..精髓。。

大超134 发表于 2015-3-12 18:25:23

学习了

魏道志 发表于 2015-3-21 15:55:30

哎,,,学单片机3年了。,走了很多弯路,后悔现在才看到你的帖子

longjunyi 发表于 2015-3-22 17:07:02

学习,学习

闪耀的空白 发表于 2015-3-23 21:21:54

写的很不错,受益匪浅,支持下{:smile:}

xiaoseaip 发表于 2015-3-23 22:59:28

{:handshake:}

shiruquaan23 发表于 2015-3-24 09:03:47

感谢楼主,好人啊

yinqian2015 发表于 2015-4-10 17:27:19

很好的东西,学习了

xinxinEC 发表于 2015-4-10 21:36:03

很好的帖子,漫漫看。

deyu35 发表于 2015-4-11 16:59:57

艾玛,老有规范了

光脚丫 发表于 2015-4-12 09:37:53

很好,希望多多写这样的帖子。

deyu35 发表于 2015-4-16 20:24:19

艾玛,终于看完了,翻了好久终于没有新的了
页: 11 12 13 14 15 16 17 18 19 20 [21] 22
查看完整版本: 从单片机初学者迈向单片机工程师(一份正真的让你成为工程师的贴子)