单片机是一种集成电路芯片,是采用超大规模集成电路技术,把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM和中断系统、定时器或计时器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。
从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。
#include <avr/io.h>#include <avr/interrupt.h>
#define uchar unsigned char
#define uint unsigned int
#define LED_ctrl PORTB //列开关
#define LED_code PORTD //行扫描代码
uchar code[8]
uchar str[]={0x00,0x90,0x90,0xF0,0x90,0x90,0x90,0x00, //H
0x00,0x00,0x70,0x88,0x88,0x88,0x70,0x00, //o
0x00,0x00,0xA8,0xA8,0xA8,0x50,0x50,0x00, //w
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //
0x00,0x00,0x60,0x90,0x90,0x90,0x68,0x00, //a
0x00,0x00,0xD8,0x60,0x40,0x40,0x40,0x00, //r
0x00,0x00,0x60,0x90,0xF0,0x80,0x60,0x00, //e
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //
0x00,0x90,0x90,0x90,0x70,0x10,0x60,0x00, //y
0x00,0x00,0x70,0x88,0x88,0x88,0x70,0x00, //o
0x00,0x00,0x90,0x90,0x90,0x90,0x68,0x00, //u
0x00,0x60,0x90,0x10,0x60,0x40,0x00,0x40, //?
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00} //
volatile uchar flag_10ms=0,flag_move=0
uchar i=0
//动态扫描,显示一屏
void LED_dis(uchar word[])
{
for(uchar l=0l<8l++)
{
LED_ctrl=0xff
LED_code=~word[l]
LED_ctrl=~(0x01<<l)
}
LED_ctrl=0xff
}
//单片机初始化
void MCU_init(void)
{
DDRB=0Xff
DDRD=0Xff
LED_ctrl=0xff
LED_code=0xff
}
//中断计时初始化
void timer0_init(void)
{
TCNT0=100
TCCR0=0x02
TIMSK|=(1<<TOIE0)
}
//中断服务程序,这里设置时有些随意,大概是1.25ms一个周期
ISR(TIMER0_OVF_vect)
{
static uchar k=0
TCNT0=100
flag_10ms=1 //每中断扫描一次,即LED屏点亮一次,如要加大LED亮度,可适当修改以增加点空比
if(++k>=100)
{
flag_move=1 //100中断约125毫秒间隔标志位,每次移动字幕一列,速度可由K调节
k=0 //这里本不该有注释,但是居然忘记了初始化,整整查错查了将近一个半小时,楞是没看出来忘记初始化,要命啊.
}
}
int main(void)
{
MCU_init()
timer0_init()
sei()
while(1)
{
if(flag_move==1)
{
uchar a,b
flag_move=0
if(i++==106)i=0
a=i/8
b=i%8
for(uchar j=0j<8j++)
{
code[j]=(str[a*8+j]<<b)|(str[a*8+j+8]>>(8-b)) //这个程序最费工夫就是这个公式,移屏的算法,详细见程序后
}
}
else if(flag_10ms==1)
{
flag_10ms=0
LED_dis(code)
}
}
}
//第一次玩LED点阵,花了很长时间总算搞定,起先用二维数组,用起来发现自己对二维数组和指针不熟,又整合成一维
//移屏公式请注意,因为我这个屏采用是的列开关,行扫描,移屏采用横移(左右平移),所以公式相对复杂一些,
//如果是上下纵移,或者是行开关列扫描的横移,应该相对会简单一些,只要在显示一屏的子函数中将位置错开一个即可
//本程序在GCC,mega16最小系统板上测试通过,51请自行改动中断接口以及输出端口即可,没用到AVR专有特性.
你是不是说在PROTEL中电子器件的名称,1.电阻固定电阻:RES
半导体电阻:RESSEMT
电位计;POT
变电阻;RVAR
可调电阻res1
2.电容
定值无极性电容;CAP
定值有极性电容CAP
半导体电容:CAPSEMI
可调电容:CAPVAR
3.电感:INDUCTOR
4.二极管:DIODE.LIB
发光二极管:LED
5.三极管 :NPN1
6.结型场效应管:JFET.lib
7.MOS场效应管
8.MES场效应管
9.继电器:PELAY. LIB
10.灯泡:LAMP
11.运放:OPAMP
12.数码管:DPY_7-SEG_DP (MISCELLANEOUS DEVICES.LIB)
13.开关sw_pb
原理图常用库文件:
Miscellaneous Devices.ddb
Dallas Microprocessor.ddb
Intel Databooks.ddb
Protel DOS Schematic Libraries.ddb
PCB元件常用库:
Advpcb.ddb
General IC.ddb
Miscellaneous.ddb
部分 分立元件库元件名称及中英对照
AND 与门
ANTENNA 天线
BATTERY 直流电源
BELL 铃,钟
BVC 同轴电缆接插件
BRIDEG 1 整流桥(二极管)
BRIDEG 2 整流桥(集成块)
BUFFER 缓冲器
BUZZER 蜂鸣器
CAP 电容
CAPACITOR 电容
CAPACITOR POL 有极性电容
CAPVAR 可调电容
CIRCUIT BREAKER 熔断丝
COAX 同轴电缆
CON 插口
CRYSTAL 晶体整荡器
DB 并行插口
DIODE 二极管
DIODE SCHOTTKY 稳压二极管
DIODE VARACTOR 变容二极管
DPY_3-SEG 3段LED
DPY_7-SEG 7段LED
DPY_7-SEG_DP 7段LED(带小数点)
ELECTRO 电解电容
FUSE 熔断器
INDUCTOR 电感
INDUCTOR IRON 带铁芯电感
INDUCTOR3 可调电感
JFET N N沟道场效应管
JFET P P沟道场效应管
LAMP 灯泡
LAMP NEDN 起辉器
LED 发光二极管
METER 仪表
MICROPHONE 麦克风
MOSFET MOS管
MOTOR AC 交流电机
MOTOR SERVO 伺服电机
NAND 与非门
NOR 或非门
NOT 非门
NPN NPN三极管
NPN-PHOTO 感光三极管
OPAMP 运放
OR 或门
PHOTO 感光二极管
PNP 三极管
NPN DAR NPN三极管
PNP DAR PNP三极管
POT 滑线变阻器
PELAY-DPDT 双刀双掷继电器
RES1.2 电阻
RES3.4 可变电阻
RESISTOR BRIDGE ? 桥式电阻
RESPACK ? 电阻
SCR 晶闸管
PLUG ? 插头
PLUG AC FEMALE 三相交流插头
SOCKET ? 插座
SOURCE CURRENT 电流源
SOURCE VOLTAGE 电压源
SPEAKER 扬声器
SW ? 开关
SW-DPDY ? 双刀双掷开关
SW-SPST ? 单刀单掷开关
SW-PB 按钮
THERMISTOR 电热调节器
TRANS1 变压器
TRANS2 可调变压器
TRIAC ? 三端双向可控硅
TRIODE ? 三极真空管
VARISTOR 变阻器
ZENER ? 齐纳二极管
DPY_7-SEG_DP 数码管
SW-PB 开关
其他元件库
Protel Dos Schematic 4000 Cmos .Lib (40.系列CMOS管集成块元件库)
4013 D 触发器
4027 JK 触发器
Protel Dos Schematic Analog Digital.Lib(模拟数字式集成块元件库)
AD系列 DAC系列 HD系列 MC系列
Protel Dos Schematic Comparator.Lib(比较放大器元件库)
Protel Dos Shcematic Intel.Lib(INTEL公司生产的80系列CPU集成块元件库)
Protel Dos Schematic Linear.lib(线性元件库)
例555
Protel Dos Schemattic Memory Devices.Lib(内存存储器元件库)
Protel Dos Schematic SYnertek.Lib(SY系列集成块元件库)
Protes Dos Schematic Motorlla.Lib(摩托罗拉公司生产的元件库)
Protes Dos Schematic NEC.lib(NEC公司生产的集成块元件库)
Protes Dos Schematic Operationel Amplifers.lib(运算放大器元件库)
Protes Dos Schematic TTL.Lib(晶体管集成块元件库 74系列)
Protel Dos Schematic Voltage Regulator.lib(电压调整集成块元件库)
Protes Dos Schematic Zilog.Lib(齐格格公司生产的Z80系列CPU集成块元件库)
元件属性对话框中英文对照
Lib ref 元件名称
Footprint 器件封装
Designator 元件称号
Part 器件类别或标示值
Schematic Tools 主工具栏
Writing Tools 连线工具栏
Drawing Tools 绘图工具栏
稳压二极管 ZENER DIODE
肖特基二极管 SCHOTTKY DIODE
二极管 DIODE
变容二极管 VARIODE
三极管 TRANSISTOR
电感 INDUCTOR
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)