ZKX's LAB

单片机数字时钟设计 数字时钟3.0c

2020-08-11知识18

单片机 用c语言实现数字时钟 图已经给出 #includeunsigned char code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,数字 0 1 2 3 4 5 6 7 8 90x88,0x83,0xc6,0xa1,0x86,0x8e,0xff };A b C d E F 全灭16unsigned char code DSY_WEI[]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};位置代码,编号0 全熄灭,1、2、3、…对应自左至右的数码管unsigned char DSY_BUFFER[]={0,0,0xBF,0,0,0xBF,0,0};0xBF 显示“-”unsigned char DSY_IDX,Key_State,hh,mm,ss,s20;sbit K1=P1^0;sbit K2=P1^1;sbit K3=P1^2;void delayms(unsigned char ms){unsigned char i;while(ms-)for(i=0;i;i+);}void Increase_Hour(){if(+hh>;23){hh=0;}DSY_BUFFER[0]=DSY_CODE[hh/10];DSY_BUFFER[1]=DSY_CODE[hh%10];}void Increase_Minute(){if(+mm>;59){mm=0;Increase_Hour();}DSY_BUFFER[3]=DSY_CODE[mm/10];DSY_BUFFER[4]=DSY_CODE[mm%10];}void Increase_Second(){if(+ss>;59){ss=0;Increase_Minute();}DSY_BUFFER[6]=DSY_CODE[ss/10];DSY_BUFFER[7]=DSY_CODE[ss%10];if(cnt_Buff)cnt_Buff+;}void T0_INT()interrupt 1{TH0=(65536-2000)/256;TL0=(65536-2000)%256;P2=DSY_WEI[0];P0=。怎样做一个C语言制成的数字时钟的界面 Clock.cpp文件#include<;windows.h>;#include\"resource.h\"#include<;math.h>;LRESULT_stdcall WndProc(HWND,UINT,WPARAM,LPARAM);int_stdcall WinMain(HINSTANCE hInstance,。C语言数字时钟调试 少了头文件,要不就是路径不对,找找弄对了就行了单片机数字时钟设计 ORG 0X00LJMP STARTORG 0X3030H;设置堆栈MOV P1,#0XFE;设置在数码管的第0位显示MOV A,#0X01;A置初值为0000 0001LOOP:MOV P0,A;在数码管上显示寄存器A中的二进制数MOV R3,#0X5C;延时1SACALL EXTDELAY;延时观察和记录对应的显示结果RL A;将A寄存器的值循环左移一位SJMP LOOP;循环显示DELAY:MOV R1,#0XC8;延时20MSDL2:MOV R2,#0X18DL1:NOPNOPDJNZ R2,DL1DJNZ R1,DL2RETEXTDELAY:ACALL DELAYDJNZ R3,EXTDELAYRETENDORG 0X00SJMP STARTORG 0X30START:MOV SP,#30H;设置堆栈MOV P1,#0XFE;位选信号,选中第0个数码管MOV P0,#0X6F;在数码管上显示\"9LOOP:SJMP LOOP;循环执行程序ENDORG 0X00LJMP STARTORG 0X30START:MOV SP,#30H;设置堆栈MOV P1,#0XFE;设置在数码管的第0位显示MOV DPTR,#TABLE;送TABLE地址到DPTR指针MOV R7,#0X00;标志变量,限制指针在TABLE区LOOP:CLR AMOVC A,@A+DPTR;取TABLE区的字形码MOV P0,A;在数码管上显示寄存器A中的二进制数INC R7;指针控制加一MOV R3,#0X5C;延时ACALL EXTDELAY;延时观察和记录对应的显示结果CJNE R7,#0X10,NEXT;如果TABLE中数未取到最后一个,继续取下一个MOV R7,#0X00;如果已经取过所有。

#时钟信号#c语言#时钟同步#table#单片机

随机阅读

qrcode
访问手机版