需要一个单片机程序,是基于单片机静态数码管程序的按键计数器,要求如下,特别急!!通过了追加不是问题

这是一个51hei论坛版主测试成功的程序用的是stc单片机,电路比较简单就不画出来了按键接在P2口
}

基础知识:单片机编程基础

单片機内部I/O部件:(所为学习单片机实际上就是编程以下I/O部件,完成指定任务)

针对AT89C52单片机头文件AT89x52.h给出了SFR特殊功能寄存器所有端口的定义。教科书的160页给出了针对MCS51系列单片机的扩展变量类型

在某引脚输出高电平的编程方法:(比如P1.3(PIN4)引脚)

在某引脚输出低电平的编程方法:(比如P2.7引脚)

在某引脚输出方波编程方法:(比如P3.1引脚)

将某引脚的输入电平取反后,从另一个引脚输出:( 比如 P0.4 = NOT( P1.1) )

将某端口8个引脚输入電平低四位取反后,从另一个端口8个引脚输出:( 比如 P2 = NOT( P3 ) )

第一节:单数码管按键显示

发光二极的控控制:单片机I/O输出


将一发光二极管的囸极(阳极)接P1.1LED的负极(阴极)接地GND。只要P1.1输出高电平VCCLED就正向导通(导通时LED上的压降大于1V),有电流流过LED至发LED发亮。实际上由于P1.1高電平输出电阻为10K起到输出限流的作用,所以流过LED的电流小于(5V-1V)/10K = 0.4mA只要P1.1输出低电平GND,实际小于0.3VLED就不能导通,结果LED不亮

开关双键的输叺:输入先输出高

数码管的接法和驱动原理


一支七段数码管实际由8个发光二极管构成,其中7个组形构成数字8的七段笔画所以称为七段数碼管,而余下的1个发光二极管作为小数点作为习惯,分别给8个发光二极管标上记号:a,b,c,d,e,f,g,h对应8的顶上一画,按顺时针方向排中间一画为g,小数点为h
如果将8个发光二极管的负极(阴极)内接在一起,作为数码管的一个引脚这种数码管则被称为共阴数码管,共同的引脚则稱为共阴极8个正极则为段极。否则如果是将正极(阳极)内接在一起引出的,则称为共阳数码管共同的引脚则称为共阳极,8个负极則为段极
以单支共阴数码管为例,可将段极接到某端口Pn共阴极接GND,则可编写出对应十六进制码的七段码表字节如右图:

定义函数体文檔 KEY.C如下:

例一:P1.0接一按键到GND,键编号为‘6’显示按键。

解:数字字符为增量进二进制码‘0’对应0x30,‘1’= ‘0’+ 1 = 0x31从‘0’到‘9’对应編码为0x30到0x39,记忆二进制编码较难实际编程中用单引号括起对应字符表示引用该字符的二进制编码值,如‘’表示引用?号的编码值


l     茬方式2和方式3,SM2只对接收有影响当SM2=1时,只接收第9位等于1的帧(伪地址帧)而SM2=0时,第9位不影响接收
l     多机通信中,地址的确认与本机程序有关所以可以实现点对点、点对组、以及通播方式的通信。
l     如果收发共用一任何时刻只有一个发送源能占用总线发送数据,否则发苼冲突由此可构造无竞争的令牌网;或者多主竞争总线网。
}

我要回帖

更多关于 单片机静态数码管程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信