c51单片机编程遇到程序解读问题:问题如下图,解读满意者奖金丰厚

作者&投稿:舟史 (若有异议请与网页底部的电邮联系)
~ 从“#define
clock_segment
XBYTE[0xBFFF]
这个语句可以看出,程序的作者用的是总线方式来控制数据流。一般的51单片机的P0口和P2口共同作为地址总线,而P0口又作为数据总线,想想这样的板子上一般都接了锁存器。上面这句话的意思是在后面的程序中如果遇到clock_segment就当成是XBYTE[0xBFFF],后面的注释说明这个是数码管段码的地址。那么举个例子:
数码管(共阴)的段码表是:
unsigned
char
code
SMG_DM[10]={
0x3F,/*0*/
0x06,/*1*/
0x5B,/*2*/
0x4F,/*3*/
0x66,/*4*/
0x6D,/*5*/
0x7D,/*6*/
0x07,/*7*/
0x7F,/*8*/
0x6F,/*9*/
};
则如果程序中写到clock_segment
=
SMG_DM[3];
意思就是XBYTE[0xBFFF]=
SMG_DM[3];
//
往数码管送数字3的段码
再说一点就是在总线方式中单片机的P3.6和P3.7会作为读写控制而自动改变电平,目的是配合总线。这种方式可以给单片机扩展很多外设,而且总线自动控制读写会提高代码效率。
下面的属于动态显示,但是因为没有进行消隐操作,会导致显示乱码。
具体的消隐操作是,如果你先送段码,则在送段码前将所有的位码关闭,如果是共阴数码管,则控制位的引脚全部置1,共阳的则置0即可。如果先送位码,则要在送之前将所有的段码关闭,共阴的话则全部置高,共阳的全部置低。消隐时间越短越好,在关闭段码显示或位码显示后立即送位码或段码,不要进行任何的延时,延时是在送数完成之后进行。
在你的程序中是先送的位码,则在送位码之前要进行一句:clock_segment
=
0xff;
//
如果用的是共阴数码管。如果用的是共阳数码管就是:clock_segment
=
0x00;


51单片机C51语言编程数值有问题,请高手看一下
include <reg52.h> define uchar unsigned char define uint unsigned int define dataport P3 sbit DL=P1^0;sbit WL=P1^1;uchar Number_Value[8]={0,0,0,7,0,0,0,0};\/\/改变此数组中每个元素的值 即可改变对应数码管那个位 显示的值 void Ditgital_Scanning(uchar *Numerical){ uchar ...

基于51单片机的C语言编程的头文件问题
include <xxx.h> 优先在系统默认路径查找头文件 include“xxx.h”有现在项目路径查找头文件 二、#ifndef和#endif 通常形式为 ifndef _xxxx_h_define _xxxx_h_...(头文件具体内容)endif 这样的写法表示,如果_xxxx_h_还没有被定义,那么头文件内容将被执行,如果已经定义过了,那么头文件内容就不...

51单片机在Keil环境下,用C语言编程,关于片外存储区xdata中存放结构体...
Keil本身对STC单片机缺乏支持,对外部xram没有数据库描述。在器件库中选个带xram的单片机就可以了,比如sst89x516rd.

51单片机编程问题
LED BIT P1.4;LED接P1.4端口 KEY BIT P3.2;按键接P3.2端口 ORG 00H LJMP MAIN ORG 30H MAIN:CLR LED;LED熄灭 KS:JB KEY,SETB LED;LED亮 ACALL DELAY10S;延时10S CLR LED;LED熄灭 LJMP KS DELAY10S: ;误差 0us,延时10S,晶振为12M MOV R7,#0BFH DL1:MOV R6,#0BDH ...

请教高手有关51单片机 C语言编程
操作特殊功能寄存器必须事先声明,如:sfr P0 = 0x80;sbit P11 = 0x91;define 只是进行一次宏定义, 在程序中遇到 chargecurrent 时就将此替换为数值0xec 此处 0xec仅仅是一个数据,此处不能写寄存器地址, 不过可以写在其它地方定义过的标号比如 define P11 P23 就是将P1.1替换为P2.3...

51单片机C语言编程
\/\/ 51单片机C语言编程,这个时钟+秒表可以参考一下。include<reg51.h> define uchar unsigned char define uint unsigned int sbit qingling=P1^0; \/\/清零 sbit tiaofen=P1^1; \/\/调分 sbit tiaoshi=P1^2; \/\/调时 sbit sounder=P1^7; \/\/naozhong uint a,b;uchar hour,minu,sec, ...

51系列单片机编程
设高8位存在B中,低8位存在A中。双字节数据从高向低《循环右移》一位的子程序如下:RCR16:MOV C, ACC.0 XCH A, B RRC A XCH A, B RRC A RET ;--- 如果需要循环右移四位,就调用四次上述的程序。故,双字节数据循环右移四位子程序如下:CALL RCR16 CALL RCR...

51单片机的问题,帮帮忙啊,答得好的一定加分,谢谢了!
(1)执行指令MOVX A,@DPTR时,引脚ALE为_低__电平,PSEN为_高__电平 (2)ORG 2000H MOV A,#00H MOV B,#01H MOV SP,#10H PUSH ACC PUSH B RET 执行后SP=_#10H__,PC=_#0100H__(3)用最少的机器周期编程实现将R0所指的二字节数乘以16,保持R0不变 MOV A,R0 INC A MOV ...

51单片机编程显示重复定义但是我没有重复定义啊
你的delay.h出现在1602.h,1602.c中,引用两次,应该就是这里的问题,其实只要1602.h里包含就可以了。

MCS-51单片机编程题。
ORG 0000H LJMP MAIN ORG 0100H MAIN: CLR C ;51单片机使用的是带进位的减法,使用前必须先清进位标志 MOV A,40H SUBB A,41H JC LLA ;如果41H中数大,不够减,则转LLA JZ LLB ;如果40H中数和41H中数相等,转LLB MOV GREAT,40H MOV LESS, ...

开平市18325536988: c51单片机编程遇到程序解读问题:问题如下图,解读满意者奖金丰厚 -
陟玛复方: 从“#define clock_segment XBYTE[0xBFFF] 这个语句可以看出,程序的作者用的是总线方式来控制数据流.一般的51单片机的P0口和P2口共同作为地址总线,而P0口又作为数据总线,想想这样的板子上一般都接了锁存器.上面这句话的意思...

开平市18325536988: 学51单片机,编程时c51看别人程序经常看到一些逻辑运算符的运算.很难理解???求教!(加分) -
陟玛复方: y &= 0xF 就是: y = y & 0xF 假设: y = 1010 0011 与上0xF,即:0000 1111 结果就是:y = 0000 0011“与”运算,是用0来使某些位,变成0; “或”运算,是用1来使某些位,变成1; “异或”运算,是用1来使某些位,取反.

开平市18325536988: C51单片机程序问题 -
陟玛复方: 详细点的就是说,比如你用P0和P2来扩展外部ram(就是用P0和P2与62256对应的管脚相连接),假设你的P2.7接WR,P2.6接RD,P2.5接CS,那么就可以确定个外部RAM的一个地址,想往外部RAM的一个地址写一个字节时,地址可以定为...

开平市18325536988: 单片机编程遇到一下问题怎么解决 -
陟玛复方: 公共变量定义重复错误,建议查找公共变量声明,或者变量类型声明.错误发生在12864的文件里面.

开平市18325536988: C51单片机C语言编程的问题 -
陟玛复方: 问题出现编译器把计算后的值直接送到P1了,a值没有更新 你程序的还有个问题在于更新P1口后需要延时至少0.5秒,否则你是不可能看到LED有闪烁的修改办法,2种 1把a声明成全局变量 2把while全改成for

开平市18325536988: 有什么办法能将51单片机中的程序读出来,解密 -
陟玛复方: 这要看是什么型号的单片机,有的是可以解密的,有些是不能解密的.要读出单片机中的程序,就得先解密.但是,自己是做不到的,现在网上有很多公司可以解密(不知是真是假),需要交费的,也很高的.

开平市18325536988: 51单片机编程遇见的问题 求大神指导!
陟玛复方: 1. 单片机在上电时,大部分寄存器都有一个默认初值(数据手册中都会提到).这些初值标定了一种状态,只有和自己需求不符合的才进行改动,否则都不用写出来. 2.这是使用的中断向量标号,用来确定是那种中断 3.定时器定时完成后,有两种方式,咱自己去查询标志位(当标志位置一时说明计时1/120s到了)或者他自动直接产生中断进入中断函数处理. good luck! 步行者===电子单片机团 qq:1320249827

开平市18325536988: 谁能说一说单片机编程中常见问题既解决方法呀 -
陟玛复方: 首先要确定你的开发环境,然后就是不同的单片机会有不同的程序编写过程,这个要看你具体的选型了,一般开发环境里都有库函数的,程序的编写最好是模块化的,一个模块一个模块的编译调试,一定要调理清晰

开平市18325536988: 您好!有问题想请教下: c51单片机编程是遇到的问题: 头文件里定义:#define RAC 0x46 //R - ADC - CONFIG -
陟玛复方: #define RAC 0x46 这个是定义一个常量,给一个常量赋值,当然有问题如果这是一个寄存器的话,要定义成...

开平市18325536988: 51单片机实验遇到问题 -
陟玛复方: 淘宝上的位选和段选都是一个串口出来的,只是用了两个锁存器,通过改变锁存器的选择来选择是位选还是段选,你这图不存在这个 一般只是在做数码管的动态扫描才有位选和段选#include<reg52.h> sbit dula=P2^6; sbit wela=P2^7; void main() { while(1){wela=0;P0=0xAA;wela=1; dula=0;P0=0x00;dula=1;}}

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网