国产航顺芯(HK)高性价比32位MCU选型PCB抄板
- PCB抄板#include<reg52.h>
- PCB抄板#define uchar unsigned char
- uchar num; //要显示的数字
- void display()
- {
- uchar i,j,k,n;
- //数字0~9的8*8点阵
- uchar code dizn[]={
- 0x00,0x00,0x3E,0x41,0x41,0x41,0x3E,0x00,//0
- 0x00,0x00,0x00,0x00,0x21,0x7F,0x01,0x00,//1
- 0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00,//2
- 0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00,//3
- 0x00,0x00,0x0c,0x14,0x24,0x7F,0x04,0x00,//4
- 0x00,0x00,0x72,0x51,0x51,0x51,0x4E,0x00,//5
- 0x00,0x00,0x3E,0x49,0x49,0x49,0x26,0x00,//6
- 0x00,0x00,0x40,0x40,0x40,0x4F,0x70,0x00,//7
- 0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00,//8
- 0x00,0x00,0x32,0x49,0x49,0x49,0x3E,0x00,//9
- };
- k=0x01; //初始化,显示第一列
- n=num*8; //初始化为所显示数字的第一列所在位置
- for(i=8;i>0;i--)
- {
- P0 =dizn[n]; //输出行码
- P2= ~k; //输出列码,让指定的列显示
- k =k <<1; //指向下一列
- n++; //指向点阵中的下一个字节
- for(j=100;j>0;j--);//延迟一段时间,约200μs
- P2=0xFF; //关闭显示
- }
- }
- void main(void)
- {
- TMOD=0x01 ;
- TH0=(65536-10000)/256;
- TL0=(65536-10000)%256;
- TR0=1;
- ET0=1;
- EA=1; //到这里为止,将定时器0初始化为10ms中断
- num =0;
- //显示的第一个数字为“0”
- while(1)
- {
- display(); //循环调用显示函数显示 num的值
- }
- }
- void timer0()interrupt 1
- {
- static uchar t=0;
- TH0=(65536-10000)/256;
- TL0=(65536-10000)%256;
- t++;
- if(t==100) //判断是否到1s
- {
- t =0; //1时间到,将软件计数单元清0
- num ++; //计算要显示的下一个数码
- if(num>9)num=0;// 如果大于9,则又从0开始
- }

芯片解密