学习的进度实在不怎么样,因为接下来可能要学习单片机,所以先自己开始学习了。
对于Python实在是惭愧,想写GUI可是不知从何下手。
单片机理论倒是挺多的,不记下来的话,自己动手根本不知从哪开始。
这图片上传真是蛋疼呵…
代码:
/*
Nonikka
2014-4-21
*/
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula = P2^6;
sbit wela = P2^7;
uchar num,temp,tt;
uchar code table[] = {
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint z);
void main(){
TMOD = 0x01;//定时器工作方式
EA = 1; //CPU中断允许
ET0 = 1;//定时器0允许
TH0 = (65535 - 50000)/256; //设置定时器为50ms
TL0 = (65535 - 50000)%256;
num = 0;
temp = 0xfe;
P1 = temp;
wela = 1; //位选确定
P0 = 0xc0; //11000000
wela = 0;
TR0 = 1; //定时器开始
while(1)
{
delay(1000);
temp = _crol_(temp,1);//循环左移1位
P1 = temp;
}
}
void delay(uint z) //z即多少毫秒,12Mhz下
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void timer0() interrupt 1 //定时器1
{
TH0 = (65535 - 50000)/256;
TL0 = (65535 - 50000)%256;
tt++;
if(tt == 20) //本段若写在main()的while(1)
{ //中将产生计数不准,因为
tt=0; //tt可能刚好==20,也可能多于
dula = 1;
P0 = table[num];
dula = 0;
num++;
if(num == 16)
num = 0;
}
}
完事~
版权声明:本文为u014375100原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。