|
一个很简单的avr单片机的仿真,用74hc595芯片来驱动单个数码管显示数字,下面是仿真原理图
源程序:
- #include<iom16v.h>
- #include<macros.h>
- void delay(int k){
- int i=0,j=0;
- for(i=0;i<k;i++){
- for(j=0;j<6;j++){
- ;
- }
- }
- }
- void InputData(unsigned char data){
- unsigned char i;
- unsigned char k;
- for(i=0;i<8;i++){
- PORTB=~BIT(0);
- delay(20);
- PORTC=(data>>i)&0x01;
- delay(20);
- PORTB=BIT(0);
- delay(20);
- }
- }
- void OutData(void){
- PORTD=~BIT(0);
- delay(40);
- PORTD=BIT(0); //上升沿送到锁存器
- delay(40);
- PORTD=~BIT(0); //锁存显示
- }
- void main(){
- unsigned char i,j;
- unsigned char temp=0x0f;
-
- unsigned char str[8]={0xfc/*0*/,0x60/*1*/,0xda,/*2*/0xf2/*3*/,0x66/*4*/,0xb6/*5*/,0xbe/*6*/,0xe0/*7*/};
- DDRB=0XFF;
- DDRC =0XFF;
- DDRD=0XFF;
- while(1){
- for(i=0;i<8;i++){
- InputData(str[i]);
- OutData();
- delay(9000);
- delay(9000);
- delay(9000);
- delay(9000);
- delay(9000);
- delay(9000);
- delay(9000);
- delay(9000);
- delay(9000);
- delay(9000);
- delay(9000);
- delay(9000);
- delay(9000);
- delay(9000);
- delay(9000);
- delay(9000);
- delay(9000);
- delay(9000);
- }
- }
- }
复制代码
所有资料下载:
74hc595仿真.zip
(98.73 KB, 下载次数: 65)
|
|