找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10905|回复: 7
收起左侧

单片机开关按键程序

[复制链接]
ID:2356 发表于 2008-7-20 22:53 | 显示全部楼层 |阅读模式
#include #include unsigned char LED_segment[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x80}; unsigned char scan[]={0x0e,0x0d,0x0b,0x07}; unsigned int counter[]={0,0,0,0}; int scan_times; sbit STS=P1^0; sbit CS=P1^1; //定义端口 sbit RC=P1^6; sbit A0=P1^2; sbit CE=P1^3; sbit S=P1^5; void delay(x) //延迟程序 { unsigned char i; while(x--){ for(i=0;i<20;i++){; } } } unsigned int dec(unsigned int n) //将二进制转化成十进制 { unsigned int a[4]; unsigned int m; a[0]=n/4096; a[1]=n@96/256; a[2]=n%6/16; a[3]=n; m=a[0]*4096+a[1]*256+a[2]*16+a[3]; return m; } main() { unsigned int i,result,AS,DH,DL; CE=1; RC=0; A0=1; CS=0; delay(1); while(STS==1); S=0; // 等待转换结束 RC=1; A0=0; DH =P1; delay(2); //delay(2); //A0=1; //DL=P1; //DL=DL&0x0f ; result=DH; AS=dec(result); AS=AS*10; AS=AS/4096; //AS=AS*10000000; P2=LED_segment[AS] ; P3=scan[0] ; /*counter[3]=AS/10000000; counter[2]=AS000000/1000000; counter[1]=AS00000/100000; counter[0]=AS0000/10000; while(1) { P2=LED_segment[counter]; P3=scan; i++; if(i==4) i=0; }*/ }
回复

使用道具 举报

ID:1904 发表于 2008-7-21 19:27 | 显示全部楼层

有没有汇编的啊?我正在学啊~~~~有的请发给我,邮箱:moneyhui19@163.com

回复

使用道具 举报

ID:28220 发表于 2011-3-7 20:09 | 显示全部楼层

这程序的易读性厉害!

回复

使用道具 举报

ID:41126 发表于 2012-5-31 10:54 | 显示全部楼层

想在现有两根线的情况下,两线接触时形成开、关一次(像弹片开关按一次)形成开,把两根分开时再形成开、关一次(像弹片开关按一次)形成关。我是个外行,能实现吗?

回复

使用道具 举报

ID:66467 发表于 2014-9-29 13:08 | 显示全部楼层
够强大 楼主 谢谢分享
回复

使用道具 举报

ID:67460 发表于 2014-10-17 09:05 | 显示全部楼层
谢谢楼主了。
回复

使用道具 举报

ID:67573 发表于 2014-10-18 11:28 | 显示全部楼层
先顶一个看
回复

使用道具 举报

ID:46228 发表于 2020-2-14 08:49 来自手机 | 显示全部楼层
开机,关机用一个按键控制
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表