查看:
2673
|
回复:
4
|
基于51单片机的微型电压表
|
小马玩转单片机
10
主题
15
回复 |
发表于2018-11-16 15:54:13
|
显示全部楼层
1#
电梯直达
很多新手包括我也是,学会用proteus后,很新奇但不知道仿真什么。今天我仿真了一个微型单片机,有兴趣的是新手可以仿真一下 这个是我在proteus中的仿真,新手可以照猫画虎的试一下。制作一个电压表
#include<reg51.h>
#define uchar unsigned char #define uint unsigned int uchar code led[10]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; uint volt;
sbit CLK=P3^3;
sbit START=P3^0; sbit EOC=P3^1; sbit OE=P3^2;
void delay(uint z) 这个是在keil中的程序,不会写的可以直接复制过去!在单片机的前期学习是比较枯燥的。自己平时可以试一下,仿真来增加学习兴趣!为了防止你们复制过去的,存在格式错误。我把C文件添加到附件里面!微型电压表.rar { uchar x,y; for(x=z;x>0;x--) for(y=250;y>0;y--); } void ADC() { START=0; START=1; START=0; while(EOC==0); OE=1; volt=P1; OE=0; volt=volt*196; } void display() { P0=0XFF; P2=0x01; P0=led[volt/10000]&0x7F; delay(2); P0=0XFF; P2=0x02; P0=led[(volt/1000)%10]; delay(2); P0=0XFF; P2=0x04; P0=led[(volt/100)%10]; delay(2); P0=0XFF; P2=0x08; P0=led[(volt/10)%10]; delay(2); } void main() { EA=1; TMOD=0x02; TH0=0XF6; TL0=0XF6; ET0=1; TR0=1; while(1) { ADC(); display(); } } void timer() interrupt 1 { CLK=~CLK; } |
FOCUS电路设计
3
主题
152
回复 |
发表于2018-11-16 16:59:32
|
显示全部楼层
2#
你是来搞笑的么?
|
|