- 前言
实验环境:唐都实验箱 (吉大计算机专用)
用C语言写 原本应该汇编来写的程序 纯粹搞事,网上一个C语言实例代码都没有。自己翻遍了图书馆,用极少的几条可用语句完成了辣鸡微机实验。
实践证明C语言编这玩意儿效率不知比汇编高到哪里去了
本人微机接口实验成绩为优秀(期末考试也是交的C语言版本)
考试交卷时一位资历很老的老师说:“这玩意儿还能用C语言写?”
只用C编写了5~10次实验(第五次实验就开始嫌弃汇编了hhh)
- 实验:DAC输出不同种类波形
/*
* Exp_5: DAC
* author: liu abin
* all right received
**/
#include "conio.h"
typedef unsigned char u8;
typedef unsigned int u16;
u16 DAC = 0x0600;
u8 value = 0;
u8 time = 0;
void delay(u16 time);
void juchi();
void rectangle();
void triangle();
void jieti(u8 num);
void main() {
while(1) {
juchi();
rectangle();
triangle();
jieti(5);
}
}
// region:define of functions
void delay(u16 time) {
for(int i=0;i<time;i++) {
for(int j=0;j<200;j++)
;
}
}
void juchi() {
value = 0;
for(;value <= 0x0FE;value++) {
outportb(DAC, value);
delay(10);
}
}
void rectangle() {
value = 0;
outportb(DAC, value);
delay(100);
value = 0x0FF;
outportb(DAC, value);
delay(100);
}
void triangle() {
value = 0;
for(;value<=0x0FE;value++){
outportb(DAC, value);
delay(10);
}
for(;value>0;value--){
outportb(DAC, value);
delay(10);
}
}
void jieti(u8 num) {
// caution
u8 step = 0x0FF / (num+1);
value = 0;
for(;num>0; num--) {
outportb(DAC, value);
value += step;
}
}