www.rtmj.net > 用AT89C51单片机编写一个C语言程序实现2个数码管秒...

用AT89C51单片机编写一个C语言程序实现2个数码管秒...

#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

这是正时,改动一下#include &lt;AT89X51.H&gt;unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};unsigned char second;unsigned char keycnt;unsigned int tcnt;void main(

#include#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=20) { num=0; sec++; }}main(){tmod=0x01;th0=(

只利用两个数码管显示,那么肯定是显示16进制的数值,用到定时器,用静态显示或动态显示都行的.

//用AT89c52单片机作控制.假如数码管是共阴极的话,定义的段码和位选的锁存器的选通端分别为P2^6,P2^7,P0口接段码端和位码端,而且位码端接的是锁存器输入,输出端的高两位.假设晶振频率为12MHZ.#include<reg52.h>#include<

ORG 0000H LJMP MAIN ORG 030H MAIN: MOV R2,#0FFH MOV R5,#0AH D0: INC R2 MOV R4,#64H MOV R1,#0FFH D1: MOV R3,#0FFH INC R1 D2: MOV A,R1 DA A MOV R1,A ANL A,#0FH ACALL CHA MOV P2,#0EBH ACALL DELAY

直接#include <reg51.h> 这就可以了 不要用52的,不然内存溢出或程序代码过大编译器就不会报错了

可以啊,就显示1234吗??

程序流程 就是 定义一个变量扫描 按键和数码管有按键 变量+1

并用一个按键啥?51单片机我没设计过电路,用的学习板是现成的,对着电路图.那个学习板上没有锁存器啥的,只能靠扫描来显示2个数字(就是两个数码管轮流显示数字,因为轮流速度非常快人眼看不出来一次其实只有一个在显示)思路的

网站地图

All rights reserved Powered by www.rtmj.net

copyright ©right 2010-2021。
www.rtmj.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com