
STC89C52单片机
yunchow
正在研究嵌入式开发,有这方面爱好的朋友请加我QQ:274781962
展开
-
使单片机的发光二极管闪烁
学习单机一星期,收益颇多! 下面是我做的第一个例程,效果是使发光二极管闪烁起来,比较简单,程序是用C开发的,源代码如下:[code="c"]#includesbit p=P1^0;unsigned int a; void main(){ while(1) { p=0; a=50000; while( a--); ...2009-03-25 13:16:06 · 2268 阅读 · 0 评论 -
51单片机操作DS1302时钟芯片
这是我做的最后一个单片机的实验了,不过没有把程序调通,先作个记号,以后如有时间再来慢慢调主程序:#include #include #include "header.h"/****** 主函数 ********/void main(){ RTC_initial(); init(); //init1602(); //while(1); wh...2009-04-18 22:13:31 · 486 阅读 · 0 评论 -
51单片机实现数字时钟
用单片机实现数字时钟,关于时间显示,是用的1602液晶,C51单片机,然后再加一个定时器,每到一秒就动态的更新一下液晶的时间显示,在更新的时候也要计算相应的分针和时针的变化,还要注意边界问题.为了能够达到一个最好的效果,我还加了一个键盘扫描,用到了3个键,分别为功能键,增1,减1来实现用户自定义时间. 在实现过程中,用到了单片机的中断系统的相关知识,还有定时器,液晶显示,键盘...2009-04-12 17:56:00 · 4988 阅读 · 4 评论 -
51单片机之I^2C总线
I^2C总线的SDA与CLK都是线与关系.为了避免混乱I^2C总线要通过总线仲裁决定总线由哪一台主机控制I^2C总线的数据位的有效性:时钟信号为高电平期间 数据线上的数据必须保持稳定,只有在时钟信号为低电平时, 数据线上的数据才可以变化.图片I^2C总线的起始信号与终止信号,每一字节必须是8位长度 发完还有一位应答位,所以一共会有9位. ...2009-04-11 19:06:58 · 840 阅读 · 0 评论 -
MCS-51单片机之液晶显示
用MCS-51单片机来驱动液晶显示本已不属于单片机本身的知识了,我所用到的液晶是1602液晶屏,主要是要自已去查看相关芯片的文档,所以自然对英语阅读能力是一个不小的挑战.在看文档的时候,我们也只需要注意几个相对重要的问题,而不用面对大篇的文档而不知何去何从,第一重要当然是液晶的时序图了,只有掌握了时序图后我们才能写出合理正确的程序,除此之外,还有相关引角的作用也是必不可少的. 在...2009-04-11 11:55:17 · 504 阅读 · 0 评论 -
51系列单片机之串口通信
单片机的串口通信看起来是很复杂的,主要是因为他用到了更多的寄存器,与前面的知识相比他更具综合能力,写起来考虑的问题自然也变多了.而前面学习过的定时器与中断将是单片机通信的基础. 单片机的中断系统中第4个中断就是串口中断,要进行串口通信首先就要打开CPU总中断EA,还要打开串口通信中断ES,这是串口通信的前堤,而串口通信也跟计时器一样有很多的模式,因此我们还要设置SCON寄存器来...2009-04-05 11:08:40 · 299 阅读 · 0 评论 -
单片机A/D,D/A
整了几天也没整明白单片机的A/D,D/A,以后用的着,再来整吧贴两个程序以后再来调程序一:DA[code="c"]/** DA Test **/#includesbit csda = P3^3;sbit wr = P3^6;void main(){ csda = 0; wr = 0; P0 = 0xff; while(1);}...2009-04-02 20:59:45 · 232 阅读 · 0 评论 -
单片机 键盘编程
花了几天时间整了下单片机的键盘.我用的单片机板子是用的P2的8个IO端口对16个键达到控制的目的. 那怎样来使用8个端口控制16个键呢?其实很简单,先必须要掌握她的原理图,[img]/upload/attachment/89572/8ed2c5c8-088a-3ed2-84f2-75aa84fac52e.bmp[/img]附件中作者上传了一张,仅供参考.原理图看了之后,我们...2009-03-31 22:26:10 · 488 阅读 · 0 评论 -
单片机数码管显示数字递增
让单片机的数码管显示的数从0开始递增一直到255,然后重新置0,再递增,如此循环. 还是用到了将要显示的数进行百位,十位,个位的分离. 从这篇开始,以后的程序就要注意程序的规范性,与可读性了.源代码如下(已经成功调通):[code="c"]#include#define uint unsigned int#define uchar unsigned char...2009-03-29 13:13:05 · 2246 阅读 · 0 评论 -
单片机显示三位整数
利用数码管显示三位数是利用了单片机数码管的动态扫描,但此方法又有不同点,我们不再需要位选table,实现的具体思路是,先将要显示的3位数进行百位,十位,个位进行分离,然后再利用动态扫描将其显示即可. 源代码如下,产生的效果是:可以显示任一个小于255的整数[code="c"]#include#define uint unsigned int#define uc...2009-03-29 13:03:50 · 1870 阅读 · 0 评论 -
单片机的数码管动态显示
要达到单片机数码管轮流显示的效果,不但要控制哪一个数码管显示,还要控制此数码管显示什么内容,因此我们引入两个table分别对位选和段选进行编码放入这2个table,再利用下标就可以来同时控制位选和段选信号了. 源代码如下,产生的效果是:四个数码管轮流显示1-9[code="c"]#include#define uint unsigned int#define u...2009-03-29 12:56:02 · 649 阅读 · 0 评论 -
单片机定时器
单片机的定时器的工作原理是利用了寄存器的溢出来触发中断的,所以在写定时器的时候就要去算计数的增量,再根据单片机的晶振的频率就可以算出确定的时间了. 附件中有一计算器是用来计算初值的,十分方便[img]/upload/attachment/88501/d341cde9-6fcf-33dc-9639-5df6d499f9c0.bmp[/img] 定时器主要用到了2个寄...2009-03-28 13:48:52 · 400 阅读 · 0 评论 -
STC89C52中断系统
80C51的中断系统有5个中断源(80C52有6个),2个优先级,可实现二级中断嵌套。 根据它的原理图就可以看出,80C51一共有4个寄存器(TCON,SCON,IE,IP),附件有她们的详细的寄存器示例图。[img]/upload/attachment/88246/4f31826e-53a5-30c4-80d4-9b7af2ba7910.bmp[/img][i...2009-03-27 17:06:40 · 4578 阅读 · 1 评论 -
74HC164控制数码管显示
刚开始的时候把74HC164当成了74HC573使了,还看了原理图,半天摸不出个所以然,然后上网查了资料,才知道原来74HC164是串入并出的,此时才知道思考方向出错了。于是再看原理图再分析示例代码方有所获。 原来164只有一个输入端sda(P10),一个控制位clk(P11),还有四个位选:dig1~dig4分别与P13~P15相连,我们可以通过控制dig来达到选位...2009-03-25 22:45:19 · 3562 阅读 · 0 评论 -
单片机的数码管的倥制
今天总算是看到了一点单片机实在的东西了,经过今天的学习,我知道了单片机数码管的简单控制,总体说来,还是挺简单的,只是不知道的时候觉得难,真正的去学习的时候,又变得简单起来。 单片机数码管的原理大概是这样的,分别对一个字节进行编码,暂且将其叫a,b,c,d,e,f,g,h,当她们取不同的值时,将会得到不同的显示,那为什么是八位呢,因为在计算机里8位刚好是一个字节,这样就使其变的合理起来...2009-03-25 13:27:56 · 142 阅读 · 0 评论 -
51单片机操作DS1302时钟芯片
这是我做的最后一个单片机的实验了,不过没有把程序调通,先作个记号,以后如有时间再来慢慢调头文件[code="c"]#define uint unsigned int#define uchar unsigned charsbit lcdrs = P1^0;sbit lcdrw = P1^1;sbit lcden = P1^2;sbit key0 =...2009-04-25 08:56:06 · 581 阅读 · 0 评论