历史上的今天
今天是:2025年04月06日(星期日)
2020年04月06日 | 51单片机:6位数码管动态显示,从600000开始,每0.5秒加1
2020-04-06 来源:eefocus
原理图

##//源码
#include #include #define uint unsigned long #define uchar unsigned char sbit N1 = P1^0; sbit N2 = P1^1; sbit N3 = P1^2; sbit N4 = P1^3; sbit N5 = P1^4; sbit N6 = P1^5; uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uint num; int a,t1=0; void delayms(uint xms) //延时函数 { uint i,j; for(i=xms;i>0;i--) for(j=10;j>0;j--); } void display(uint num) { N1=0; P0=table[(num%1000000)/100000]; delayms(1); P0=0XFF; N1=1; N2=0; P0=table[(num%100000)/10000]; delayms(1); P0=0XFF; N2=1; N3=0; P0=table[(num%10000)/1000]; delayms(1); P0=0XFF; N3=1; N4=0; P0=table[(num%1000)/100]; delayms(1); P0=0XFF; N4=1; N5=0; P0=table[(num%100)/10]; delayms(1); P0=0XFF; N5=1; N6=0; P0=table[num%10]; delayms(1); P0=0XFF; N6=1; } void TimeAdd() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; t1++; if(t1==10) //20*50==1秒10*50=0.5秒 { t1=0; num++; } } void main() { TMOD=0X01; // 定时器 初始化 TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; //中断总开关 ET0=1; //开定时器0 中断 TR0=1; //启动定时器0 num=600000; //初始值 while(1) { display(num); }
史海拾趣
|
想学习一下AD,打算仿真做一个数字电压表,测量0~5V输出0~255,通过数码管显示,AD用的0809,模拟输入采用一个1K滑动变阻器连接到IN0(不知道这种做法是否可行?)现在的问题是,改变滑动变阻器的值,数码管的值有变化,但是并不是有规律地增大或 ...… 查看全部问答> |
|
大家好! 小弟现在遇到一个奇怪的问题。 硬件测试环境:板子是STM8S208,板子上有两个LIN接口,一个做主机,一个做从机,用一条串口线将两个口连接起来通信。   ...… 查看全部问答> |
|
如何使用 CCS 建一个 M3 的工程,一直在用 MDK,最近不得不熟悉 CCS ,不知道 CCS 要怎么建工程呢? 找到一个 PDF ,按照里边的步骤还是能编译,而且很慢,这样的工具怎么用呢? [ 本帖最后由 Study_Stellaris 于 2011-12-5 16:00 编辑 ]… 查看全部问答> |
|
BeagleBone试用第一周 底板PCB--今天终于决定把板子拿去制了。到底如何不管他。 今天终于决定把板子拿去制了。到底如何不管他。 时间要紧。有错就改嘛。反正还是好同志。 希望大家支持,阿莫那里要求插孔都加大0.15MM 所以我的孔画的比较大。 有关硬件的资料: [ 本帖最后由 damiaa 于 2012-9-28 16:27 编辑 ...… 查看全部问答> |




