AT89C51 两位数码管,数据递增,数据递减,坐等求C语言程序

题目:任选2个键,其中1个按键显示数据递增加1(从0开始),另1按键显示数据递减(显示数据不为0的情况下才作用),数据变化按十进制显示计数。

完整的程序没有,给你提示一个思路:
根据电路图:
你要设置按键中断为外部触发中断0:
该中断中判断是那个按键按下了,
若是增按键按下,显示的数字++;
若是减按键按下,显示的数字--;
unsigned char SZ=0;
void service_int0() interrupt 0
{
根据P2值判断是那个按键下:
若是增按键:SZ++;
否则减按键:SZ--;
}

void main()
{
//配置芯片
while(1)
{
P0=SZ;
}
}
温馨提示:内容为网友见解,仅供参考
无其他回答

用AT89C51单片机编写一个C语言程序实现2个数码管秒计数器,用4个按键...
include<reg51.h> define uchar unsigned char;uchar LED1,LED2;uchar distab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};uchar num=0;sec,key;void delay(unsigned int a){ unsigned int i,j;for(i=0;i<a;i++)for(j=0;j<120;j++);} void display(){ LED1...

用C语言编写AT89C51单片机程序,设计一个智能数字钟。
这是我的课程设计,6个数码管,显示时分秒,三个按钮P0.0、P0.1、P0.2可以调时,有8个彩灯(可以不要),没闹钟、倒计时之类的。呵呵。include<AT89X52.H> define uchar unsigned char int i;\/\/***时钟的 uchar one[10]={0xbf,0xb0,0xdb,0xcf,0xe6,0xed,0xfd,0x07,0xff,0xef}...

AT89C51 电子时钟24小时制的C语言程序。
我写了个数码管的时钟(我用的是HZ-C51的学习版,如果你用的板子不一样,你可以修改其中的P口就行了)希望对你有所帮助!我写的这个电子钟包括了时分秒显示,调时,调分,都有上调和下调功能,每秒LED灯会亮一个作为提示 include "reg52.h"include "intrins.h"define N 1 define uchar unsigned...

编一个AT89C51单片机00 —99 秒的汇编程序,要求有循环和暂停,用两个...
CLR LATCH1 MOV P0,#11111101B ;0代表选通该位数码管 SETB LATCH2 CLR LATCH2 CALL DELAY1 RET DELAY:MOV R5,#50 ;典型延时程序 D1: MOV R6,#40 D2: MOV R7,#248 CALL SCAN DJNZ R7,DJNZ R6,D2 DJNZ R5,D1 RET DELAY1:MOV R6,#4 ;扫描延时 D3: MOV R7,#2...

求基于AT89C51单片机的DS18B20温度检测程序(用C语言)
\/\/DS18B20的读写程序,数据脚P3.3 \/\/ \/\/温度传感器18B20汇编程序,采用器件默认的12位转化 \/\/ \/\/最大转化时间750微秒,显示温度-55到+125度,显示精度 \/\/ \/\/为0.1度,显示采用4位LED共阳显示测温值 \/\/ \/\/P0口为段码输入,P24~P27为位选 \/\/ \/***\/ include "reg51.h"include...

AT89C51,编写C语言程序,实现LED灯间隔1s亮一次 ,显示器开始计时从00~20...
0x99,0x92,0x82,0xf8,0x80,0x90};\/\/ 数码管段选 unsigned char aa,second;sbit LED=P1^0;\/\/ 小灯 void init(); \/\/初始化 void keypress(); \/\/按键识别 void delay(unsigned int z);\/\/延时 void main(){ init();LED = 1;while(1){ if(aa==20){ aa=0;second++;LED=...

求C语言程序,AT89C51单片机为核心,DS18B20测温度,实时用4位LED显示...
\/\/温度正负标志 \/***ds1820程序***\/ void delay_18B20(unsigned int i) \/\/延时1微秒 { while(i--); }void ds1820rst() \/*ds1820复位*\/ { unsigned char x=0; DQ = 1; \/\/DQ复位 delay_18B20(4); \/\/延时 DQ = 0; \/\/DQ拉低 delay...

AT89C51中断程序设计两位数码管0到99,工作方式1,定时计数,1s,不用C语 ...
SECOND EQU 30H; 定义 TCOUNT EQU 31H ;定义 ORG 00H ; 起始 LJMP START; 跳转 ORG 1BH ; 中断矢量地址 LJMP INT0X ; 跳转 START:MOV SECOND,#00H ; 设置计数0送入SECOND MOV TCOUNT,#00H ; 设置计数0送入TCOUNT MOV TMOD,#10H ; 设置计数器1 MOV TH1,#(65536-50000) \/ 256 ...

AT89C51单片机用C语言编写一个99秒倒计时的程序,要求复位或上电2位数码...
首先呢,定义两个全局变量,以作十与个并赋值为0,然后编写一个独立键盘函数,分别用于判断SB1~4,若 SB1==0,TR0=1,若SB2==0,TR0=0,若SB3==0,SHI ,若SB4==0,FEN 。主要功能就这样,当然这个并不完美,需要你自己去添加一些功能,然后再编写中断函数。希望我的回答能帮助到你。

求一个基于AT89C51单片机的数字时钟程序,显示时、分、秒不要求闹钟!就...
include <intrins.h> unsigned char data dis_digit;unsigned char key_s, key_v;unsigned char code dis_code[11]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xff};\/\/0,1,2,3,4,5,6,7,8,9,关显示,数码管码表 unsigned char data dis_buf[8];unsigned char ...

相似回答
大家正在搜