c51单片机机c51当接收到的数据是88H时,驱动一个8个LED轮流点亮,亮的同时接收数据,改变程序。

某单片机控制系统有8个发光二极管。试画出89C51与外设的连接图并编程使它们由左向右轮流点亮。_百度知道
某单片机控制系统有8个发光二极管。试画出89C51与外设的连接图并编程使它们由左向右轮流点亮。
某单片机控制系统有8个发光二极管。试画出89C51与外设的连接图并编程使它们由左向右轮流点亮。要电路图和代码(c语言)有的发我邮箱啦!!谢谢,
邮箱修改一下,是
我有更好的答案
已发送,请查收,一共发了三个实例,包含proteus仿真图,希望能帮到你 你的邮箱发送不了,是不是写错了 已经发送
采纳率:50%
说实话:流水灯程序,网上太多了。你太懒。
流水灯程序,网上太多了。
网上很多的,另外给你介绍一本书:《单片机C语言程序设计实训100例——基于8051+Proteus仿真》。这本书介绍了51单片机的详细应用。如果你想学51的话是一本很不错的书。
其他1条回答
为您推荐:
其他类似问题
发光二极管的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。如何用C51单片机实现P0口接两个按键,P1口接8个LED灯。key1按下左移动1位点亮LED key2按下右移动1位点LED_百度知道
如何用C51单片机实现P0口接两个按键,P1口接8个LED灯。key1按下左移动1位点亮LED key2按下右移动1位点LED
#include&reg52.h&
#include&intrins.h&
#define uint unsigned int
#define uchar unsigned char
sbit key=P0^0;
void Delay_ms(uint xms)
//延时程序,xms是形式参数
我的目的要在程序里面添加1个按键,控制右移。
我有更好的答案
主函数,改改即可:void main(){
uchar led_data=0//默认第一位亮
if(key==0)
Delay_ms(10);
if(key==0) {
while(!key);
led_data=_crol_(led_data,1);//led_date向左循环移动1位
Delay_ms(200);
//延时0.5s
}}试试看。
你的方案,我试了不行。谢谢你!我已经解决了此问题。
前面给出的,仅仅是主函数。在主函数的前面,再写上楼主原来的部分:#include&reg52.h&#include&intrins.h&#define uint unsigned int#define uchar unsigned charsbit key = P0^0;void Delay_ms(uint xms) &//延时程序{& & uint i,& & for(i = i & 0; i--) &for(j = 115; j & 0; j--);}void main() & & &//同上{……本程序,仿真运行的截图如下:实践证明,前面给出的程序,是完全正确的。
我要的是两个按键的,KEY1控制左移KEY2控制右移。你给的程序只有1个按键,只能左移。
哦,看你的程序,仅仅给出一个按键接口,就以为,你是一个按键,没有调好。再增加一个,也不难,复制一下前面的程序,简单的改改即可。指定一个按键接口 KEY2,主函数程序修改如下:void main(){
uchar led_data=0//默认第一位亮
if(key==0)
Delay_ms(10);
if(key==0) {
while(!key);
led_data=_crol_(led_data,1);//led_date向左循环移动1位
//一位亮
Delay_ms(200);
//延时0.5s
}//--------------------------控制右移部分程序如下
if(key2==0)
Delay_ms(10);
if(key2==0) {
while(!key2);
led_data=_cror_(led_data,1);//led_date向右循环移动1位
//一位亮
Delay_ms(200);
//延时0.5s
}//--------------------------
采纳率:64%
给个四路:定意一个变量;if(按键1按下)
变量为1;if(按键2按下)
变量为2;if(变量==1){
左移控制;}else if(变量==2){
右移控制;}
谢谢!通过楼上的方法成功实现。还有一个问题,就是单片机上电P1.0是亮的,我想实现上电的状态是0xff当按键按下开始从0xfe开始移位。
那就判断,当按键按下时,赋值为0xfe,然后一次移位一次,循环移位,当移动到0x00时,赋初值继续移位就行了。
怎么写(赋值为0xfe,然后一次移位一次,循环移位,当移动到0x00时,赋初值)我不会啊,能不能像楼上的网友详细的。举一个例子?
定义一个变量a,初始值为0;当按键按下后,a赋值为2;主循环中判断,如果a是2,就一次左移。、char a =0;uchar lsv =0while(1){if(key0==0){
delay(20);
//20ms消抖
if(key0==0)
}}if(a==2){
lsv=lsv&&1;
//左移一次
delay(100);
//根据需要延时一段时间
if(lsv==0x00)
谢谢!能不能给完整的?这个是主函数吗?前面要不要声明,定义什么?
这个就是主程序里面的,前面只要定义变量就可以了。
我按照你的方法试了,还是不行。编译错误:if(key0==0)
key0 是一个按键的检测管脚,你要定义一下
我按照你的方法试了,LED不亮,按键按下也没反应。
你还要加一条:P1=LED 接在哪个口就赋值给哪个口。
左移没有规律,按1下移动1位,再按3位,再按全亮............P1=这个具体加在哪个位置?
lsv=lsv&&1;
//左移一次
delay(100);
//根据需要延时一段时间
if(lsv==0x00)
}}放在这里........
哈哈,成了流水灯。
你想要的是什么呢?
为您推荐:
其他类似问题
led灯的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。毕业设计-基于C51单片机的LED点阵显示屏的设计 - 论文资料-
当前位置:
毕业设计-基于C51单片机的LED点阵显示屏的设计
馆藏:6101
下载此文档
同系列文档
Baidu Button END -->
官方公众微信各位单片机达人帮个忙 用汇编语言做一个 发光二极管循环点亮的程序 要求 使八只发光二极管做循环点亮一次_百度知道
各位单片机达人帮个忙 用汇编语言做一个 发光二极管循环点亮的程序 要求 使八只发光二极管做循环点亮一次
然后右循 环点亮一次 这样交替4次 使用p1口作为信号输出口 掩饰时间1s 晶振平率为6mhz 程序首地址为4000h 延时程序可通过定时器中断或指令实现。各位大神帮个忙 thanks
先左循环一次然后再又循环 交替四次
我有更好的答案
ORG 00H JMP MAIN ORG 30HMAIN: MOV A,#0FFH ;设置左移初值 CLR C ;C=0 MOV R2,#08H ;设置左移次数LOOP: RLC A ;左移1位 MOV P1,A ;输出到P1 CALL DELAY ;延时 DJNZ R2,LOOP ;左移7次 MOV R2,#07H ;LOOP1: RRC A ;右移1位 MOV P1,A ;输出到P1 CALL DELAY ; DJNZ R2,LOOP1 ;右移7次 JMP MAINDELAY: MOV R3,#20
;延时0.2sD1: MOV R4,#20D2: MOV R5,#248 DJNZ R5,$ DJNZ R4,D2 DJNZ R3,D1 RET
我去 根本不行
采纳率:60%
;;; LED单灯跑动 ORG
0000H AJMP MAIN ORG
0030HMAIN: MOV
A,#0FEH MOV
R0,#9 ;循环九次,8个灯亮及1次灯全灭 START: MOV
P0,A输出到P0口连接的 LED灯上 SETB
C置进位C RLC
A带进位左移 CALL DELAY延时一段时间 DJNZ R0,START ;反复循环 AJMP MAIN重新开始;延时子程序DELAY: MOV
R1,#15D1: MOV
R2,#100D2: MOV
R3,#100 DJNZ R3,$ DJNZ R2,D2 DJNZ R1,D1 RETEND自己改改吧,不会的话,再说。
为您推荐:
其他类似问题
发光二极管的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。【图文】51单片机_数码管显示_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
51单片机_数码管显示
&&对单片机数码管一些简介
阅读已结束,下载本文到电脑
想免费下载本文?
登录百度文库,专享文档复制特权,积分每天免费拿!
你可能喜欢

我要回帖

更多关于 c51单片机技术教程 的文章

 

随机推荐