51单片机课程设计源程序设计

当前位置: > 51单片机源程序
MAX7219 显示模块 PCB板 送51单片机源程序和资料
单片机U盘开发 U盘设计 51单片机开发读写U盘源程序 U盘原理图
89C51 C52测量液体 水温 油温 单片机数显温度控制器套件送源程序
89C51 C52测量液体 水温 油温 单片机数显温度控制器套件送源程序
51单片机流水灯 爱心形 20种花样 DIY电路板 送Keil-C源程序
计算器套件 单片机 51单片机 电子制作 DIY套件 散件 送源程序
[AAA]16MR PLC 51单片机工控板 隔离电源稳定工业级PLC三菱编程序
基于89C51 52单片机控制数字式温湿度控制器套件 散件 送源程序
EV遥控解码C51源程序 STC15F104E单片机IC 电容触摸按键
[AAA]16MT STC51单片机工控板 隔离电源稳定工业级PLC三菱编程序
stc 51/52单片机modbus RTU通信程序c语言源程序232 485
七彩炫光51单片机心形流水灯LED灯爱心灯电子diy制作套件送源程序
109-51单片机迷你音乐频谱显示器设计资-电路图-源程序-设计素材
七彩炫光51单片机心形流水灯LED灯爱心灯电子diy制作套件送源程序
51单片机心形流水灯LED灯爱心灯电子diy制作套件七彩炫光送源程序
EV遥控解码C51源程序 STC15F104E单片机IC 电容触摸按键
基于89C51 52单片机控制数字式温湿度控制器套件 散件 送源程序
特价51单片机控制交通灯套件 散件 送源程序 贴片交通灯套件 散件
89C51 C52测量液体 水温 油温 单片机数显温度控制器套件送源程序
数控稳压电源制作设计原理图PCB图程序数字电源/51单片机数控电源
最近更新的...
友情链接:
& 看图网,,该页图片不可商用
在线图片处理软件开发,始创于09年,距今7年。DS:2/20/0
51单片机源程序素材下载您还可以使用以下方式登录
当前位置:&>&&>& > 51单片机100例程序设计
51单片机100例程序设计
导读:就爱阅读网友为您分享以下“51单片机100例程序设计”的资讯,希望对您有所帮助,感谢您对92to.com的支持!100例程序设计范例汇总
第一章 ...................................................................................................................................................... 4
【实例1】使用累加器进行简单加法运算: ................................................................................... 4
【实例2】使用B寄存器进行简单乘法运算: ............................................................................... 4
【实例3】通过设置RS1,RS0选择工作寄存器区1: ................................................................. 4
【实例4】使用数据指针DPTR访问外部数据数据存储器: ....................................................... 4
【实例5】使用程序计数器PC查表: ............................................................................................ 4
【实例6】IF语句实例: ................................................................................................................... 4
【实例7】SWITCH-CASE语句实例:................................................................................................. 4
【实例8】FOR语句实例: ................................................................................................................ 4
【实例9】WHILE语句实例: ............................................................................................................ 5
【实例10】DO…WHILE语句实例: ................................................................................................. 5
【实例11】语句形式调用实例: ..................................................................................................... 5
【实例12】表达式形式调用实例: ................................................................................................. 5
【实例13】以函数的参数形式调用实例: ..................................................................................... 5
【实例14】函数的声明实例: ......................................................................................................... 5
【实例15】函数递归调用的简单实例: ......................................................................................... 5
【实例16】数组的实例: ................................................................................................................. 6
【实例17】指针的实例: ................................................................................................................. 6
【实例18】数组与指针实例: ......................................................................................................... 6
【实例19】P1口控制直流电动机实例 ............................................................................................ 6
第二章 ...................................................................................................................................................... 8
【实例20】用74LS165实现串口扩展并行输入口 ......................................................................... 8
【实例21】用74LS164实现串口扩展并行输出口 ....................................................................... 10
【实例22】P0 I/O扩展并行输入口 ................................................................................................ 12
【实例23】P0 I/O扩展并行输出口 ................................................................................................ 12
【实例24】用8243扩展I/O端口 .................................................................................................. 12
【实例25】用8255A扩展I/O口 ................................................................................................... 14
【实例26】用8155扩展I/O口 ...................................................................................................... 19
第三章 .................................................................................................................................................... 26
【实例29】与AT24系列EEPROM接口及驱动程序 .................................................................. 26
【实例30】EEPROM(X5045)接口及驱动程序 ............................................................................. 30
【实例31】与铁电存储器接口及驱动程序 ................................................................................... 33
【实例32】与双口RAM存储器接口及应用实例 ........................................................................ 35
【实例33】与NANDFLASH(K9F5608)接口及驱动程序 ....................................................... 35
第四章 .................................................................................................................................................... 43
【实例34】独立键盘控制 ............................................................................................................... 43
【实例35】矩阵式键盘控制 ........................................................................................................... 44
【实例36】改进型I/O端口键盘 .................................................................................................... 46
【实例37】PS/2键盘的控制 .......................................................................................................... 49
【实例39】段数码管(HD7929)显示实例 ................................................................................. 54
【实例40】16×2字符型液晶显示实例 .......................................................................................... 55
【实例41】点阵型液晶显示实例 ................................................................................................... 61
【实例42】LCD显示图片实例 ...................................................................................................... 63
第五章 .................................................................................................................................................... 70
【实例43】简易电子琴的设计 ....................................................................................................... 70
【实例44】基于MCS-51单片机的四路抢答器 ........................................................................... 71
欢迎转载:
相关推荐:查看: 273|回复: 1
51单片机蓝牙调节的时钟源程序设计
51单片机的时钟设计,可以调节年月日 星期 和 时间。
内有源程序,在单片机板子上使用无误。还加上了蓝牙调节,可以通过蓝牙直接调节时间。
单片机源程序如下:
#include&reg51.h&
#include&lcd.h&
#include&ds1302.h&
sbit K1=P3^2;
sbit K2=P3^3;
sbit K3=P3^4;
unsig
void keep();
void lanya();
void Int0Configuration();
void LcdDisplay();
unsigned char SetState,SetP
void Delay10ms(void);& &//误差 0us
void main()
{
& & & & Int0Configuration();
& & & & LcdInit();
& & & & Ds1302Init();
& & & & while(1)
& & & & {& & & &
& & & & & & & & if(SetState==0)
& & & & & & & & {
& & & & & & & & & & & & Ds1302ReadTime();
& & & & & & & & }
& & & & & & & & else
& & & & & & & & {
& & & & & & & & & & & & lanya();
& & & & & & & & & & & & keep();
& & & & & & & & & & & & & & & & }
& & & & & & & &&&LcdDisplay();& & & &
& & & & & & & & }
& & & & }& & & &
void LcdDisplay()//1602显示
{
& & & & LcdWriteCom(0x80+0X40);
& & & & LcdWriteData('0'+TIME[2]/16);& & & & & & & & & & & & & & & & //时
& & & & LcdWriteData('0'+(TIME[2]&0x0f));& & & & & & & & & & & & & & & &&&
& & & & LcdWriteData('-');
& & & & LcdWriteData('0'+TIME[1]/16);& & & & & & & & & & & & & & & & //分
& & & & LcdWriteData('0'+(TIME[1]&0x0f));& & & &
& & & & LcdWriteData('-');
& & & & LcdWriteData('0'+TIME[0]/16);& & & & & & & & & & & & & & & & //秒
& & & & LcdWriteData('0'+(TIME[0]&0x0f));
& & & & LcdWriteCom(0x80);
& & & & LcdWriteData('2');
& & & & LcdWriteData('0');
& & & & LcdWriteData('0'+TIME[6]/16);& & & & & & & & & & & & //年
& & & & LcdWriteData('0'+(TIME[6]&0x0f));
& & & & LcdWriteData('-');
& & & & LcdWriteData('0'+TIME[4]/16);& & & & & & & & & & & & //月
& & & & LcdWriteData('0'+(TIME[4]&0x0f));
& & & & LcdWriteData('-');
& & & & LcdWriteData('0'+TIME[3]/16);& & & & & & & & & & & & //日
& & & & LcdWriteData('0'+(TIME[3]&0x0f));
& & & & LcdWriteCom(0x8D);
& & & & LcdWriteData('0'+(TIME[5]&0x07));& & & & //星期& & & & & & & & & & & &&&
}
void Int0Configuration()//定时器
{
& & & && &TMOD = 0x20;
& & SCON = 0x50;
& & TH1 = 0xFD;
& & TL1 = TH1;
& & PCON = 0x00;
& & EA = 1;
& & ES = 1;
& & TR1 = 1;
}
//串口中断
void Int0() interrupt 4& & & && &
{
& & & &&&TH1=0xFD;
& & & &&&TL1=TH1;
& & & &&&Delay10ms();
& & & && &if(receivedata==0x00)//进入时钟模式
& & & && &{
& & & & & & & & SetState=~SetS
& & & & & & & & SetPlace=0;
& & & & & & & & Ds1302Init();& & & & & & & &
& & & && &}
& & & && &if(RI)//在返回发送数字到手机上
& & {
& & RI = 0;
& & & & & & & & }
& & & && &receivedata=SBUF;
& & SBUF=
& & & & & & & & while(!TI);
& && &&&TI = 0;
& & & & & & & & Delay10ms();
& & & & & & & & if(K3==0)
& & & & {
& & & & & & & & SetState=~SetS
& & & & & & & & SetPlace=0;
& & & & & & & & Ds1302Init();& & & &
& & & & }
}
/********************************************************************************
蓝牙控制时间
*****************************************************************************/
void lanya()
{
& & & & & & & & & & & & & & & & if(receivedata==0x01)//选择位置,可调节的数字位 从时间秒开始
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & SetPlace++;
& & & & & & & & & & & & & & & & & & & & if(SetPlace&=7)
& & & & & & & & & & & & & & & & & & & & SetPlace=0;& & & & & & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & buff=//不加会使得数字一直加
& & & & & & & & & & & & & & & & if(buff==0x02)//加一
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & receivedata++;
& & & & & & & & & & & & & & & & & & & & TIME[SetPlace]=TIME[SetPlace]+1;
& & & & & & & & & & & & & & & & & & & & if((TIME[SetPlace]&0x0f)&9)& & & & & & & & & & & & & & & & & & & &&&//换成BCD码。
& & & & & & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & & & & & TIME[SetPlace]=TIME[SetPlace]+6;
& & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & & & & & if((TIME[SetPlace]&=0x60)&&(SetPlace&2))& & & & & & & & //分秒只能到59
& & & & & & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & & & & & TIME[SetPlace]=0;
& & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & & & & & if((TIME[SetPlace]&=0x24)&&(SetPlace==2))& & & & & & & & //小时只能到23
& & & & & & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & & & & & TIME[SetPlace]=0;
& & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & & & & & if((TIME[SetPlace]&=0x32)&&(SetPlace==3))& & & & & & & & //日只能到31
& & & & & & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & & & & & TIME[SetPlace]=0;& & & &
& & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & & & & & if((TIME[SetPlace]&=0x13)&&(SetPlace==4))& & & & & & & & //月只能到12
& & & & & & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & & & & & TIME[SetPlace]=0;
& & & & & & & & & & & & & & & & & & & & }& & & &
& & & & & & & & & & & & & & & & & & & & if((TIME[SetPlace]&=0x07)&&(SetPlace==5))& & & & & & & & //周只能到7
& & & & & & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & & & & & TIME[SetPlace]=1;
& & & & & & & & & & & & & & & & & & & & }
}
& & & & & & & & & & & & & & & & }
/****************************************************************************
按键控制时间& & & & & & & & & & & & & & & &
***************************************************************************/
void keep()
{
& & & & if(K1==0)& & & & & & & & //检测按键K1是否按下
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & Delay10ms();& & & & //消除抖动
& & & & & & & & & & & & & & & & if(K1==0)
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & SetPlace++;
& & & & & & & & & & & & & & & & & & & & if(SetPlace&=7)
& & & & & & & & & & & & & & & & & & & & & & & & SetPlace=0;& & & & & & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & while((i&50)&&(K1==0))& & & &&&//检测按键是否松开
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & Delay10ms();
& & & & & & & & & & & & & & & & & & & & i++;
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & i=0;
& & & & & & & & & & & & }
& & & & & & & & & & & & if(K2==0)& & & & & & & & //检测按键K2是否按下
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & Delay10ms();& & & & //消除抖动
& & & & & & & & & & & & & & & & if(K2==0)
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & TIME[SetPlace]++;
& & & & & & & & & & & & & & & & & & & & if((TIME[SetPlace]&0x0f)&9)& & & & & & & & & & & & & & & & & & & &&&//换成BCD码。
& & & & & & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & & & & & TIME[SetPlace]=TIME[SetPlace]+6;
& & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & & & & & if((TIME[SetPlace]&=0x60)&&(SetPlace&2))& & & & & & & & //分秒只能到59
& & & & & & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & & & & & TIME[SetPlace]=0;
& & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & & & & & if((TIME[SetPlace]&=0x24)&&(SetPlace==2))& & & & & & & & //小时只能到23
& & & & & & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & & & & & TIME[SetPlace]=0;
& & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & & & & & if((TIME[SetPlace]&=0x32)&&(SetPlace==3))& & & & & & & & //日只能到31
& & & & & & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & & & & & TIME[SetPlace]=0;& & & &
& & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & & & & & if((TIME[SetPlace]&=0x13)&&(SetPlace==4))& & & & & & & & //月只能到12
& & & & & & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & & & & & TIME[SetPlace]=0;
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
(68.73 KB, 下载次数: 8)
15:26 上传
点击文件名下载附件
内容太少,只有个程序,没有电路图,没有蓝牙部分介绍!做事情不够认真!
Powered by求写一段简单的51单片机C语言代码_百度知道
求写一段简单的51单片机C语言代码
P00口每得到一次高电平,LED灯移位一次,计数加1,P00口的高电平来自外接激光传感器
我有更好的答案
#include & reg52.h & #include &intrins.h&sbit P00 = P0^0;void delay(unsigned int ms){
while(ms--) for(i = 110; i-- ; i & 0);}void main(){
unsigned char
LED = 0xfe, COUN = 0;
while(1) {
P2 = COUN;
if (P00 == 1) {
if (P00 == 1) {
while (P00 == 1);
LED = _cror_(LED, 1);
采纳率:64%
单片机检测高电平。1、可以用外部中断,外接激光传感器最好用普通光耦隔离一下,顺便改成低电平触发单片机中断。然后用位移指令移动跑马灯,然后计数值加1.
2、可以用循环检测,也建议用光耦隔离先,在MAIN里面不断检测P00,发现变化后,再次检测以便确认,确认后同样位移一下跑马灯,然后计数加1。
假如LED是8位,输出口为PBvoid ledshift(void){
static uchar i=0x01;
static counter = 0;
if(P00==1)
if(counter++%8==0)
为您推荐:
其他类似问题
您可能关注的内容
51单片机的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。基于51单片机六位整数计算器源程序
10:27:17来源: eefocus 关键字:&&&&
#define uint unsigned int
#define uchar unsigned char
sbit beep=P2^3;&&&&&& &//beep用于控制蜂鸣器(每按一次键就为0并且叫一下)
sbit dula=P2^6;&&&&&& &//dula通过控制锁存器1来控制数码管段选
sbit wela=P2^7;&&&&&& &//wela通过控制锁存器2来控制数码管位选
uchar code table[]={&&& &//数码管的显示编码
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x79};
uchar fuhao=0,scan=0;&&&& //全局变量fuhao用来存放运算符的值&& scan作为是否按键的标志位(按下就为1没按为0)
void delay(uint z);&&&&&& //延时Z毫秒
void display(long n);&&&&//用六位数码管显示long值
uchar keyscan();&&&&&&&& //键盘扫描并把扫描得到的值返回&&&&
void displayerror();&&&&&//显示错误操作提示信息
void main()
&uchar val=0,j=0,i=0,jie,e=0;& //i,j用于判断每次输入的数是否超过六位,e为错误操作标志位(为1表示已错误操作),jie为显示计算结果标志位(为1表示要显示结果)
&long a=0,b=0,c=0;&&&&&&//a存放第一次输入的数,b存放第二次输入的数,c存放计算的结果
&display(0);&&&&&&&& & //初始化显示
&delay(1000);&&&&&&&& //延时1000毫秒
&&beep=1;&&&&&&&&&& & //关闭蜂鸣器
&&val=keyscan();&&&& //把扫描得到的值赋给val
&&if(scan==1)&&&&&& &//一旦按下键我就对其操作
&&&scan=0;&&&&&& & //把按键标志位scan复位
&&&if(val==10)&&&& //如果按下的为复位键
&&&&a=0;b=0;c=0;fuhao=0;jie=0;e=0;i=0;j=0;display(0);
&& //复位操作(初始化)& (显示是不能停)
&&&&&&&&&&&&&& //直接进入下一次循环
&&&else if(val>=11&&val<=15&&i==0&&fuhao==0)//如果第一次按下的不是数字键
&&&&display(0);&&&&&&& //数码管显示不能停
&&&&&&&&&&& //直接进入下一次循环
&&&else if(val>=12&&val<=15&&fuhao==0&&i!=0)//输入数字之后按下的第一个运算符
&&&&fuhao=&&&&&&& //把扫描得到运算符值赋给fuhao标志位
&&&&i=0;&&&&&&&&&&&& //一旦输入运算符就把数字输入计数i清零
&&&&display(0);&&&&&& //数码管显示不能停
&&&else if(fuhao!=0&&val>=11&&val<=15)&& //只要按下等于或者运算符之前按了数字键和运算符就显示计算结果
&&&&jie=1;&&&&&&&&&& &//计算结果标志位jie为1(表示要显示计算结果c)
&&&&if(fuhao==12)&&&&& //如果输入的是运算符&+&
&&&&&c=a+b;&&&&&&&&& //把运算的结果赋给c
&&&&&if(c>999999)&&&&&//如果计算结果超出数码管的显示范围
&&&&&&displayerror();&&&& //显示出错信息
&&&&&&e=1;&&&&&&&&&&&& //出错信息标志位置1
&&&&&else&&&&&&&&
&&&&&&display(c);&&&&&//不超出显示范围就显示结果
&&&&else if(fuhao==13)&&&&&//如果输入的运算符是&-&
&&&&&if(a<b)
&&&&&&displayerror();
&&&&&&c=a-b;
&&&&&&display(c);
&&&&else if(fuhao==14)&&&&&& //如果输入的运算符是&*&
&&&&&c=a*b;
&&&&&if(c>999999)
&&&&&&displayerror();
&&&&&&e=1;
&&&&&&display(c);
&&&&else&&&&&&&&& //如果输入的运算符是&/&
&&&&&c=a/b;
&&&&&display(c);
&&&else if(val>=0&&val<=9)&&&&&//如果按下的为数字键
&&&&if(fuhao==0)&&&&&&//如果是第一次按下数字键
&&&&&a=a*10+&&&&&&//把前面显示的值左移一位再加当前输入的数字存放到a(0到9)
&&&&&i++;&&&&&&&//每输入一个数字,数字计数i加1
&&&&&if(i>6)&&& &&&&&&//如果连续输入数字超过六位
&&&&&&displayerror();e=1;&&&//显示出错信息且错误标志位置1
&&&&&&display(a);&&&&&//显示得到的a
&&&&&&&&&&&//进入下次次循环
&&&&else&& &&&&&&&& //第二次按下数字键
&&&&&&b=b*10+&&&&& //把前面显示的值左移一位再加当前输入的数字存放到b(0到9)
&&&&&&j++;&&&&&& //第二次输入数字的计算变量j加1
&&&&&&if(j>6)&& &&&&& //如果输入超出数码管显示范围
&&&&&&&displayerror();&e=1;
&&&&&&else
&&&&&&&display(b);
&&else&&&&&&&&&& //如果没按下键(也要显示)
&&&if(e==1)&&&&& displayerror();//如果出错标志位为1就显示出错信息
&&&else if(fuhao==0)&&&&&&&& display(a);& //如果还没输入运算符(到目前为止还只是输入数字)就显示a &
&&&else if(fuhao!=0&&jie==0) display(b);& //如果输入数字后又输了运算符且没输入运算符和等于就显示b
&&&else if(jie==1)&&&&&&&&&& display(c);& //如果输入了结果标志位就显示计算结果c
&&&else&&&&&&&&&&&&&&&&&&&&& display(0);& //其余就初始化显示
void delay(uint z)&&&&&&&&
&uint x,y;
&for(x=z;x>0;x--)
&&for(y=110;y>0;y--);
uchar keyscan()&&&&&&&&&&&&&&&&&&&&&
&uchar num,temp1,temp2,& //num用于存放扫描到得按键值
&P3=0x0f;&&&&&&&&&&&&&&&&&&&& //给P3口低四位赋0高四位赋1
&temp1=P3;&&&&& //读取P3口的值
&if(temp1!=0x0f)&&&& //如果P3口发生变化
&&delay(10);&&&&//延时消斗
&&temp1=P3;&&&&//再次读取P3口的值
&&if(temp1!=0x0f)&&&//如果确实有按键按下
&&&P3=0xf0;&&&//再给P3口高四位赋1低四位赋0
&&&temp2=P3;&&&//读取P3口的值
&&&temp=temp1|temp2;&//把两次读取的值或运算赋给temp
&&&switch(temp)&&//判断temp按下的是哪个键再对num赋值
&&&&case 0xee:num=0;
&&&&case 0xde:num=1;
&&&&case 0xbe:num=2;
&&&&case 0x7e:num=3;
&&&&case 0xed:num=4;
&&&&case 0xdd:num=5;
&&&&case 0xbd:num=6;
&&&&case 0x7d:num=7;
&&&&case 0xeb:num=8;
&&&&case 0xdb:num=9;
&&&&case 0xbb:num=10;
&&&&case 0x7b:num=11;
&&&&case 0xe7:num=12;
&&&&case 0xd7:num=13;
&&&&case 0xb7:num=14;
&&&&case 0x77:num=15;
&&&&default&: num=16;
&&&while(temp2!=0xf0)&&&& //松手检测
&&&& temp2=P3;
&&&beep=0;&&&&&&&//每扫描到一个num蜂鸣器就叫一下
&&&scan=1;&&&&&&&//已按下键
&&&&&&&&&&& //返回扫描得到的值
void displayerror()&&& //最高位显示E表示出错信息
&P0=table[10];
&delay(1);
void display(long n)&&
&uchar j=0;
&long quan=1;
&if(n==0)&&& //如果n为0则初始化显示(最高位显示0)
&&P0=table[0];
&&delay(1);
&&P0=0&&&& //把数码管全关掉(用于消掉余辉)
&&while(n/quan!=0)&&&& //用于判断long为几位
&&&quan=quan*10;
&&&j++;&&&&&& // j用于存放long的位数
&&if(j==1)&&&&&& //如果long为一位
&&&wela=1;
&&&wela=0;
&&&dula=1;
&&&P0=table[n];
&&&dula=0;&
&&&delay(1);
&&&wela=1;
&&&wela=0;
&&else if(j==2)
&&&dula=1;
&&&P0=table[n/10];
&&&dula=0;&
&&&wela=1;
&&&wela=0;
&&&delay(1);
&&&wela=1;
&&&wela=0;
&&&dula=1;
&&&P0=table[n%10];
&&&dula=0;
&&&wela=1;
&&&wela=0;
&&&delay(1);
&&&wela=1;
&&&wela=0;
&&else if(j==3)
&&&dula=1;
&&&P0=table[n/100];
&&&dula=0;&
&&&wela=1;
&&&P0=0xf7;
&&&wela=0;
&&&delay(1);
&&&wela=1;
&&&wela=0;
&&&dula=1;
&&&P0=table[(n/10)%10];
&&&dula=0;&
&&&wela=1;
&&&wela=0;
&&&delay(1);
&&&wela=1;
&&&wela=0;
&&&dula=1;
&&&P0=table[n%10];
&&&dula=0;
&&&wela=1;
&&&wela=0;
&&&delay(1);
&&&wela=1;
&&&wela=0;
&&else if(j==4)
&&&dula=1;
&&&P0=table[n/1000];
&&&dula=0;&
&&&wela=1;
&&&wela=0;
&&&delay(1);
&&&wela=1;
&&&wela=0;
&&&dula=1;
&&&P0=table[(n/100)%10];
&&&dula=0;&
&&&wela=1;
&&&P0=0xf7;
&&&wela=0;
&&&delay(1);
&&&wela=1;
&&&wela=0;
&&&dula=1;
&&&P0=table[(n/10)%10];
&&&dula=0;&
&&&wela=1;
&&&wela=0;
&&&delay(1);
&&&wela=1;
&&&wela=0;
&&&dula=1;
&&&P0=table[n%10];
&&&dula=0;
&&&wela=1;
&&&wela=0;
&&&delay(1);
&&&wela=1;
&&&wela=0;
&&else if(j==5)
&&&dula=1;
&&&P0=table[n/10000];
&&&dula=0;&
&&&wela=1;
&&&wela=0;
&&&delay(1);
&&&wela=1;
&&&wela=0;
&&&dula=1;
&&&P0=table[(n/1000)%10];
&&&dula=0;&
&&&wela=1;
&&&wela=0;
&&&delay(1);
&&&wela=1;
&&&wela=0;
&&&dula=1;
&&&P0=table[(n/100)%10];
&&&dula=0;&
&&&wela=1;
&&&P0=0xf7;
&&&wela=0;
&&&delay(1);
&&&wela=1;
&&&wela=0;
&&&dula=1;
&&&P0=table[(n/10)%10];
&&&dula=0;&
&&&wela=1;
&&&wela=0;
&&&delay(1);
&&&wela=1;
&&&wela=0;
&&&dula=1;
&&&P0=table[n%10];
&&&dula=0;
&&&wela=1;
&&&wela=0;
&&&delay(1);
&&&wela=1;
&&&wela=0;
&&&dula=1;
&&&P0=table[(n/100000)];
&&&dula=0;&
&&&wela=1;
&&&wela=0;
&&&delay(1);
&&&wela=1;
&&&wela=0;
&&&dula=1;
&&&P0=table[(n/10000)%10];
&&&dula=0;&
&&&wela=1;
&&&wela=0;
&&&delay(1);
&&&wela=1;
&&&wela=0;
&&&dula=1;
&&&P0=table[(n/1000)%10];
&&&dula=0;&
&&&wela=1;
&&&wela=0;
&&&delay(1);
&&&dula=1;
&&&P0=table[(n/100)%10];
&&&dula=0;&
&&&wela=1;
&&&P0=0xf7;
&&&wela=0;
&&&delay(1);
&&&wela=1;
&&&wela=0;
&&&dula=1;
&&&P0=table[(n/10)%10];
&&&dula=0;&
&&&wela=1;
&&&wela=0;
&&&delay(1);
&&&wela=1;
&&&wela=0;
&&&dula=1;
&&&P0=table[n%10];
&&&dula=0;
&&&wela=1;
&&&wela=0;
&&&delay(1);
&&&wela=1;
&&&wela=0;
关键字:&&&&
编辑:什么鱼
引用地址:
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
关注eeworld公众号快捷获取更多信息
关注eeworld服务号享受更多官方福利
网友正在学习IC视频
EEWORLD网友正在观看&&视频
EEWORLD网友正在观看&&视频
EEWORLD网友正在观看&&视频
EEWORLD网友正在观看&&视频
EEWORLD网友正在观看&&视频
相关关键词
热门关键词
大学堂最新课程
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
热门资源推荐
频道白皮书
何立民专栏
北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

我要回帖

更多关于 单片机仿真图及源程序 的文章

 

随机推荐